(meta: SigMFMetadata, signal: AbortSignal)
| 58 | } |
| 59 | |
| 60 | async getMinimapIQ(meta: SigMFMetadata, signal: AbortSignal): Promise<Float32Array[]> { |
| 61 | const { account, container, file_path } = meta.getOrigin(); |
| 62 | const format = meta.getDataType(); |
| 63 | const dataUrl = `/api/datasources/${account}/${container}/${file_path}/minimap-data`; |
| 64 | const binaryResponse = await this.authUtil.requestWithAuthIfRequired({ |
| 65 | method: 'get', |
| 66 | url: dataUrl, |
| 67 | responseType: 'arraybuffer', |
| 68 | signal: signal, |
| 69 | params: { |
| 70 | format: format, |
| 71 | }, |
| 72 | }); |
| 73 | if (binaryResponse.status !== 200) { |
| 74 | throw new Error(`Unexpected status code: ${binaryResponse.status}`); |
| 75 | } |
| 76 | if (!binaryResponse.data) { |
| 77 | return null; |
| 78 | } |
| 79 | const iqArray = convertToFloat32(binaryResponse.data, meta.getDataType()); |
| 80 | // slice in 64 samples chunks |
| 81 | const iqArrayChunks: Float32Array[] = []; |
| 82 | for (let i = 0; i < iqArray.length; i += 64) { |
| 83 | iqArrayChunks.push(iqArray.slice(i, i + 64)); |
| 84 | } |
| 85 | return iqArrayChunks; |
| 86 | } |
| 87 | } |
nothing calls this directly
no test coverage detected