verovio 3.10.0 → 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 +54 -12
- package/dist/verovio-module-hum.js +21 -0
- package/dist/verovio-module.js +21 -0
- package/dist/verovio-toolkit-wasm.js +367 -0
- package/dist/verovio.cjs +337 -0
- package/dist/verovio.mjs +333 -0
- package/package.json +24 -4
- package/index.js +0 -368
package/dist/verovio.cjs
ADDED
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const createEmscriptenProxy = (VerovioModule) => {
|
|
6
|
+
return new Proxy({}, {
|
|
7
|
+
get: (target, method) => {
|
|
8
|
+
return (...args) => {
|
|
9
|
+
return getToolkitFunction(VerovioModule, method)(...args);
|
|
10
|
+
};
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
function getToolkitFunction(VerovioModule, method) {
|
|
16
|
+
const mapping = {};
|
|
17
|
+
|
|
18
|
+
// Constructor and destructor
|
|
19
|
+
// Toolkit *constructor()
|
|
20
|
+
mapping.constructor = VerovioModule.cwrap('vrvToolkit_constructor', 'number', []);
|
|
21
|
+
|
|
22
|
+
// void destructor(Toolkit *ic)
|
|
23
|
+
mapping.destructor = VerovioModule.cwrap('vrvToolkit_destructor', null, ['number']);
|
|
24
|
+
|
|
25
|
+
// bool edit(Toolkit *ic, const char *editorAction)
|
|
26
|
+
mapping.edit = VerovioModule.cwrap('vrvToolkit_edit', 'number', ['number', 'string']);
|
|
27
|
+
|
|
28
|
+
// char *editInfo(Toolkit *ic)
|
|
29
|
+
mapping.editInfo = VerovioModule.cwrap('vrvToolkit_editInfo', 'string', ['number']);
|
|
30
|
+
|
|
31
|
+
// char *getAvailableOptions(Toolkit *ic)
|
|
32
|
+
mapping.getAvailableOptions = VerovioModule.cwrap('vrvToolkit_getAvailableOptions', 'string', ['number']);
|
|
33
|
+
|
|
34
|
+
// char *getDescriptiveFeatures(Toolkit *ic, const char *options)
|
|
35
|
+
mapping.getDescriptiveFeatures = VerovioModule.cwrap('vrvToolkit_getDescriptiveFeatures', 'string', ['number', 'string']);
|
|
36
|
+
|
|
37
|
+
// char *getElementAttr(Toolkit *ic, const char *xmlId)
|
|
38
|
+
mapping.getElementAttr = VerovioModule.cwrap('vrvToolkit_getElementAttr', 'string', ['number', 'string']);
|
|
39
|
+
|
|
40
|
+
// char *getElementsAtTime(Toolkit *ic, int time)
|
|
41
|
+
mapping.getElementsAtTime = VerovioModule.cwrap('vrvToolkit_getElementsAtTime', 'string', ['number', 'number']);
|
|
42
|
+
|
|
43
|
+
// char *vrvToolkit_getExpansionIdsForElement(Toolkit *tk, const char *xmlId);
|
|
44
|
+
mapping.getExpansionIdsForElement = VerovioModule.cwrap('vrvToolkit_getExpansionIdsForElement', 'string', ['number', 'string']);
|
|
45
|
+
|
|
46
|
+
// char *getHumdrum(Toolkit *ic)
|
|
47
|
+
mapping.getHumdrum = VerovioModule.cwrap('vrvToolkit_getHumdrum', 'string');
|
|
48
|
+
|
|
49
|
+
// char *convertMEIToHumdrum(Toolkit *ic, const char *meiData)
|
|
50
|
+
mapping.convertMEIToHumdrum = VerovioModule.cwrap('vrvToolkit_convertMEIToHumdrum', 'string', ['number', 'string']);
|
|
51
|
+
|
|
52
|
+
// char *convertHumdrumToHumdrum(Toolkit *ic, const char *humdrumData)
|
|
53
|
+
mapping.convertHumdrumToHumdrum = VerovioModule.cwrap('vrvToolkit_convertHumdrumToHumdrum', 'string', ['number', 'string']);
|
|
54
|
+
|
|
55
|
+
// char *convertHumdrumToMIDI(Toolkit *ic, const char *humdrumData)
|
|
56
|
+
mapping.convertHumdrumToMIDI = VerovioModule.cwrap('vrvToolkit_convertHumdrumToMIDI', 'string', ['number', 'string']);
|
|
57
|
+
|
|
58
|
+
// char *getLog(Toolkit *ic)
|
|
59
|
+
mapping.getLog = VerovioModule.cwrap('vrvToolkit_getLog', 'string', ['number']);
|
|
60
|
+
|
|
61
|
+
// char *getMEI(Toolkit *ic, const char *options)
|
|
62
|
+
mapping.getMEI = VerovioModule.cwrap('vrvToolkit_getMEI', 'string', ['number', 'string']);
|
|
63
|
+
|
|
64
|
+
// char *vrvToolkit_getNotatedIdForElement(Toolkit *tk, const char *xmlId);
|
|
65
|
+
mapping.getNotatedIdForElement = VerovioModule.cwrap('vrvToolkit_getNotatedIdForElement', 'string', ['number', 'string']);
|
|
66
|
+
|
|
67
|
+
// char *getOptions(Toolkit *ic, int defaultValues)
|
|
68
|
+
mapping.getOptions = VerovioModule.cwrap('vrvToolkit_getOptions', 'string', ['number', 'number']);
|
|
69
|
+
|
|
70
|
+
// int getPageCount(Toolkit *ic)
|
|
71
|
+
mapping.getPageCount = VerovioModule.cwrap('vrvToolkit_getPageCount', 'number', ['number']);
|
|
72
|
+
|
|
73
|
+
// int getPageWithElement(Toolkit *ic, const char *xmlId)
|
|
74
|
+
mapping.getPageWithElement = VerovioModule.cwrap('vrvToolkit_getPageWithElement', 'number', ['number', 'string']);
|
|
75
|
+
|
|
76
|
+
// double getTimeForElement(Toolkit *ic, const char *xmlId)
|
|
77
|
+
mapping.getTimeForElement = VerovioModule.cwrap('vrvToolkit_getTimeForElement', 'number', ['number', 'string']);
|
|
78
|
+
|
|
79
|
+
// char *getTimesForElement(Toolkit *ic, const char *xmlId)
|
|
80
|
+
mapping.getTimesForElement = VerovioModule.cwrap('vrvToolkit_getTimesForElement', 'string', ['number', 'string']);
|
|
81
|
+
|
|
82
|
+
// char *getMIDIValuesForElement(Toolkit *ic, const char *xmlId)
|
|
83
|
+
mapping.getMIDIValuesForElement = VerovioModule.cwrap('vrvToolkit_getMIDIValuesForElement', 'string', ['number', 'string']);
|
|
84
|
+
|
|
85
|
+
// char *getVersion(Toolkit *ic)
|
|
86
|
+
mapping.getVersion = VerovioModule.cwrap('vrvToolkit_getVersion', 'string', ['number']);
|
|
87
|
+
|
|
88
|
+
// bool loadData(Toolkit *ic, const char *data)
|
|
89
|
+
mapping.loadData = VerovioModule.cwrap('vrvToolkit_loadData', 'number', ['number', 'string']);
|
|
90
|
+
|
|
91
|
+
// bool loadZipDataBase64(Toolkit *ic, const char *data)
|
|
92
|
+
mapping.loadZipDataBase64 = VerovioModule.cwrap('vrvToolkit_loadZipDataBase64', 'number', ['number', 'string']);
|
|
93
|
+
|
|
94
|
+
// bool loadZipDataBuffer(Toolkit *ic, const unsigned char *data, int length)
|
|
95
|
+
mapping.loadZipDataBuffer = VerovioModule.cwrap('vrvToolkit_loadZipDataBuffer', 'number', ['number', 'number', 'number']);
|
|
96
|
+
|
|
97
|
+
// void redoLayout(Toolkit *ic)
|
|
98
|
+
mapping.redoLayout = VerovioModule.cwrap('vrvToolkit_redoLayout', null, ['number', 'string']);
|
|
99
|
+
|
|
100
|
+
// void redoPagePitchPosLayout(Toolkit *ic)
|
|
101
|
+
mapping.redoPagePitchPosLayout = VerovioModule.cwrap('vrvToolkit_redoPagePitchPosLayout', null, ['number']);
|
|
102
|
+
|
|
103
|
+
// char *renderData(Toolkit *ic, const char *data, const char *options)
|
|
104
|
+
mapping.renderData = VerovioModule.cwrap('vrvToolkit_renderData', 'string', ['number', 'string', 'string']);
|
|
105
|
+
|
|
106
|
+
// char *renderToMidi(Toolkit *ic, const char *rendering_options)
|
|
107
|
+
mapping.renderToMIDI = VerovioModule.cwrap('vrvToolkit_renderToMIDI', 'string', ['number', 'string']);
|
|
108
|
+
|
|
109
|
+
// char *renderToPAE(Toolkit *ic)
|
|
110
|
+
mapping.renderToPAE = VerovioModule.cwrap('vrvToolkit_renderToPAE', 'string');
|
|
111
|
+
|
|
112
|
+
// char *renderToSvg(Toolkit *ic, int pageNo, const char *rendering_options)
|
|
113
|
+
mapping.renderToSVG = VerovioModule.cwrap('vrvToolkit_renderToSVG', 'string', ['number', 'number', 'number']);
|
|
114
|
+
|
|
115
|
+
// char *renderToTimemap(Toolkit *ic)
|
|
116
|
+
mapping.renderToTimemap = VerovioModule.cwrap('vrvToolkit_renderToTimemap', 'string', ['number', 'string']);
|
|
117
|
+
|
|
118
|
+
// void resetOptions(Toolkit *ic)
|
|
119
|
+
mapping.resetOptions = VerovioModule.cwrap('vrvToolkit_resetOptions', null, ['number']);
|
|
120
|
+
|
|
121
|
+
// void resetXmlIdSeed(Toolkit *ic, int seed)
|
|
122
|
+
mapping.resetXmlIdSeed = VerovioModule.cwrap('vrvToolkit_resetXmlIdSeed', null, ['number', 'number']);
|
|
123
|
+
|
|
124
|
+
// bool select(Toolkit *ic, const char *options)
|
|
125
|
+
mapping.select = VerovioModule.cwrap('vrvToolkit_select', 'number', ['number', 'string']);
|
|
126
|
+
|
|
127
|
+
// void setOptions(Toolkit *ic, const char *options)
|
|
128
|
+
mapping.setOptions = VerovioModule.cwrap('vrvToolkit_setOptions', null, ['number', 'string']);
|
|
129
|
+
|
|
130
|
+
// char *validatePAE(Toolkit *ic, const char *options)
|
|
131
|
+
mapping.validatePAE = VerovioModule.cwrap('vrvToolkit_validatePAE', 'string', ['number', 'string']);
|
|
132
|
+
|
|
133
|
+
return mapping[method];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
class VerovioToolkit {
|
|
137
|
+
|
|
138
|
+
constructor(VerovioModule) {
|
|
139
|
+
this.VerovioModule = VerovioModule;
|
|
140
|
+
if (!this.VerovioModule) {
|
|
141
|
+
throw new Error('VerovioToolkit needs VerovioModule passed as argument to the constructor.');
|
|
142
|
+
}
|
|
143
|
+
this.proxy = createEmscriptenProxy(this.VerovioModule);
|
|
144
|
+
this.ptr = this.proxy.constructor();
|
|
145
|
+
console.debug('Creating toolkit instance');
|
|
146
|
+
VerovioToolkit.instances.push(this);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
destroy() {
|
|
150
|
+
VerovioToolkit.instances.splice(VerovioToolkit.instances.findIndex(i => i.ptr === this.ptr), 1);
|
|
151
|
+
console.debug('Deleting toolkit instance');
|
|
152
|
+
this.proxy.destructor(this.ptr);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
edit(editorAction) {
|
|
156
|
+
return this.proxy.edit(this.ptr, JSON.stringify(editorAction));
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
editInfo() {
|
|
160
|
+
return JSON.parse(this.proxy.editInfo(this.ptr));
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
getAvailableOptions() {
|
|
164
|
+
return JSON.parse(this.proxy.getAvailableOptions(this.ptr));
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
getDescriptiveFeatures(options) {
|
|
168
|
+
return JSON.parse(this.proxy.getDescriptiveFeatures(this.ptr, JSON.stringify(options)));
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
getElementAttr(xmlId) {
|
|
172
|
+
return JSON.parse(this.proxy.getElementAttr(this.ptr, xmlId));
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
getElementsAtTime(millisec) {
|
|
176
|
+
return JSON.parse(this.proxy.getElementsAtTime(this.ptr, millisec));
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
getExpansionIdsForElement(xmlId) {
|
|
180
|
+
return JSON.parse(this.proxy.getExpansionIdsForElement(this.ptr, xmlId));
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
getHumdrum() {
|
|
184
|
+
return this.proxy.getHumdrum(this.ptr);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
convertHumdrumToHumdrum(data) {
|
|
188
|
+
return this.proxy.convertHumdrumToHumdrum(this.ptr, data);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
convertHumdrumToMIDI(data) {
|
|
192
|
+
return this.proxy.convertHumdrumToMIDI(this.ptr, data);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
convertMEIToHumdrum(data) {
|
|
196
|
+
return this.proxy.convertMEIToHumdrum(this.ptr, data);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
getLog() {
|
|
200
|
+
return this.proxy.getLog(this.ptr);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
getMEI(options = {}) {
|
|
204
|
+
return this.proxy.getMEI(this.ptr, JSON.stringify(options));
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
getMIDIValuesForElement(xmlId) {
|
|
208
|
+
return JSON.parse(this.proxy.getMIDIValuesForElement(this.ptr, xmlId));
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
getNotatedIdForElement(xmlId) {
|
|
212
|
+
return this.proxy.getNotatedIdForElement(this.ptr, xmlId);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
getOptions(defaultValues) {
|
|
216
|
+
return JSON.parse(this.proxy.getOptions(this.ptr, defaultValues));
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
getPageCount() {
|
|
220
|
+
return this.proxy.getPageCount(this.ptr);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
getPageWithElement(xmlId) {
|
|
224
|
+
return this.proxy.getPageWithElement(this.ptr, xmlId);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
getTimeForElement(xmlId) {
|
|
228
|
+
return this.proxy.getTimeForElement(this.ptr, xmlId);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
getTimesForElement(xmlId) {
|
|
232
|
+
return JSON.parse(this.proxy.getTimesForElement(this.ptr, xmlId));
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
getVersion() {
|
|
236
|
+
return this.proxy.getVersion(this.ptr);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
loadData(data) {
|
|
240
|
+
return this.proxy.loadData(this.ptr, data);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
loadZipDataBase64(data) {
|
|
244
|
+
return this.proxy.loadZipDataBase64(this.ptr, data);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
loadZipDataBuffer(data) {
|
|
248
|
+
if (!(data instanceof ArrayBuffer)) {
|
|
249
|
+
console.error('Parameter for loadZipDataBuffer has to be of type ArrayBuffer');
|
|
250
|
+
return false;
|
|
251
|
+
}
|
|
252
|
+
var dataArray = new Uint8Array(data);
|
|
253
|
+
var dataSize = dataArray.length * dataArray.BYTES_PER_ELEMENT;
|
|
254
|
+
var dataPtr = Module._malloc(dataSize);
|
|
255
|
+
Module.HEAPU8.set(dataArray, dataPtr);
|
|
256
|
+
var res = this.proxy.loadZipDataBuffer(this.ptr, dataPtr, dataSize);
|
|
257
|
+
Module._free(dataPtr);
|
|
258
|
+
return res;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
redoLayout(options = {}) {
|
|
262
|
+
this.proxy.redoLayout(this.ptr, JSON.stringify(options));
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
redoPagePitchPosLayout() {
|
|
266
|
+
this.proxy.redoPagePitchPosLayout(this.ptr);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
renderData(data, options) {
|
|
270
|
+
return this.proxy.renderData(this.ptr, data, JSON.stringify(options));
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
renderPage(pageNo, options) {
|
|
274
|
+
console.warn('Method renderPage is deprecated; use renderToSVG instead');
|
|
275
|
+
return this.proxy.renderToSVG(this.ptr, pageNo, JSON.stringify(options));
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
renderToMIDI(options) {
|
|
279
|
+
return this.proxy.renderToMIDI(this.ptr, JSON.stringify(options));
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
renderToMidi(options) {
|
|
283
|
+
console.warn('Method renderToMidi is deprecated; use renderToMIDI instead');
|
|
284
|
+
return this.proxy.renderToMIDI(this.ptr, JSON.stringify(options));
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
renderToPAE() {
|
|
288
|
+
return this.proxy.renderToPAE(this.ptr);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
renderToSVG(pageNo = 1, xmlDeclaration = false) {
|
|
292
|
+
return this.proxy.renderToSVG(this.ptr, pageNo, xmlDeclaration);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
renderToTimemap(options = {}) {
|
|
296
|
+
return JSON.parse(this.proxy.renderToTimemap(this.ptr, JSON.stringify(options)));
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
resetOptions() {
|
|
300
|
+
this.proxy.resetOptions(this.ptr);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
resetXmlIdSeed(seed) {
|
|
304
|
+
return this.proxy.resetXmlIdSeed(this.ptr, seed);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
select(selection) {
|
|
308
|
+
return this.proxy.select(this.ptr, JSON.stringify(selection));
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
setOptions(options) {
|
|
312
|
+
this.proxy.setOptions(this.ptr, JSON.stringify(options));
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
validatePAE(data) {
|
|
316
|
+
if (data instanceof Object) {
|
|
317
|
+
data = JSON.stringify(data);
|
|
318
|
+
}
|
|
319
|
+
return JSON.parse(this.proxy.validatePAE(this.ptr, data));
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
}
|
|
323
|
+
// A pointer to the object - only one isnstance can be created for now
|
|
324
|
+
VerovioToolkit.instances = [];
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
// If the window object is defined (if we are not within a WebWorker)...
|
|
328
|
+
if ((typeof window !== 'undefined') && (window.addEventListener)) {
|
|
329
|
+
// Add a listener that will delete the object (if necessary) when the page is closed
|
|
330
|
+
window.addEventListener('unload', () => {
|
|
331
|
+
VerovioToolkit.instances.forEach((instance) => {
|
|
332
|
+
instance.destroy();
|
|
333
|
+
});
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
exports.VerovioToolkit = VerovioToolkit;
|
package/dist/verovio.mjs
ADDED
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
const createEmscriptenProxy = (VerovioModule) => {
|
|
2
|
+
return new Proxy({}, {
|
|
3
|
+
get: (target, method) => {
|
|
4
|
+
return (...args) => {
|
|
5
|
+
return getToolkitFunction(VerovioModule, method)(...args);
|
|
6
|
+
};
|
|
7
|
+
},
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
function getToolkitFunction(VerovioModule, method) {
|
|
12
|
+
const mapping = {};
|
|
13
|
+
|
|
14
|
+
// Constructor and destructor
|
|
15
|
+
// Toolkit *constructor()
|
|
16
|
+
mapping.constructor = VerovioModule.cwrap('vrvToolkit_constructor', 'number', []);
|
|
17
|
+
|
|
18
|
+
// void destructor(Toolkit *ic)
|
|
19
|
+
mapping.destructor = VerovioModule.cwrap('vrvToolkit_destructor', null, ['number']);
|
|
20
|
+
|
|
21
|
+
// bool edit(Toolkit *ic, const char *editorAction)
|
|
22
|
+
mapping.edit = VerovioModule.cwrap('vrvToolkit_edit', 'number', ['number', 'string']);
|
|
23
|
+
|
|
24
|
+
// char *editInfo(Toolkit *ic)
|
|
25
|
+
mapping.editInfo = VerovioModule.cwrap('vrvToolkit_editInfo', 'string', ['number']);
|
|
26
|
+
|
|
27
|
+
// char *getAvailableOptions(Toolkit *ic)
|
|
28
|
+
mapping.getAvailableOptions = VerovioModule.cwrap('vrvToolkit_getAvailableOptions', 'string', ['number']);
|
|
29
|
+
|
|
30
|
+
// char *getDescriptiveFeatures(Toolkit *ic, const char *options)
|
|
31
|
+
mapping.getDescriptiveFeatures = VerovioModule.cwrap('vrvToolkit_getDescriptiveFeatures', 'string', ['number', 'string']);
|
|
32
|
+
|
|
33
|
+
// char *getElementAttr(Toolkit *ic, const char *xmlId)
|
|
34
|
+
mapping.getElementAttr = VerovioModule.cwrap('vrvToolkit_getElementAttr', 'string', ['number', 'string']);
|
|
35
|
+
|
|
36
|
+
// char *getElementsAtTime(Toolkit *ic, int time)
|
|
37
|
+
mapping.getElementsAtTime = VerovioModule.cwrap('vrvToolkit_getElementsAtTime', 'string', ['number', 'number']);
|
|
38
|
+
|
|
39
|
+
// char *vrvToolkit_getExpansionIdsForElement(Toolkit *tk, const char *xmlId);
|
|
40
|
+
mapping.getExpansionIdsForElement = VerovioModule.cwrap('vrvToolkit_getExpansionIdsForElement', 'string', ['number', 'string']);
|
|
41
|
+
|
|
42
|
+
// char *getHumdrum(Toolkit *ic)
|
|
43
|
+
mapping.getHumdrum = VerovioModule.cwrap('vrvToolkit_getHumdrum', 'string');
|
|
44
|
+
|
|
45
|
+
// char *convertMEIToHumdrum(Toolkit *ic, const char *meiData)
|
|
46
|
+
mapping.convertMEIToHumdrum = VerovioModule.cwrap('vrvToolkit_convertMEIToHumdrum', 'string', ['number', 'string']);
|
|
47
|
+
|
|
48
|
+
// char *convertHumdrumToHumdrum(Toolkit *ic, const char *humdrumData)
|
|
49
|
+
mapping.convertHumdrumToHumdrum = VerovioModule.cwrap('vrvToolkit_convertHumdrumToHumdrum', 'string', ['number', 'string']);
|
|
50
|
+
|
|
51
|
+
// char *convertHumdrumToMIDI(Toolkit *ic, const char *humdrumData)
|
|
52
|
+
mapping.convertHumdrumToMIDI = VerovioModule.cwrap('vrvToolkit_convertHumdrumToMIDI', 'string', ['number', 'string']);
|
|
53
|
+
|
|
54
|
+
// char *getLog(Toolkit *ic)
|
|
55
|
+
mapping.getLog = VerovioModule.cwrap('vrvToolkit_getLog', 'string', ['number']);
|
|
56
|
+
|
|
57
|
+
// char *getMEI(Toolkit *ic, const char *options)
|
|
58
|
+
mapping.getMEI = VerovioModule.cwrap('vrvToolkit_getMEI', 'string', ['number', 'string']);
|
|
59
|
+
|
|
60
|
+
// char *vrvToolkit_getNotatedIdForElement(Toolkit *tk, const char *xmlId);
|
|
61
|
+
mapping.getNotatedIdForElement = VerovioModule.cwrap('vrvToolkit_getNotatedIdForElement', 'string', ['number', 'string']);
|
|
62
|
+
|
|
63
|
+
// char *getOptions(Toolkit *ic, int defaultValues)
|
|
64
|
+
mapping.getOptions = VerovioModule.cwrap('vrvToolkit_getOptions', 'string', ['number', 'number']);
|
|
65
|
+
|
|
66
|
+
// int getPageCount(Toolkit *ic)
|
|
67
|
+
mapping.getPageCount = VerovioModule.cwrap('vrvToolkit_getPageCount', 'number', ['number']);
|
|
68
|
+
|
|
69
|
+
// int getPageWithElement(Toolkit *ic, const char *xmlId)
|
|
70
|
+
mapping.getPageWithElement = VerovioModule.cwrap('vrvToolkit_getPageWithElement', 'number', ['number', 'string']);
|
|
71
|
+
|
|
72
|
+
// double getTimeForElement(Toolkit *ic, const char *xmlId)
|
|
73
|
+
mapping.getTimeForElement = VerovioModule.cwrap('vrvToolkit_getTimeForElement', 'number', ['number', 'string']);
|
|
74
|
+
|
|
75
|
+
// char *getTimesForElement(Toolkit *ic, const char *xmlId)
|
|
76
|
+
mapping.getTimesForElement = VerovioModule.cwrap('vrvToolkit_getTimesForElement', 'string', ['number', 'string']);
|
|
77
|
+
|
|
78
|
+
// char *getMIDIValuesForElement(Toolkit *ic, const char *xmlId)
|
|
79
|
+
mapping.getMIDIValuesForElement = VerovioModule.cwrap('vrvToolkit_getMIDIValuesForElement', 'string', ['number', 'string']);
|
|
80
|
+
|
|
81
|
+
// char *getVersion(Toolkit *ic)
|
|
82
|
+
mapping.getVersion = VerovioModule.cwrap('vrvToolkit_getVersion', 'string', ['number']);
|
|
83
|
+
|
|
84
|
+
// bool loadData(Toolkit *ic, const char *data)
|
|
85
|
+
mapping.loadData = VerovioModule.cwrap('vrvToolkit_loadData', 'number', ['number', 'string']);
|
|
86
|
+
|
|
87
|
+
// bool loadZipDataBase64(Toolkit *ic, const char *data)
|
|
88
|
+
mapping.loadZipDataBase64 = VerovioModule.cwrap('vrvToolkit_loadZipDataBase64', 'number', ['number', 'string']);
|
|
89
|
+
|
|
90
|
+
// bool loadZipDataBuffer(Toolkit *ic, const unsigned char *data, int length)
|
|
91
|
+
mapping.loadZipDataBuffer = VerovioModule.cwrap('vrvToolkit_loadZipDataBuffer', 'number', ['number', 'number', 'number']);
|
|
92
|
+
|
|
93
|
+
// void redoLayout(Toolkit *ic)
|
|
94
|
+
mapping.redoLayout = VerovioModule.cwrap('vrvToolkit_redoLayout', null, ['number', 'string']);
|
|
95
|
+
|
|
96
|
+
// void redoPagePitchPosLayout(Toolkit *ic)
|
|
97
|
+
mapping.redoPagePitchPosLayout = VerovioModule.cwrap('vrvToolkit_redoPagePitchPosLayout', null, ['number']);
|
|
98
|
+
|
|
99
|
+
// char *renderData(Toolkit *ic, const char *data, const char *options)
|
|
100
|
+
mapping.renderData = VerovioModule.cwrap('vrvToolkit_renderData', 'string', ['number', 'string', 'string']);
|
|
101
|
+
|
|
102
|
+
// char *renderToMidi(Toolkit *ic, const char *rendering_options)
|
|
103
|
+
mapping.renderToMIDI = VerovioModule.cwrap('vrvToolkit_renderToMIDI', 'string', ['number', 'string']);
|
|
104
|
+
|
|
105
|
+
// char *renderToPAE(Toolkit *ic)
|
|
106
|
+
mapping.renderToPAE = VerovioModule.cwrap('vrvToolkit_renderToPAE', 'string');
|
|
107
|
+
|
|
108
|
+
// char *renderToSvg(Toolkit *ic, int pageNo, const char *rendering_options)
|
|
109
|
+
mapping.renderToSVG = VerovioModule.cwrap('vrvToolkit_renderToSVG', 'string', ['number', 'number', 'number']);
|
|
110
|
+
|
|
111
|
+
// char *renderToTimemap(Toolkit *ic)
|
|
112
|
+
mapping.renderToTimemap = VerovioModule.cwrap('vrvToolkit_renderToTimemap', 'string', ['number', 'string']);
|
|
113
|
+
|
|
114
|
+
// void resetOptions(Toolkit *ic)
|
|
115
|
+
mapping.resetOptions = VerovioModule.cwrap('vrvToolkit_resetOptions', null, ['number']);
|
|
116
|
+
|
|
117
|
+
// void resetXmlIdSeed(Toolkit *ic, int seed)
|
|
118
|
+
mapping.resetXmlIdSeed = VerovioModule.cwrap('vrvToolkit_resetXmlIdSeed', null, ['number', 'number']);
|
|
119
|
+
|
|
120
|
+
// bool select(Toolkit *ic, const char *options)
|
|
121
|
+
mapping.select = VerovioModule.cwrap('vrvToolkit_select', 'number', ['number', 'string']);
|
|
122
|
+
|
|
123
|
+
// void setOptions(Toolkit *ic, const char *options)
|
|
124
|
+
mapping.setOptions = VerovioModule.cwrap('vrvToolkit_setOptions', null, ['number', 'string']);
|
|
125
|
+
|
|
126
|
+
// char *validatePAE(Toolkit *ic, const char *options)
|
|
127
|
+
mapping.validatePAE = VerovioModule.cwrap('vrvToolkit_validatePAE', 'string', ['number', 'string']);
|
|
128
|
+
|
|
129
|
+
return mapping[method];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
class VerovioToolkit {
|
|
133
|
+
|
|
134
|
+
constructor(VerovioModule) {
|
|
135
|
+
this.VerovioModule = VerovioModule;
|
|
136
|
+
if (!this.VerovioModule) {
|
|
137
|
+
throw new Error('VerovioToolkit needs VerovioModule passed as argument to the constructor.');
|
|
138
|
+
}
|
|
139
|
+
this.proxy = createEmscriptenProxy(this.VerovioModule);
|
|
140
|
+
this.ptr = this.proxy.constructor();
|
|
141
|
+
console.debug('Creating toolkit instance');
|
|
142
|
+
VerovioToolkit.instances.push(this);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
destroy() {
|
|
146
|
+
VerovioToolkit.instances.splice(VerovioToolkit.instances.findIndex(i => i.ptr === this.ptr), 1);
|
|
147
|
+
console.debug('Deleting toolkit instance');
|
|
148
|
+
this.proxy.destructor(this.ptr);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
edit(editorAction) {
|
|
152
|
+
return this.proxy.edit(this.ptr, JSON.stringify(editorAction));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
editInfo() {
|
|
156
|
+
return JSON.parse(this.proxy.editInfo(this.ptr));
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
getAvailableOptions() {
|
|
160
|
+
return JSON.parse(this.proxy.getAvailableOptions(this.ptr));
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
getDescriptiveFeatures(options) {
|
|
164
|
+
return JSON.parse(this.proxy.getDescriptiveFeatures(this.ptr, JSON.stringify(options)));
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
getElementAttr(xmlId) {
|
|
168
|
+
return JSON.parse(this.proxy.getElementAttr(this.ptr, xmlId));
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
getElementsAtTime(millisec) {
|
|
172
|
+
return JSON.parse(this.proxy.getElementsAtTime(this.ptr, millisec));
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
getExpansionIdsForElement(xmlId) {
|
|
176
|
+
return JSON.parse(this.proxy.getExpansionIdsForElement(this.ptr, xmlId));
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
getHumdrum() {
|
|
180
|
+
return this.proxy.getHumdrum(this.ptr);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
convertHumdrumToHumdrum(data) {
|
|
184
|
+
return this.proxy.convertHumdrumToHumdrum(this.ptr, data);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
convertHumdrumToMIDI(data) {
|
|
188
|
+
return this.proxy.convertHumdrumToMIDI(this.ptr, data);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
convertMEIToHumdrum(data) {
|
|
192
|
+
return this.proxy.convertMEIToHumdrum(this.ptr, data);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
getLog() {
|
|
196
|
+
return this.proxy.getLog(this.ptr);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
getMEI(options = {}) {
|
|
200
|
+
return this.proxy.getMEI(this.ptr, JSON.stringify(options));
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
getMIDIValuesForElement(xmlId) {
|
|
204
|
+
return JSON.parse(this.proxy.getMIDIValuesForElement(this.ptr, xmlId));
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
getNotatedIdForElement(xmlId) {
|
|
208
|
+
return this.proxy.getNotatedIdForElement(this.ptr, xmlId);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
getOptions(defaultValues) {
|
|
212
|
+
return JSON.parse(this.proxy.getOptions(this.ptr, defaultValues));
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
getPageCount() {
|
|
216
|
+
return this.proxy.getPageCount(this.ptr);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
getPageWithElement(xmlId) {
|
|
220
|
+
return this.proxy.getPageWithElement(this.ptr, xmlId);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
getTimeForElement(xmlId) {
|
|
224
|
+
return this.proxy.getTimeForElement(this.ptr, xmlId);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
getTimesForElement(xmlId) {
|
|
228
|
+
return JSON.parse(this.proxy.getTimesForElement(this.ptr, xmlId));
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
getVersion() {
|
|
232
|
+
return this.proxy.getVersion(this.ptr);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
loadData(data) {
|
|
236
|
+
return this.proxy.loadData(this.ptr, data);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
loadZipDataBase64(data) {
|
|
240
|
+
return this.proxy.loadZipDataBase64(this.ptr, data);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
loadZipDataBuffer(data) {
|
|
244
|
+
if (!(data instanceof ArrayBuffer)) {
|
|
245
|
+
console.error('Parameter for loadZipDataBuffer has to be of type ArrayBuffer');
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
var dataArray = new Uint8Array(data);
|
|
249
|
+
var dataSize = dataArray.length * dataArray.BYTES_PER_ELEMENT;
|
|
250
|
+
var dataPtr = Module._malloc(dataSize);
|
|
251
|
+
Module.HEAPU8.set(dataArray, dataPtr);
|
|
252
|
+
var res = this.proxy.loadZipDataBuffer(this.ptr, dataPtr, dataSize);
|
|
253
|
+
Module._free(dataPtr);
|
|
254
|
+
return res;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
redoLayout(options = {}) {
|
|
258
|
+
this.proxy.redoLayout(this.ptr, JSON.stringify(options));
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
redoPagePitchPosLayout() {
|
|
262
|
+
this.proxy.redoPagePitchPosLayout(this.ptr);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
renderData(data, options) {
|
|
266
|
+
return this.proxy.renderData(this.ptr, data, JSON.stringify(options));
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
renderPage(pageNo, options) {
|
|
270
|
+
console.warn('Method renderPage is deprecated; use renderToSVG instead');
|
|
271
|
+
return this.proxy.renderToSVG(this.ptr, pageNo, JSON.stringify(options));
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
renderToMIDI(options) {
|
|
275
|
+
return this.proxy.renderToMIDI(this.ptr, JSON.stringify(options));
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
renderToMidi(options) {
|
|
279
|
+
console.warn('Method renderToMidi is deprecated; use renderToMIDI instead');
|
|
280
|
+
return this.proxy.renderToMIDI(this.ptr, JSON.stringify(options));
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
renderToPAE() {
|
|
284
|
+
return this.proxy.renderToPAE(this.ptr);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
renderToSVG(pageNo = 1, xmlDeclaration = false) {
|
|
288
|
+
return this.proxy.renderToSVG(this.ptr, pageNo, xmlDeclaration);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
renderToTimemap(options = {}) {
|
|
292
|
+
return JSON.parse(this.proxy.renderToTimemap(this.ptr, JSON.stringify(options)));
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
resetOptions() {
|
|
296
|
+
this.proxy.resetOptions(this.ptr);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
resetXmlIdSeed(seed) {
|
|
300
|
+
return this.proxy.resetXmlIdSeed(this.ptr, seed);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
select(selection) {
|
|
304
|
+
return this.proxy.select(this.ptr, JSON.stringify(selection));
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
setOptions(options) {
|
|
308
|
+
this.proxy.setOptions(this.ptr, JSON.stringify(options));
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
validatePAE(data) {
|
|
312
|
+
if (data instanceof Object) {
|
|
313
|
+
data = JSON.stringify(data);
|
|
314
|
+
}
|
|
315
|
+
return JSON.parse(this.proxy.validatePAE(this.ptr, data));
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
}
|
|
319
|
+
// A pointer to the object - only one isnstance can be created for now
|
|
320
|
+
VerovioToolkit.instances = [];
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
// If the window object is defined (if we are not within a WebWorker)...
|
|
324
|
+
if ((typeof window !== 'undefined') && (window.addEventListener)) {
|
|
325
|
+
// Add a listener that will delete the object (if necessary) when the page is closed
|
|
326
|
+
window.addEventListener('unload', () => {
|
|
327
|
+
VerovioToolkit.instances.forEach((instance) => {
|
|
328
|
+
instance.destroy();
|
|
329
|
+
});
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
export { VerovioToolkit };
|