-
Notifications
You must be signed in to change notification settings - Fork 796
Expand file tree
/
Copy pathcreator.js
More file actions
35 lines (31 loc) · 888 Bytes
/
Copy pathcreator.js
File metadata and controls
35 lines (31 loc) · 888 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var CONSTANTS = require("./constants");
var FILL_SIZE = 4;
var PRESET_LENGTH = 257;
function creator(data) {
var buffer = [];
for (var i = 0; i < CONSTANTS.HEADER.length; i++) {
buffer.push(CONSTANTS.HEADER.charCodeAt(i));
}
buffer.push(26); // <ctrl-z>
var ending = "!--";
for (var i = 0; i < ending.length; i++) {
buffer.push(ending.charCodeAt(i));
}
if (!data.presets) {
throw new Error("Eqf data is missing presets");
}
data.presets.forEach(function (preset) {
var k = 0;
for (; k < preset.name.length; k++) {
buffer.push(preset.name.charCodeAt(k));
}
for (; k < PRESET_LENGTH; k++) {
buffer.push(0);
}
CONSTANTS.PRESET_VALUES.forEach(function (valueName) {
buffer.push(64 - preset[valueName]); // Adjust for inverse values
});
});
return new Uint8Array(buffer).buffer;
}
module.exports = creator;