networkwm-js 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -26,8 +26,8 @@ export declare class DatabaseAbstraction {
|
|
|
26
26
|
addNewTrack(trackInfo: TrackMetadata, codecInfo: NWCodecInfo, encryptionState: number): number;
|
|
27
27
|
private reassignTrackNumber;
|
|
28
28
|
private copyToFilesystem;
|
|
29
|
-
uploadMP3Track(trackInfo: InboundTrackMetadata, rawData: Uint8Array, callback?: (done: number, outOf: number) => void): Promise<void>;
|
|
30
|
-
uploadTrack(trackInfo: InboundTrackMetadata, codec: CodecInfo, rawData: Uint8Array<ArrayBuffer>, session?: UMSCNWJSSession, callback?: (done: number, outOf: number) => void): Promise<void>;
|
|
29
|
+
uploadMP3Track(trackInfo: InboundTrackMetadata, rawData: Uint8Array, callback?: (done: number, outOf: number) => void, chunkSize?: number): Promise<void>;
|
|
30
|
+
uploadTrack(trackInfo: InboundTrackMetadata, codec: CodecInfo, rawData: Uint8Array<ArrayBuffer>, session?: UMSCNWJSSession, callback?: (done: number, outOf: number) => void, chunkSize?: number): Promise<void>;
|
|
31
31
|
flushUpdates(): Promise<void>;
|
|
32
32
|
deleteTrack(systemIndex: number): Promise<void>;
|
|
33
33
|
reserializeDatabase(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-abstraction.d.ts","sourceRoot":"","sources":["../src/database-abstraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,eAAe,EAAc,oBAAoB,EAAE,aAAa,EAAY,MAAM,aAAa,CAAC;AAGzG,OAAO,EAAsB,eAAe,EAAE,MAAM,cAAc,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAyB,MAAM,UAAU,CAAC;AAK9D,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC1C,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,EAAE,UAAU,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IAEpB,SAAS,EAAE,aAAa,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,mBAAmB;IAOR,OAAO,CAAC,UAAU;IAAyB,UAAU,EAAE,gBAAgB;IAN3F,OAAO,CAAC,wBAAwB,CAAC,CAAyB;IAC1D,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,aAAa,CAAgB;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IACjC,OAAO;WAIa,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB;IAiCnF,OAAO,CAAC,OAAO;IAkCR,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM;IAyB5F,OAAO,CAAC,mBAAmB;YAWb,gBAAgB;IAsBxB,cAAc,CAChB,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,UAAU,EACnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"database-abstraction.d.ts","sourceRoot":"","sources":["../src/database-abstraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,eAAe,EAAc,oBAAoB,EAAE,aAAa,EAAY,MAAM,aAAa,CAAC;AAGzG,OAAO,EAAsB,eAAe,EAAE,MAAM,cAAc,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAyB,MAAM,UAAU,CAAC;AAK9D,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC1C,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,EAAE,UAAU,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IAEpB,SAAS,EAAE,aAAa,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,mBAAmB;IAOR,OAAO,CAAC,UAAU;IAAyB,UAAU,EAAE,gBAAgB;IAN3F,OAAO,CAAC,wBAAwB,CAAC,CAAyB;IAC1D,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,aAAa,CAAgB;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IACjC,OAAO;WAIa,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB;IAiCnF,OAAO,CAAC,OAAO;IAkCR,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM;IAyB5F,OAAO,CAAC,mBAAmB;YAWb,gBAAgB;IAsBxB,cAAc,CAChB,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,UAAU,EACnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAChD,SAAS,CAAC,EAAE,MAAM;IAehB,WAAW,CACb,SAAS,EAAE,oBAAoB,EAC/B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,EAChC,OAAO,CAAC,EAAE,eAAe,EACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAChD,SAAS,CAAC,EAAE,MAAM;IAmBhB,YAAY;IAMZ,WAAW,CAAC,WAAW,EAAE,MAAM;IAgBrC,mBAAmB;IA6EnB,0BAA0B,IAAK;QAC3B,0BAA0B,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE;YACN,0BAA0B,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,eAAe,EAAE,CAAA;SAC9B,EAAE,CAAA;KACN,EAAE;IAIG,QAAQ;IA6BR,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa;CAoBjE"}
|
|
@@ -118,7 +118,7 @@ class DatabaseAbstraction {
|
|
|
118
118
|
}
|
|
119
119
|
return trackNumber;
|
|
120
120
|
}
|
|
121
|
-
async copyToFilesystem(data, globalTrackIndex, callback) {
|
|
121
|
+
async copyToFilesystem(data, globalTrackIndex, callback, chunkSize = 2048) {
|
|
122
122
|
// Make sure the audio store directory appropriate for this file exists
|
|
123
123
|
const audioStore = `/OMGAUDIO/10F${(globalTrackIndex >> 8).toString(16).padStart(2, '0')}`;
|
|
124
124
|
if (!(await this.filesystem.list("/OMGAUDIO")).some(e => e.name === audioStore)) {
|
|
@@ -130,7 +130,7 @@ class DatabaseAbstraction {
|
|
|
130
130
|
let i = 0;
|
|
131
131
|
callback === null || callback === void 0 ? void 0 : callback(i, data.length);
|
|
132
132
|
while (remaining) {
|
|
133
|
-
const toWrite = Math.min(
|
|
133
|
+
const toWrite = Math.min(chunkSize, remaining);
|
|
134
134
|
await fh.write(data.slice(i, i + toWrite));
|
|
135
135
|
i += toWrite;
|
|
136
136
|
remaining -= toWrite;
|
|
@@ -138,7 +138,7 @@ class DatabaseAbstraction {
|
|
|
138
138
|
}
|
|
139
139
|
await fh.close();
|
|
140
140
|
}
|
|
141
|
-
async uploadMP3Track(trackInfo, rawData, callback) {
|
|
141
|
+
async uploadMP3Track(trackInfo, rawData, callback, chunkSize) {
|
|
142
142
|
if (this.mp3DeviceKey === undefined && !this.deviceInfo.disableDRM)
|
|
143
143
|
throw new Error("Please load the device key first!");
|
|
144
144
|
const { codec, duration } = (0, mp3_1.generateMP3CodecField)(rawData);
|
|
@@ -149,9 +149,9 @@ class DatabaseAbstraction {
|
|
|
149
149
|
trackNumber,
|
|
150
150
|
}, codec, this.deviceInfo.disableDRM ? 0xFFFF : 0xFFFE);
|
|
151
151
|
const mp3Data = (0, mp3_1.createMP3OMAFile)(globalTrackIndex, trackInfo, rawData, this.deviceInfo.disableDRM ? null : this.mp3DeviceKey, codec);
|
|
152
|
-
await this.copyToFilesystem(mp3Data, globalTrackIndex, callback);
|
|
152
|
+
await this.copyToFilesystem(mp3Data, globalTrackIndex, callback, chunkSize);
|
|
153
153
|
}
|
|
154
|
-
async uploadTrack(trackInfo, codec, rawData, session, callback) {
|
|
154
|
+
async uploadTrack(trackInfo, codec, rawData, session, callback, chunkSize) {
|
|
155
155
|
const trackNumber = this.reassignTrackNumber(trackInfo);
|
|
156
156
|
// Step 1 - Create the encrypted OMA which will later be written to the device's storage
|
|
157
157
|
const omaFile = (this.deviceInfo.disableDRM ? tagged_oma_1.createTaggedOMA : tagged_oma_1.createTaggedEncryptedOMA)(rawData, trackInfo, codec);
|
|
@@ -162,7 +162,7 @@ class DatabaseAbstraction {
|
|
|
162
162
|
trackNumber,
|
|
163
163
|
}, codec, this.deviceInfo.disableDRM ? 0xFFFF : 0x0001);
|
|
164
164
|
// Step 3 - write track to the filesystem
|
|
165
|
-
await this.copyToFilesystem(omaFile.data, globalTrackIndex, callback);
|
|
165
|
+
await this.copyToFilesystem(omaFile.data, globalTrackIndex, callback, chunkSize);
|
|
166
166
|
// Step 4 - write MAC
|
|
167
167
|
if (!this.deviceInfo.disableDRM)
|
|
168
168
|
session === null || session === void 0 ? void 0 : session.writeTrackMac(globalTrackIndex - 1, omaFile.maclistValue);
|