speechrecorderng 3.10.13 → 3.11.0
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.
- package/README.md +1 -1
- package/fesm2022/speechrecorderng.mjs +204 -201
- package/fesm2022/speechrecorderng.mjs.map +1 -1
- package/lib/audio/ui/audio_canvas_layer_comp.d.ts +2 -2
- package/lib/spr.module.version.d.ts +1 -1
- package/lib/ui/canvas_layer_comp.d.ts +1 -1
- package/lib/ui/responsive_component.d.ts +1 -1
- package/package.json +13 -15
- package/esm2022/lib/action/action.mjs +0 -73
- package/esm2022/lib/audio/array_audio_buffer.mjs +0 -164
- package/esm2022/lib/audio/array_audio_buffer_input_stream.mjs +0 -86
- package/esm2022/lib/audio/array_audio_buffer_random_access_stream.mjs +0 -16
- package/esm2022/lib/audio/audio_data_holder.mjs +0 -264
- package/esm2022/lib/audio/audio_display.mjs +0 -118
- package/esm2022/lib/audio/audio_player.mjs +0 -238
- package/esm2022/lib/audio/capture/capture.mjs +0 -855
- package/esm2022/lib/audio/context.mjs +0 -79
- package/esm2022/lib/audio/dsp/level_measure.mjs +0 -517
- package/esm2022/lib/audio/format.mjs +0 -20
- package/esm2022/lib/audio/impl/wavformat.mjs +0 -7
- package/esm2022/lib/audio/impl/wavreader.mjs +0 -144
- package/esm2022/lib/audio/impl/wavwriter.mjs +0 -191
- package/esm2022/lib/audio/inddb_audio_buffer.mjs +0 -508
- package/esm2022/lib/audio/io/stream.mjs +0 -59
- package/esm2022/lib/audio/net_audio_buffer.mjs +0 -293
- package/esm2022/lib/audio/persistor.mjs +0 -81
- package/esm2022/lib/audio/playback/array_audio_buffer_source_node.mjs +0 -126
- package/esm2022/lib/audio/playback/audio_source_node.mjs +0 -18
- package/esm2022/lib/audio/playback/audio_source_worklet_module_loader.mjs +0 -167
- package/esm2022/lib/audio/playback/inddb_audio_buffer_source_node.mjs +0 -167
- package/esm2022/lib/audio/playback/net_audio_buffer_source_node.mjs +0 -218
- package/esm2022/lib/audio/playback/player.mjs +0 -402
- package/esm2022/lib/audio/ui/audio_canvas_layer_comp.mjs +0 -347
- package/esm2022/lib/audio/ui/audio_display_control.mjs +0 -150
- package/esm2022/lib/audio/ui/audio_display_scroll_pane.mjs +0 -146
- package/esm2022/lib/audio/ui/audiosignal.mjs +0 -533
- package/esm2022/lib/audio/ui/common.mjs +0 -19
- package/esm2022/lib/audio/ui/container.mjs +0 -414
- package/esm2022/lib/audio/ui/livelevel.mjs +0 -361
- package/esm2022/lib/audio/ui/scroll_pane_horizontal.mjs +0 -11
- package/esm2022/lib/audio/ui/sonagram.mjs +0 -900
- package/esm2022/lib/db/inddb.mjs +0 -120
- package/esm2022/lib/dsp/utils.mjs +0 -48
- package/esm2022/lib/environment/environment.defaults.mjs +0 -9
- package/esm2022/lib/io/BinaryReader.mjs +0 -93
- package/esm2022/lib/io/BinaryWriter.mjs +0 -80
- package/esm2022/lib/io/stream.mjs +0 -259
- package/esm2022/lib/math/2d/geometry.mjs +0 -28
- package/esm2022/lib/math/complex.mjs +0 -58
- package/esm2022/lib/math/dft.mjs +0 -196
- package/esm2022/lib/media/utils.mjs +0 -14
- package/esm2022/lib/net/uploader.mjs +0 -367
- package/esm2022/lib/recorder_component.mjs +0 -65
- package/esm2022/lib/speechrecorder/project/project.mjs +0 -54
- package/esm2022/lib/speechrecorder/project/project.service.mjs +0 -64
- package/esm2022/lib/speechrecorder/recording.mjs +0 -124
- package/esm2022/lib/speechrecorder/recordings/basic_recording.service.mjs +0 -221
- package/esm2022/lib/speechrecorder/recordings/recordings.service.mjs +0 -1014
- package/esm2022/lib/speechrecorder/script/script.mjs +0 -114
- package/esm2022/lib/speechrecorder/script/script.service.mjs +0 -47
- package/esm2022/lib/speechrecorder/session/audiorecorder.mjs +0 -1179
- package/esm2022/lib/speechrecorder/session/basicrecorder.mjs +0 -676
- package/esm2022/lib/speechrecorder/session/controlpanel.mjs +0 -416
- package/esm2022/lib/speechrecorder/session/item.mjs +0 -30
- package/esm2022/lib/speechrecorder/session/progress.mjs +0 -135
- package/esm2022/lib/speechrecorder/session/prompting.mjs +0 -639
- package/esm2022/lib/speechrecorder/session/recorder_combi_pane.mjs +0 -88
- package/esm2022/lib/speechrecorder/session/recording_file_cache.mjs +0 -195
- package/esm2022/lib/speechrecorder/session/recording_list.mjs +0 -188
- package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +0 -128
- package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +0 -114
- package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +0 -146
- package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +0 -424
- package/esm2022/lib/speechrecorder/session/recordingfile/recording-file.mjs +0 -68
- package/esm2022/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +0 -288
- package/esm2022/lib/speechrecorder/session/session.mjs +0 -2
- package/esm2022/lib/speechrecorder/session/session.service.mjs +0 -69
- package/esm2022/lib/speechrecorder/session/session_finished_dialog.mjs +0 -46
- package/esm2022/lib/speechrecorder/session/sessionmanager.mjs +0 -1385
- package/esm2022/lib/speechrecorder/session/warning_bar.mjs +0 -33
- package/esm2022/lib/speechrecorder/spruploader.mjs +0 -22
- package/esm2022/lib/speechrecorder/startstopsignal/startstopsignal.mjs +0 -2
- package/esm2022/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +0 -57
- package/esm2022/lib/speechrecorderng.component.mjs +0 -392
- package/esm2022/lib/speechrecorderng.module.mjs +0 -97
- package/esm2022/lib/spr.config.mjs +0 -27
- package/esm2022/lib/spr.module.version.mjs +0 -2
- package/esm2022/lib/ui/canvas_layer_comp.mjs +0 -38
- package/esm2022/lib/ui/intersection-observer.directive.mjs +0 -32
- package/esm2022/lib/ui/message_dialog.mjs +0 -51
- package/esm2022/lib/ui/recordingitem_display.mjs +0 -253
- package/esm2022/lib/ui/responsive_component.mjs +0 -24
- package/esm2022/lib/utils/scrollIntoViewToBottom.mjs +0 -23
- package/esm2022/lib/utils/ua-parser.mjs +0 -190
- package/esm2022/lib/utils/utils.mjs +0 -132
- package/esm2022/lib/utils/wake_lock.mjs +0 -114
- package/esm2022/lib/utils/wake_lock_media.mjs +0 -2
- package/esm2022/public-api.mjs +0 -35
- package/esm2022/speechrecorderng.mjs +0 -5
package/esm2022/lib/db/inddb.mjs
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { Observable } from "rxjs";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class Sync {
|
|
5
|
-
constructor(objectStoreName, objectId) {
|
|
6
|
-
this._objectStoreName = objectStoreName;
|
|
7
|
-
this._objectId = objectId;
|
|
8
|
-
}
|
|
9
|
-
get objectStoreName() {
|
|
10
|
-
return this._objectStoreName;
|
|
11
|
-
}
|
|
12
|
-
get objectId() {
|
|
13
|
-
return this._objectId;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export class SprDb {
|
|
17
|
-
static { this.dbName = 'speechrecorder'; }
|
|
18
|
-
static { this.RECORDING_FILE_CACHE_OBJECT_STORE_NAME = '_recording_file_cache'; }
|
|
19
|
-
//public static RECORDING_FILE_CHUNKS_OBJECT_STORE_NAME='rec_file_chunks';
|
|
20
|
-
static { this.dbVersion = 1; }
|
|
21
|
-
constructor() {
|
|
22
|
-
this._store = null;
|
|
23
|
-
}
|
|
24
|
-
static sprDbFactory() {
|
|
25
|
-
let sprDb = new SprDb();
|
|
26
|
-
return sprDb;
|
|
27
|
-
}
|
|
28
|
-
static prepare() {
|
|
29
|
-
let obs = new Observable((subscriber) => {
|
|
30
|
-
console.info("Prepare indexed database...");
|
|
31
|
-
if (indexedDB) {
|
|
32
|
-
let or;
|
|
33
|
-
or = indexedDB.open(SprDb.dbName, SprDb.dbVersion);
|
|
34
|
-
or.onupgradeneeded = (ev) => {
|
|
35
|
-
let db = or.result;
|
|
36
|
-
let tr = or.transaction;
|
|
37
|
-
// if (!db.objectStoreNames.contains(SprDb.RECORDING_FILE_CACHE_OBJECT_STORE_NAME)) {
|
|
38
|
-
// db.createObjectStore(SprDb.RECORDING_FILE_CACHE_OBJECT_STORE_NAME);
|
|
39
|
-
// }
|
|
40
|
-
// Future work towards a complete PWA which stores all clien data in indexed db and synchronizes to the server: See experimental Git branch "progressive_web_app"
|
|
41
|
-
// if (!db.objectStoreNames.contains('_sync')) {
|
|
42
|
-
// db.createObjectStore('_sync', {keyPath: 'id', autoIncrement:true});
|
|
43
|
-
// }
|
|
44
|
-
// if (!db.objectStoreNames.contains('project')) {
|
|
45
|
-
// db.createObjectStore('project', {keyPath: 'name'});
|
|
46
|
-
// }
|
|
47
|
-
// if (!db.objectStoreNames.contains('session')) {
|
|
48
|
-
// let sessStore=db.createObjectStore('session', {keyPath: 'sessionId'});
|
|
49
|
-
// sessStore.createIndex('projectIdx', ['project'], {unique:false});
|
|
50
|
-
// }else if(ev.oldVersion<5){
|
|
51
|
-
//
|
|
52
|
-
// let sessStore=tr.objectStore('session')
|
|
53
|
-
// sessStore.createIndex('projectIdx', ['project'], {unique:false});
|
|
54
|
-
// }
|
|
55
|
-
//
|
|
56
|
-
// if (!db.objectStoreNames.contains('script')) {
|
|
57
|
-
// let scrStore=db.createObjectStore('script', {keyPath: 'scriptId'});
|
|
58
|
-
// scrStore.createIndex('projectIdx', ['project'], {unique:false});
|
|
59
|
-
// }
|
|
60
|
-
//
|
|
61
|
-
// if (!db.objectStoreNames.contains('recfile')) {
|
|
62
|
-
// let rfStore=db.createObjectStore('recfile', {keyPath: 'uuid'});
|
|
63
|
-
// rfStore.createIndex('sessIdIdx', ['sessionId'], {unique:false});
|
|
64
|
-
// rfStore.createIndex('sessIdItemcodeIdx', ['sessionId','itemCode'], {unique:false});
|
|
65
|
-
// }
|
|
66
|
-
if (!db.objectStoreNames.contains(SprDb.RECORDING_FILE_CACHE_OBJECT_STORE_NAME)) {
|
|
67
|
-
let rfStore = db.createObjectStore(SprDb.RECORDING_FILE_CACHE_OBJECT_STORE_NAME);
|
|
68
|
-
}
|
|
69
|
-
if (ev.oldVersion) {
|
|
70
|
-
console.info("Upgraded indexed database " + SprDb.dbName + " schema from version " + ev.oldVersion + " to " + ev.newVersion);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
console.info("Created indexed database " + SprDb.dbName + " schema version " + ev.newVersion);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
or.onsuccess = (ev) => {
|
|
77
|
-
console.info("Opened indexed database");
|
|
78
|
-
let db = or.result;
|
|
79
|
-
// // iPad WEbKit workaround
|
|
80
|
-
// does not help!
|
|
81
|
-
// db.onclose=(ev)=>{
|
|
82
|
-
// console.debug("DB closed...");
|
|
83
|
-
//
|
|
84
|
-
// }
|
|
85
|
-
// console.debug("Close db.");
|
|
86
|
-
// db.close();
|
|
87
|
-
// let opaRq=indexedDB.open(SprDb.dbName, SprDb.dbVersion);
|
|
88
|
-
// opaRq.onupgradeneeded=(ev)=>{}
|
|
89
|
-
//
|
|
90
|
-
// opaRq.onsuccess=(ev)=>{
|
|
91
|
-
// console.debug("and opened again");
|
|
92
|
-
// subscriber.next(opaRq.result);
|
|
93
|
-
// subscriber.complete();
|
|
94
|
-
// }
|
|
95
|
-
// opaRq.onerror = (err) => {
|
|
96
|
-
// console.error("Could not open indexed database: " + SprDb.dbName + ": " + err)
|
|
97
|
-
// subscriber.error(err)
|
|
98
|
-
// }
|
|
99
|
-
subscriber.next(db);
|
|
100
|
-
subscriber.complete();
|
|
101
|
-
};
|
|
102
|
-
or.onerror = (err) => {
|
|
103
|
-
console.error("Could not open indexed database: " + SprDb.dbName + ": " + err);
|
|
104
|
-
subscriber.error(err);
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
console.info("Browser does not support indexed databases");
|
|
109
|
-
subscriber.error();
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
return obs;
|
|
113
|
-
}
|
|
114
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SprDb, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
115
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SprDb }); }
|
|
116
|
-
}
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SprDb, decorators: [{
|
|
118
|
-
type: Injectable
|
|
119
|
-
}], ctorParameters: () => [] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvZGIvaW5kZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUdoQyxNQUFNLE9BQU8sSUFBSTtJQUtiLFlBQVksZUFBc0IsRUFBQyxRQUFzQjtRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUMsZUFBZSxDQUFBO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUMsUUFBUSxDQUFBO0lBQzNCLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDaEIsT0FBUSxJQUFJLENBQUMsZ0JBQWdCLENBQUE7SUFDaEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUN6QixDQUFDO0NBQ0o7QUFHRCxNQUFNLE9BQU8sS0FBSzthQUVBLFdBQU0sR0FBQyxnQkFBZ0IsQUFBakIsQ0FBaUI7YUFFdkIsMkNBQXNDLEdBQUMsdUJBQXVCLEFBQXhCLENBQXlCO0lBQzVFLDBFQUEwRTthQUM3RCxjQUFTLEdBQUMsQ0FBQyxBQUFGLENBQUc7SUFHMUI7UUFEUSxXQUFNLEdBQWtCLElBQUksQ0FBQTtJQUVwQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVk7UUFDaEIsSUFBSSxLQUFLLEdBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUVyQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBSUQsTUFBTSxDQUFDLE9BQU87UUFDVixJQUFJLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBYyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBRTdDLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtZQUMzQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNa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Q0FBQyw0Q0FBNEMsQ0FBQyxDQUFBO2dCQUMxRCxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDOytHQTlHUSxLQUFLO21IQUFMLEtBQUs7OzRGQUFMLEtBQUs7a0JBRGpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU3luY3tcclxuICAgIGlkPzpudW1iZXI7XHJcbiAgICBfb2JqZWN0U3RvcmVOYW1lOnN0cmluZztcclxuICAgIF9vYmplY3RJZDpzdHJpbmd8bnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9iamVjdFN0b3JlTmFtZTpzdHJpbmcsb2JqZWN0SWQ6c3RyaW5nfG51bWJlcil7XHJcbiAgICAgICAgdGhpcy5fb2JqZWN0U3RvcmVOYW1lPW9iamVjdFN0b3JlTmFtZVxyXG4gICAgICAgIHRoaXMuX29iamVjdElkPW9iamVjdElkXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG9iamVjdFN0b3JlTmFtZSgpOnN0cmluZ3tcclxuICAgICAgIHJldHVybiAgdGhpcy5fb2JqZWN0U3RvcmVOYW1lXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG9iamVjdElkKCk6c3RyaW5nfG51bWJlcntcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2JqZWN0SWRcclxuICAgIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU3ByRGIge1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZGJOYW1lPSdzcGVlY2hyZWNvcmRlcidcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFJFQ09SRElOR19GSUxFX0NBQ0hFX09CSkVDVF9TVE9SRV9OQU1FPSdfcmVjb3JkaW5nX2ZpbGVfY2FjaGUnO1xyXG4gICAgIC8vcHVibGljIHN0YXRpYyBSRUNPUkRJTkdfRklMRV9DSFVOS1NfT0JKRUNUX1NUT1JFX05BTUU9J3JlY19maWxlX2NodW5rcyc7XHJcbiAgICBwdWJsaWMgc3RhdGljIGRiVmVyc2lvbj0xO1xyXG5cclxuICAgIHByaXZhdGUgX3N0b3JlOklEQkRhdGFiYXNlfG51bGw9bnVsbFxyXG4gICAgY29uc3RydWN0b3IoKXtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgc3ByRGJGYWN0b3J5KCk6U3ByRGJ7XHJcbiAgICAgICBsZXQgc3ByRGI9bmV3IFNwckRiKCk7XHJcblxyXG4gICAgICAgIHJldHVybiBzcHJEYjtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBwcmVwYXJlKCk6T2JzZXJ2YWJsZTxJREJEYXRhYmFzZT4ge1xyXG4gICAgICAgIGxldCBvYnMgPSBuZXcgT2JzZXJ2YWJsZTxJREJEYXRhYmFzZT4oKHN1YnNjcmliZXIpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmluZm8oXCJQcmVwYXJlIGluZGV4ZWQgZGF0YWJhc2UuLi5cIilcclxuICAgICAgICAgICAgICAgIGlmIChpbmRleGVkREIpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgb3I6IElEQk9wZW5EQlJlcXVlc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgb3IgPSBpbmRleGVkREIub3BlbihTcHJEYi5kYk5hbWUsIFNwckRiLmRiVmVyc2lvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgb3Iub251cGdyYWRlbmVlZGVkID0gKGV2KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYiA9IG9yLnJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHI9b3IudHJhbnNhY3Rpb25cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmICghZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhTcHJEYi5SRUNPUkRJTkdfRklMRV9DQUNIRV9PQkpFQ1RfU1RPUkVfTkFNRSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoU3ByRGIuUkVDT1JESU5HX0ZJTEVfQ0FDSEVfT0JKRUNUX1NUT1JFX05BTUUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBGdXR1cmUgd29yayB0b3dhcmRzIGEgY29tcGxldGUgUFdBIHdoaWNoIHN0b3JlcyBhbGwgY2xpZW4gZGF0YSBpbiBpbmRleGVkIGRiIGFuZCBzeW5jaHJvbml6ZXMgdG8gdGhlIHNlcnZlcjogU2VlIGV4cGVyaW1lbnRhbCBHaXQgYnJhbmNoIFwicHJvZ3Jlc3NpdmVfd2ViX2FwcFwiXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAoIWRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ19zeW5jJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdfc3luYycsIHtrZXlQYXRoOiAnaWQnLCBhdXRvSW5jcmVtZW50OnRydWV9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAoIWRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3Byb2plY3QnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Byb2plY3QnLCB7a2V5UGF0aDogJ25hbWUnfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKCFkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCdzZXNzaW9uJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGxldCBzZXNzU3RvcmU9ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Nlc3Npb24nLCB7a2V5UGF0aDogJ3Nlc3Npb25JZCd9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHNlc3NTdG9yZS5jcmVhdGVJbmRleCgncHJvamVjdElkeCcsIFsncHJvamVjdCddLCB7dW5pcXVlOmZhbHNlfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1lbHNlIGlmKGV2Lm9sZFZlcnNpb248NSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBsZXQgc2Vzc1N0b3JlPXRyLm9iamVjdFN0b3JlKCdzZXNzaW9uJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgc2Vzc1N0b3JlLmNyZWF0ZUluZGV4KCdwcm9qZWN0SWR4JywgWydwcm9qZWN0J10sIHt1bmlxdWU6ZmFsc2V9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAoIWRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3NjcmlwdCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBsZXQgc2NyU3RvcmU9ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NjcmlwdCcsIHtrZXlQYXRoOiAnc2NyaXB0SWQnfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBzY3JTdG9yZS5jcmVhdGVJbmRleCgncHJvamVjdElkeCcsIFsncHJvamVjdCddLCB7dW5pcXVlOmZhbHNlfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKCFkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCdyZWNmaWxlJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGxldCByZlN0b3JlPWRiLmNyZWF0ZU9iamVjdFN0b3JlKCdyZWNmaWxlJywge2tleVBhdGg6ICd1dWlkJ30pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgcmZTdG9yZS5jcmVhdGVJbmRleCgnc2Vzc0lkSWR4JywgWydzZXNzaW9uSWQnXSwge3VuaXF1ZTpmYWxzZX0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgcmZTdG9yZS5jcmVhdGVJbmRleCgnc2Vzc0lkSXRlbWNvZGVJZHgnLCBbJ3Nlc3Npb25JZCcsJ2l0ZW1Db2RlJ10sIHt1bmlxdWU6ZmFsc2V9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCFkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKFNwckRiLlJFQ09SRElOR19GSUxFX0NBQ0hFX09CSkVDVF9TVE9SRV9OQU1FKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJmU3RvcmU9ZGIuY3JlYXRlT2JqZWN0U3RvcmUoU3ByRGIuUkVDT1JESU5HX0ZJTEVfQ0FDSEVfT0JKRUNUX1NUT1JFX05BTUUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldi5vbGRWZXJzaW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmluZm8oXCJVcGdyYWRlZCBpbmRleGVkIGRhdGFiYXNlIFwiICsgU3ByRGIuZGJOYW1lICsgXCIgc2NoZW1hIGZyb20gdmVyc2lvbiBcIiArIGV2Lm9sZFZlcnNpb24gKyBcIiB0byBcIiArIGV2Lm5ld1ZlcnNpb24pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmluZm8oXCJDcmVhdGVkIGluZGV4ZWQgZGF0YWJhc2UgXCIgKyBTcHJEYi5kYk5hbWUgKyBcIiBzY2hlbWEgdmVyc2lvbiBcIiArIGV2Lm5ld1ZlcnNpb24pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgb3Iub25zdWNjZXNzID0gKGV2KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5mbyhcIk9wZW5lZCBpbmRleGVkIGRhdGFiYXNlXCIpXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGRiPW9yLnJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICAgIC8vICAgLy8gaVBhZCBXRWJLaXQgd29ya2Fyb3VuZFxyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gZG9lcyBub3QgaGVscCFcclxuICAgICAgICAgICAgICAgICAgICAgIC8vICAgZGIub25jbG9zZT0oZXYpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgY29uc29sZS5kZWJ1ZyhcIkRCIGNsb3NlZC4uLlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZGVidWcoXCJDbG9zZSBkYi5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyAgIGRiLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBsZXQgb3BhUnE9aW5kZXhlZERCLm9wZW4oU3ByRGIuZGJOYW1lLCBTcHJEYi5kYlZlcnNpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gb3BhUnEub251cGdyYWRlbmVlZGVkPShldik9Pnt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gb3BhUnEub25zdWNjZXNzPShldik9PntcclxuICAgICAgICAgICAgICAgICAgICAgIC8vICAgY29uc29sZS5kZWJ1ZyhcImFuZCBvcGVuZWQgYWdhaW5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyAgIHN1YnNjcmliZXIubmV4dChvcGFScS5yZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBvcGFScS5vbmVycm9yID0gKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gICBjb25zb2xlLmVycm9yKFwiQ291bGQgbm90IG9wZW4gaW5kZXhlZCBkYXRhYmFzZTogXCIgKyBTcHJEYi5kYk5hbWUgKyBcIjogXCIgKyBlcnIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChkYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBvci5vbmVycm9yID0gKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQ291bGQgbm90IG9wZW4gaW5kZXhlZCBkYXRhYmFzZTogXCIgKyBTcHJEYi5kYk5hbWUgKyBcIjogXCIgKyBlcnIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKFwiQnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGluZGV4ZWQgZGF0YWJhc2VzXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBvYnM7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
export class DSPUtils {
|
|
2
|
-
static { this.OCTAVE_FACTOR = 1.0 / (Math.log(2) / Math.log(10)); }
|
|
3
|
-
/**
|
|
4
|
-
* Get normalized amplitude level in dB
|
|
5
|
-
* @param linearLevel a normalized positive linear level (1.0 corresponds to 0dB)
|
|
6
|
-
* @return level in dB
|
|
7
|
-
*/
|
|
8
|
-
static toLevelInDB(linearLevel) {
|
|
9
|
-
if (linearLevel < 0) {
|
|
10
|
-
throw new RangeError('Linear level argument must be positive.');
|
|
11
|
-
}
|
|
12
|
-
return 10 * Math.log(linearLevel) / Math.log(10);
|
|
13
|
-
}
|
|
14
|
-
static toLinearLevel(dbLevel) {
|
|
15
|
-
return Math.pow(10, (dbLevel / 10));
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Get normalized amplitude power level in dB
|
|
19
|
-
* @param linearLevel a normalized positive linear level (1.0 corresponds to 0dB)
|
|
20
|
-
* @return power level in dB
|
|
21
|
-
*/
|
|
22
|
-
static toPowerLevelInDB(linearLevel) {
|
|
23
|
-
if (linearLevel < 0) {
|
|
24
|
-
throw new RangeError('Linear level argument must be positive.');
|
|
25
|
-
}
|
|
26
|
-
return 20 * Math.log(linearLevel) / Math.log(10);
|
|
27
|
-
}
|
|
28
|
-
static toPowerLinearLevel(dbLevel) {
|
|
29
|
-
return Math.pow(10, (dbLevel / 20));
|
|
30
|
-
}
|
|
31
|
-
static toOctaves(fq) {
|
|
32
|
-
return DSPUtils.OCTAVE_FACTOR * Math.log(fq) / Math.log(10);
|
|
33
|
-
}
|
|
34
|
-
static maxLevel(audioBuffer) {
|
|
35
|
-
let ml = 0.0;
|
|
36
|
-
for (let ch = 0; ch < audioBuffer.numberOfChannels; ch++) {
|
|
37
|
-
const chArr = audioBuffer.getChannelData(ch);
|
|
38
|
-
for (let s = 0; s < chArr.length; s++) {
|
|
39
|
-
const l = Math.abs(chArr[s]);
|
|
40
|
-
if (l > ml) {
|
|
41
|
-
ml = l;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return ml;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvZHNwL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNJLE1BQU0sT0FBTyxRQUFRO2FBRUYsa0JBQWEsR0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUUxRTs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFtQjtRQUN6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksVUFBVSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBR00sTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFlO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFtQjtRQUM5QyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksVUFBVSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLE9BQWU7UUFDNUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQVU7UUFDOUIsT0FBTyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUF3QjtRQUMzQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDYixLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDekQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztvQkFDWCxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNULENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4gICAgZXhwb3J0IGNsYXNzIERTUFV0aWxzIHtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgT0NUQVZFX0ZBQ1RPUjogbnVtYmVyID0gMS4wIC8gKE1hdGgubG9nKDIpIC8gTWF0aC5sb2coMTApKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogR2V0IG5vcm1hbGl6ZWQgYW1wbGl0dWRlIGxldmVsIGluIGRCXHJcbiAgICAgICAgICogQHBhcmFtIGxpbmVhckxldmVsIGEgbm9ybWFsaXplZCBwb3NpdGl2ZSBsaW5lYXIgbGV2ZWwgKDEuMCBjb3JyZXNwb25kcyB0byAwZEIpXHJcbiAgICAgICAgICogQHJldHVybiBsZXZlbCBpbiBkQlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgdG9MZXZlbEluREIobGluZWFyTGV2ZWw6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgICAgIGlmIChsaW5lYXJMZXZlbCA8IDApIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdMaW5lYXIgbGV2ZWwgYXJndW1lbnQgbXVzdCBiZSBwb3NpdGl2ZS4nKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIDEwICogTWF0aC5sb2cobGluZWFyTGV2ZWwpIC8gTWF0aC5sb2coMTApO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgdG9MaW5lYXJMZXZlbChkYkxldmVsOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5wb3coMTAsIChkYkxldmVsIC8gMTApKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEdldCBub3JtYWxpemVkIGFtcGxpdHVkZSBwb3dlciBsZXZlbCBpbiBkQlxyXG4gICAgICAgICAqIEBwYXJhbSBsaW5lYXJMZXZlbCBhIG5vcm1hbGl6ZWQgcG9zaXRpdmUgbGluZWFyIGxldmVsICgxLjAgY29ycmVzcG9uZHMgdG8gMGRCKVxyXG4gICAgICAgICAqIEByZXR1cm4gcG93ZXIgbGV2ZWwgaW4gZEJcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc3RhdGljIHRvUG93ZXJMZXZlbEluREIobGluZWFyTGV2ZWw6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgICAgIGlmIChsaW5lYXJMZXZlbCA8IDApIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdMaW5lYXIgbGV2ZWwgYXJndW1lbnQgbXVzdCBiZSBwb3NpdGl2ZS4nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gMjAgKiBNYXRoLmxvZyhsaW5lYXJMZXZlbCkgLyBNYXRoLmxvZygxMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwdWJsaWMgc3RhdGljIHRvUG93ZXJMaW5lYXJMZXZlbChkYkxldmVsOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5wb3coMTAsIChkYkxldmVsIC8gMjApKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgdG9PY3RhdmVzKGZxOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgICAgICByZXR1cm4gRFNQVXRpbHMuT0NUQVZFX0ZBQ1RPUiAqIE1hdGgubG9nKGZxKSAvIE1hdGgubG9nKDEwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgbWF4TGV2ZWwoYXVkaW9CdWZmZXI6IEF1ZGlvQnVmZmVyKTogbnVtYmVyIHtcclxuICAgICAgICAgICAgbGV0IG1sID0gMC4wO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBjaCA9IDA7IGNoIDwgYXVkaW9CdWZmZXIubnVtYmVyT2ZDaGFubmVsczsgY2grKykge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNoQXJyID0gYXVkaW9CdWZmZXIuZ2V0Q2hhbm5lbERhdGEoY2gpO1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IHMgPSAwOyBzIDwgY2hBcnIubGVuZ3RoOyBzKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBNYXRoLmFicyhjaEFycltzXSk7XHJcbiAgICAgICAgICAgICAgICBpZiAobCA+IG1sKSB7XHJcbiAgICAgICAgICAgICAgICAgIG1sID0gbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG1sO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export const SPEECHRECORDER_ENVIRONMENT_DEFAULTS = {
|
|
2
|
-
production: false,
|
|
3
|
-
apiType: 'files',
|
|
4
|
-
apiEndPoint: 'test',
|
|
5
|
-
apiVersion: 1,
|
|
6
|
-
enableDownloadRecordings: true,
|
|
7
|
-
enableUploadRecordings: false
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvZW52aXJvbm1lbnQvZW52aXJvbm1lbnQuZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUc7SUFDakQsVUFBVSxFQUFFLEtBQUs7SUFDakIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsVUFBVSxFQUFFLENBQUM7SUFDYix3QkFBd0IsRUFBQyxJQUFJO0lBQzdCLHNCQUFzQixFQUFFLEtBQUs7Q0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTUEVFQ0hSRUNPUkRFUl9FTlZJUk9OTUVOVF9ERUZBVUxUUyA9IHtcclxuICBwcm9kdWN0aW9uOiBmYWxzZSxcclxuICBhcGlUeXBlOiAnZmlsZXMnLFxyXG4gIGFwaUVuZFBvaW50OiAndGVzdCcsXHJcbiAgYXBpVmVyc2lvbjogMSxcclxuICBlbmFibGVEb3dubG9hZFJlY29yZGluZ3M6dHJ1ZSxcclxuICBlbmFibGVVcGxvYWRSZWNvcmRpbmdzOiBmYWxzZVxyXG59O1xyXG4iXX0=
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
export class BinaryByteReader {
|
|
2
|
-
constructor(buf) {
|
|
3
|
-
this.buf = new Uint8Array(buf);
|
|
4
|
-
this.sbuf = new Int8Array(buf);
|
|
5
|
-
this._pos = 0;
|
|
6
|
-
}
|
|
7
|
-
get pos() {
|
|
8
|
-
return this._pos;
|
|
9
|
-
}
|
|
10
|
-
set pos(pos) {
|
|
11
|
-
this._pos = pos;
|
|
12
|
-
}
|
|
13
|
-
length() {
|
|
14
|
-
return this.buf.byteLength;
|
|
15
|
-
}
|
|
16
|
-
eof() {
|
|
17
|
-
return (this._pos >= this.buf.byteLength);
|
|
18
|
-
}
|
|
19
|
-
skip(byteCound) {
|
|
20
|
-
this.pos += 4;
|
|
21
|
-
}
|
|
22
|
-
readAscii(size) {
|
|
23
|
-
let i;
|
|
24
|
-
let txt = '';
|
|
25
|
-
for (i = 0; i < size; i++) {
|
|
26
|
-
txt += String.fromCharCode(this.buf[this._pos++]);
|
|
27
|
-
}
|
|
28
|
-
return txt;
|
|
29
|
-
}
|
|
30
|
-
readInt8() {
|
|
31
|
-
return (this.buf[this._pos++]);
|
|
32
|
-
}
|
|
33
|
-
readInt16BE() {
|
|
34
|
-
const b0 = this.sbuf[this._pos++];
|
|
35
|
-
const b1 = this.buf[this._pos++];
|
|
36
|
-
const val = (b0 << 8) | b1;
|
|
37
|
-
return val;
|
|
38
|
-
}
|
|
39
|
-
readInt16LE() {
|
|
40
|
-
const b0 = this.buf[this._pos++];
|
|
41
|
-
const b1 = this.sbuf[this._pos++];
|
|
42
|
-
const val = (b1 << 8) | b0;
|
|
43
|
-
return val;
|
|
44
|
-
}
|
|
45
|
-
readUint16LE() {
|
|
46
|
-
const seg = new Uint8Array(2);
|
|
47
|
-
let i;
|
|
48
|
-
for (i = 0; i < 2; i++) {
|
|
49
|
-
seg[i] = this.buf[this._pos++];
|
|
50
|
-
}
|
|
51
|
-
let val = 0;
|
|
52
|
-
val |= seg[1] << 8;
|
|
53
|
-
val |= seg[0];
|
|
54
|
-
return val;
|
|
55
|
-
}
|
|
56
|
-
readInt32BE() {
|
|
57
|
-
const seg = new Uint8Array(4);
|
|
58
|
-
let i;
|
|
59
|
-
for (i = 0; i < 4; i++) {
|
|
60
|
-
seg[i] = this.buf[this._pos++];
|
|
61
|
-
}
|
|
62
|
-
const val = seg[0] << 24 | seg[1] << 16 | seg[2] << 8 | seg[3];
|
|
63
|
-
return val;
|
|
64
|
-
}
|
|
65
|
-
readUint32LE() {
|
|
66
|
-
// this dircet data view does not work with nodejs: all avlues are zero
|
|
67
|
-
// var seg=new Uint8Array(this.buf,this._pos,4);
|
|
68
|
-
// ... copy value by value
|
|
69
|
-
const seg = new Uint8Array(4);
|
|
70
|
-
let i;
|
|
71
|
-
for (i = 0; i < 4; i++) {
|
|
72
|
-
seg[i] = this.buf[this._pos++];
|
|
73
|
-
}
|
|
74
|
-
// console.log("len:", seg.length, " ", seg.byteLength, " ", seg[0], " ", seg[1], " ", seg[2], " ", seg[3]);
|
|
75
|
-
let val = 0;
|
|
76
|
-
val |= seg[3] << 24;
|
|
77
|
-
val |= seg[2] << 16;
|
|
78
|
-
val |= seg[1] << 8;
|
|
79
|
-
val |= seg[0];
|
|
80
|
-
// var val = < 24(seg[3] <) | (seg[2] << 16) | (seg[1] << 8) | seg[0];
|
|
81
|
-
// this._pos=this._pos+4;
|
|
82
|
-
return val;
|
|
83
|
-
}
|
|
84
|
-
readFloat32() {
|
|
85
|
-
const seg = new Float32Array(1);
|
|
86
|
-
let i;
|
|
87
|
-
for (i = 0; i < 4; i++) {
|
|
88
|
-
seg[i] = this.buf[this._pos++];
|
|
89
|
-
}
|
|
90
|
-
return seg[0];
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYXJ5UmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2lvL0JpbmFyeVJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDSSxNQUFNLE9BQU8sZ0JBQWdCO0lBS3pCLFlBQVksR0FBZ0I7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLEdBQVc7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELEdBQUc7UUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBaUI7UUFDbEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ2xCLElBQUksQ0FBQyxDQUFDO1FBQ04sSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QixHQUFHLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFD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WixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2Qsc0VBQXNFO1FBQ3RFLHlCQUF5QjtRQUN6QixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxHQUFHLEdBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFTLENBQUM7UUFDZCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0NBR0oiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuICAgIGV4cG9ydCBjbGFzcyBCaW5hcnlCeXRlUmVhZGVyIHtcclxuICAgICAgICBidWY6IFVpbnQ4QXJyYXk7XHJcbiAgICAgICAgc2J1ZjogSW50OEFycmF5O1xyXG4gICAgICAgIHByaXZhdGUgX3BvczogbnVtYmVyO1xyXG5cclxuICAgICAgICBjb25zdHJ1Y3RvcihidWY6IEFycmF5QnVmZmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnVmID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcclxuICAgICAgICAgICAgdGhpcy5zYnVmID0gbmV3IEludDhBcnJheShidWYpO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3MgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2V0IHBvcygpOiBudW1iZXIge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9zO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0IHBvcyhwb3M6IG51bWJlcikge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3MgPSBwb3M7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZW5ndGgoKTogbnVtYmVyIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYnVmLmJ5dGVMZW5ndGg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlb2YoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5fcG9zID49IHRoaXMuYnVmLmJ5dGVMZW5ndGgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2tpcChieXRlQ291bmQ6IG51bWJlcil7XHJcbiAgICAgICAgICAgIHRoaXMucG9zICs9IDQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZWFkQXNjaWkoc2l6ZTogbnVtYmVyKTogU3RyaW5nIHtcclxuICAgICAgICAgICAgbGV0IGk7XHJcbiAgICAgICAgICAgIGxldCB0eHQgPSAnJztcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdHh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUodGhpcy5idWZbdGhpcy5fcG9zKytdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdHh0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVhZEludDgoKTogbnVtYmVyIHtcclxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLmJ1Zlt0aGlzLl9wb3MrK10pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVhZEludDE2QkUoKTogbnVtYmVyIHtcclxuICAgICAgICAgICAgY29uc3QgYjAgPSB0aGlzLnNidWZbdGhpcy5fcG9zKytdO1xyXG4gICAgICAgICAgICBjb25zdCBiMSA9IHRoaXMuYnVmW3RoaXMuX3BvcysrXTtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gKCBiMCA8PCA4ICkgfCBiMTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVhZEludDE2TEUoKTogbnVtYmVyIHtcclxuICAgICAgICAgICAgY29uc3QgYjAgPSB0aGlzLmJ1Zlt0aGlzLl9wb3MrK107XHJcbiAgICAgICAgICAgIGNvbnN0IGIxID0gdGhpcy5zYnVmW3RoaXMuX3BvcysrXTtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gKCBiMSA8PCA4ICkgfCBiMDtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVhZFVpbnQxNkxFKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlZyA9IG5ldyBVaW50OEFycmF5KDIpO1xyXG4gICAgICAgICAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBzZWdbaV0gPSB0aGlzLmJ1Zlt0aGlzLl9wb3MrK107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHZhbCA9IDA7XHJcbiAgICAgICAgICAgIHZhbCB8PSBzZWdbMV0gPDwgODtcclxuICAgICAgICAgICAgdmFsIHw9IHNlZ1swXTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlYWRJbnQzMkJFKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlZyA9IG5ldyBVaW50OEFycmF5KDQpO1xyXG4gICAgICAgICAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBzZWdbaV0gPSB0aGlzLmJ1Zlt0aGlzLl9wb3MrK107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgdmFsID0gc2VnWzBdIDw8IDI0IHwgc2VnWzFdIDw8IDE2IHwgc2VnWzJdIDw8IDggfCBzZWdbM107XHJcbiAgICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZWFkVWludDMyTEUoKTogbnVtYmVyIHtcclxuICAgICAgICAgICAgIC8vIHRoaXMgZGlyY2V0IGRhdGEgdmlldyBkb2VzIG5vdCB3b3JrIHdpdGggbm9kZWpzOiBhbGwgYXZsdWVzIGFyZSB6ZXJvXHJcbiAgICAgICAgICAgIC8vIHZhciBzZWc9bmV3IFVpbnQ4QXJyYXkodGhpcy5idWYsdGhpcy5fcG9zLDQpO1xyXG4gICAgICAgICAgICAvLyAuLi4gY29weSB2YWx1ZSBieSB2YWx1ZVxyXG4gICAgICAgICAgICBjb25zdCBzZWcgPSBuZXcgVWludDhBcnJheSg0KTtcclxuICAgICAgICAgICAgbGV0IGk6IG51bWJlcjtcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgc2VnW2ldID0gdGhpcy5idWZbdGhpcy5fcG9zKytdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwibGVuOlwiLCBzZWcubGVuZ3RoLCBcIiBcIiwgc2VnLmJ5dGVMZW5ndGgsIFwiIFwiLCBzZWdbMF0sIFwiIFwiLCBzZWdbMV0sIFwiIFwiLCBzZWdbMl0sIFwiIFwiLCBzZWdbM10pO1xyXG4gICAgICAgICAgICBsZXQgdmFsID0gMDtcclxuICAgICAgICAgICAgdmFsIHw9IHNlZ1szXSA8PCAyNDtcclxuICAgICAgICAgICAgdmFsIHw9IHNlZ1syXSA8PCAxNjtcclxuICAgICAgICAgICAgdmFsIHw9IHNlZ1sxXSA8PCA4O1xyXG4gICAgICAgICAgICB2YWwgfD0gc2VnWzBdO1xyXG4gICAgICAgICAgICAvLyB2YXIgdmFsID0gPCAyNChzZWdbM10gPCkgfCAoc2VnWzJdIDw8IDE2KSB8IChzZWdbMV0gPDwgOCkgfCBzZWdbMF07XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX3Bvcz10aGlzLl9wb3MrNDtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlYWRGbG9hdDMyKCk6bnVtYmVye1xyXG4gICAgICAgICAgY29uc3Qgc2VnPW5ldyBGbG9hdDMyQXJyYXkoMSk7XHJcbiAgICAgICAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykge1xyXG4gICAgICAgICAgICBzZWdbaV0gPSB0aGlzLmJ1Zlt0aGlzLl9wb3MrK107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gc2VnWzBdO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG4iXX0=
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
export class BinaryByteWriter {
|
|
2
|
-
static { this.DEFAULT_SIZE_INC = 1024; }
|
|
3
|
-
constructor() {
|
|
4
|
-
const size = BinaryByteWriter.DEFAULT_SIZE_INC;
|
|
5
|
-
this.buf = new ArrayBuffer(size);
|
|
6
|
-
this._pos = 0;
|
|
7
|
-
}
|
|
8
|
-
get pos() {
|
|
9
|
-
return this._pos;
|
|
10
|
-
}
|
|
11
|
-
ensureCapacity(numBytes) {
|
|
12
|
-
while (this._pos + numBytes >= this.buf.byteLength) {
|
|
13
|
-
// buffer increment
|
|
14
|
-
let inc = BinaryByteWriter.DEFAULT_SIZE_INC;
|
|
15
|
-
if (inc < numBytes) {
|
|
16
|
-
inc = numBytes;
|
|
17
|
-
}
|
|
18
|
-
const newSize = this.buf.byteLength + inc;
|
|
19
|
-
const arrOld = new Uint8Array(this.buf, 0, this._pos);
|
|
20
|
-
const arrNew = new Uint8Array(newSize);
|
|
21
|
-
arrNew.set(arrOld);
|
|
22
|
-
this.buf = arrNew.buffer;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
writeUint8(val) {
|
|
26
|
-
this.ensureCapacity(1);
|
|
27
|
-
const valView = new DataView(this.buf, this._pos, 1);
|
|
28
|
-
valView.setUint8(0, val);
|
|
29
|
-
this._pos++;
|
|
30
|
-
}
|
|
31
|
-
writeUint16(val, le) {
|
|
32
|
-
this.ensureCapacity(2);
|
|
33
|
-
const valView = new DataView(this.buf, this._pos, 2);
|
|
34
|
-
valView.setUint16(0, val, le);
|
|
35
|
-
this._pos += 2;
|
|
36
|
-
}
|
|
37
|
-
writeInt16(val, le) {
|
|
38
|
-
this.ensureCapacity(2);
|
|
39
|
-
const valView = new DataView(this.buf, this._pos, 2);
|
|
40
|
-
valView.setInt16(0, val, le);
|
|
41
|
-
this._pos += 2;
|
|
42
|
-
}
|
|
43
|
-
writeUint32(val, le) {
|
|
44
|
-
this.ensureCapacity(4);
|
|
45
|
-
const valView = new DataView(this.buf, this._pos, 4);
|
|
46
|
-
valView.setUint32(0, val, le);
|
|
47
|
-
this._pos += 4;
|
|
48
|
-
}
|
|
49
|
-
writeInt32(val, le) {
|
|
50
|
-
this.ensureCapacity(4);
|
|
51
|
-
const valView = new DataView(this.buf, this._pos, 4);
|
|
52
|
-
valView.setInt32(0, val, le);
|
|
53
|
-
this._pos += 4;
|
|
54
|
-
}
|
|
55
|
-
writeFloat(val) {
|
|
56
|
-
this.ensureCapacity(4);
|
|
57
|
-
const valView = new DataView(this.buf, this._pos, 4);
|
|
58
|
-
valView.setFloat32(0, val, true);
|
|
59
|
-
this._pos += 4;
|
|
60
|
-
}
|
|
61
|
-
finish() {
|
|
62
|
-
const finalArr = new Uint8Array(this._pos);
|
|
63
|
-
const dv = new DataView(this.buf, 0, this._pos);
|
|
64
|
-
for (let i = 0; i < this._pos; i++) {
|
|
65
|
-
finalArr[i] = dv.getUint8(i);
|
|
66
|
-
}
|
|
67
|
-
return finalArr;
|
|
68
|
-
}
|
|
69
|
-
writeAscii(text) {
|
|
70
|
-
let i;
|
|
71
|
-
for (i = 0; i < text.length; i++) {
|
|
72
|
-
const asciiCode = text.charCodeAt(i);
|
|
73
|
-
if (asciiCode < 0 || asciiCode > 255) {
|
|
74
|
-
throw new Error('Not an ASCII character at char ' + i + ' in ' + text);
|
|
75
|
-
}
|
|
76
|
-
this.writeUint8(asciiCode);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYXJ5V3JpdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2lvL0JpbmFyeVdyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDSSxNQUFNLE9BQU8sZ0JBQWdCO2FBQ2xCLHFCQUFnQixHQUFHLElBQUksQ0FBQztJQUkvQjtRQUNJLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCO1FBRTdCLE9BQVEsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUcsQ0FBQztZQUNyRCxtQkFBbUI7WUFDakIsSUFBSSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7WUFDNUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxFQUFFLENBQUM7Z0JBQ2pCLEdBQUcsR0FBRyxRQUFRLENBQUM7WUFDbkIsQ0FBQztZQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztZQUU1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuQixJQUFJ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QztRQUNoRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLENBQUM7UUFDTixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksU0FBUyxHQUFHLENBQUMsSUFBSSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN6RSxDQUFDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4gICAgZXhwb3J0IGNsYXNzIEJpbmFyeUJ5dGVXcml0ZXIge1xyXG4gICAgICAgIHN0YXRpYyBERUZBVUxUX1NJWkVfSU5DID0gMTAyNDtcclxuICAgICAgICBidWY6IEFycmF5QnVmZmVyO1xyXG4gICAgICAgIHByaXZhdGUgX3BvczogbnVtYmVyO1xyXG5cclxuICAgICAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IEJpbmFyeUJ5dGVXcml0ZXIuREVGQVVMVF9TSVpFX0lOQztcclxuICAgICAgICAgICAgdGhpcy5idWYgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcyA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBnZXQgcG9zKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3M7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbnN1cmVDYXBhY2l0eShudW1CeXRlczogbnVtYmVyKSB7XHJcblxyXG4gICAgICAgICAgd2hpbGUgKCB0aGlzLl9wb3MgKyBudW1CeXRlcyA+PSB0aGlzLmJ1Zi5ieXRlTGVuZ3RoICkge1xyXG4gICAgICAgICAgICAvLyBidWZmZXIgaW5jcmVtZW50XHJcbiAgICAgICAgICAgICAgbGV0IGluYyA9IEJpbmFyeUJ5dGVXcml0ZXIuREVGQVVMVF9TSVpFX0lOQztcclxuICAgICAgICAgICAgICBpZiAoaW5jIDwgbnVtQnl0ZXMpIHtcclxuICAgICAgICAgICAgICAgICAgaW5jID0gbnVtQnl0ZXM7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGNvbnN0IG5ld1NpemUgPSB0aGlzLmJ1Zi5ieXRlTGVuZ3RoICsgaW5jO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgYXJyT2xkID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5idWYsIDAsIHRoaXMuX3Bvcyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFyck5ldyA9IG5ldyBVaW50OEFycmF5KG5ld1NpemUpO1xyXG4gICAgICAgICAgICBhcnJOZXcuc2V0KGFyck9sZCk7XHJcbiAgICAgICAgICAgIHRoaXMuYnVmID0gYXJyTmV3LmJ1ZmZlcjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHdyaXRlVWludDgodmFsOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICAgIHRoaXMuZW5zdXJlQ2FwYWNpdHkoMSk7XHJcbiAgICAgICAgICBjb25zdCB2YWxWaWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmLCB0aGlzLl9wb3MsIDEpO1xyXG4gICAgICAgICAgdmFsVmlldy5zZXRVaW50OCgwLCB2YWwpO1xyXG4gICAgICAgICAgdGhpcy5fcG9zKys7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgd3JpdGVVaW50MTYodmFsOiBudW1iZXIsIGxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lbnN1cmVDYXBhY2l0eSgyKTtcclxuICAgICAgICBjb25zdCB2YWxWaWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmLCB0aGlzLl9wb3MsIDIpO1xyXG4gICAgICAgIHZhbFZpZXcuc2V0VWludDE2KDAsIHZhbCwgbGUpO1xyXG4gICAgICAgIHRoaXMuX3BvcyArPSAyO1xyXG5cclxuICAgICAgfVxyXG4gICAgICB3cml0ZUludDE2KHZhbDogbnVtYmVyLCBsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwYWNpdHkoMik7XHJcbiAgICAgICAgY29uc3QgdmFsVmlldyA9IG5ldyBEYXRhVmlldyh0aGlzLmJ1ZiwgdGhpcy5fcG9zLCAyKTtcclxuICAgICAgICB2YWxWaWV3LnNldEludDE2KDAsIHZhbCwgbGUpO1xyXG4gICAgICAgIHRoaXMuX3BvcyArPSAyO1xyXG4gICAgICB9XHJcblxyXG5cclxuICAgICAgd3JpdGVVaW50MzIodmFsOiBudW1iZXIsIGxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lbnN1cmVDYXBhY2l0eSg0KTtcclxuICAgICAgICBjb25zdCB2YWxWaWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmLCB0aGlzLl9wb3MsIDQpO1xyXG4gICAgICAgIHZhbFZpZXcuc2V0VWludDMyKDAsIHZhbCwgbGUpO1xyXG4gICAgICAgIHRoaXMuX3BvcyArPSA0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICB3cml0ZUludDMyKHZhbDogbnVtYmVyLCBsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwYWNpdHkoNCk7XHJcbiAgICAgICAgY29uc3QgdmFsVmlldyA9IG5ldyBEYXRhVmlldyh0aGlzLmJ1ZiwgdGhpcy5fcG9zLCA0KTtcclxuICAgICAgICB2YWxWaWV3LnNldEludDMyKDAsIHZhbCwgbGUpO1xyXG4gICAgICAgIHRoaXMuX3BvcyArPSA0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICB3cml0ZUZsb2F0KHZhbDpudW1iZXIpe1xyXG4gICAgICAgICAgdGhpcy5lbnN1cmVDYXBhY2l0eSg0KTtcclxuICAgICAgICAgIGNvbnN0IHZhbFZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5idWYsIHRoaXMuX3BvcywgNCk7XHJcbiAgICAgICAgICB2YWxWaWV3LnNldEZsb2F0MzIoMCwgdmFsLHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5fcG9zICs9IDQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICAgZmluaXNoKCk6IFVpbnQ4QXJyYXkge1xyXG4gICAgICAgICAgY29uc3QgZmluYWxBcnIgPSBuZXcgVWludDhBcnJheSh0aGlzLl9wb3MpO1xyXG4gICAgICAgICAgY29uc3QgZHYgPSBuZXcgRGF0YVZpZXcodGhpcy5idWYsIDAsIHRoaXMuX3Bvcyk7XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3BvczsgaSsrKSB7XHJcbiAgICAgICAgICAgIGZpbmFsQXJyW2ldID0gZHYuZ2V0VWludDgoaSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gZmluYWxBcnI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB3cml0ZUFzY2lpKHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgICAgICBsZXQgaTtcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICBjb25zdCBhc2NpaUNvZGUgPSB0ZXh0LmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgICAgICAgaWYgKGFzY2lpQ29kZSA8IDAgfHwgYXNjaWlDb2RlID4gMjU1KSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhbiBBU0NJSSBjaGFyYWN0ZXIgYXQgY2hhciAnICsgaSArICcgaW4gJyArIHRleHQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLndyaXRlVWludDgoYXNjaWlDb2RlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4iXX0=
|