@arcanewizards/timecode-toolbox 0.1.4 → 0.1.6
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 +3 -3
- package/dist/components/frontend/index.js +218 -55
- package/dist/components/frontend/index.mjs +237 -68
- package/dist/entrypoint.css +9 -0
- package/dist/entrypoint.js +800 -496
- package/dist/entrypoint.js.map +3 -3
- package/dist/frontend.js +800 -496
- package/dist/frontend.js.map +3 -3
- package/dist/index.js +52 -8
- package/dist/index.mjs +52 -8
- package/dist/start.js +52 -8
- package/dist/start.mjs +52 -8
- package/package.json +5 -4
package/dist/index.js
CHANGED
|
@@ -6832,9 +6832,27 @@ var createArtnet = (config) => {
|
|
|
6832
6832
|
})();
|
|
6833
6833
|
return connectPromise;
|
|
6834
6834
|
};
|
|
6835
|
+
const getNextFrameTiming = (mode, timeMillis) => {
|
|
6836
|
+
const timecode = getTimecodeFromMillis(mode, timeMillis);
|
|
6837
|
+
timecode.frame += 1;
|
|
6838
|
+
if (timecode.frame >= TIMECODE_FPS[mode]) {
|
|
6839
|
+
timecode.frame = 0;
|
|
6840
|
+
timecode.seconds += 1;
|
|
6841
|
+
if (timecode.seconds >= 60) {
|
|
6842
|
+
timecode.seconds = 0;
|
|
6843
|
+
timecode.minutes += 1;
|
|
6844
|
+
if (timecode.minutes >= 60) {
|
|
6845
|
+
timecode.minutes = 0;
|
|
6846
|
+
timecode.hours += 1;
|
|
6847
|
+
}
|
|
6848
|
+
}
|
|
6849
|
+
}
|
|
6850
|
+
const nextFrameTimeMillis = getTimeMillisFromTimecode(timecode);
|
|
6851
|
+
return { nextFrameTimeMillis };
|
|
6852
|
+
};
|
|
6835
6853
|
const sendTimecode = (mode, timeMillis) => {
|
|
6836
6854
|
if (timeMillis < 0) {
|
|
6837
|
-
return Promise.resolve();
|
|
6855
|
+
return Promise.resolve(getNextFrameTiming(mode, timeMillis));
|
|
6838
6856
|
}
|
|
6839
6857
|
if (!sendSocket) {
|
|
6840
6858
|
return Promise.reject(new Error("ArtNet connection has not been opened"));
|
|
@@ -6875,7 +6893,7 @@ var createArtnet = (config) => {
|
|
|
6875
6893
|
events.emit("error", error);
|
|
6876
6894
|
reject(error);
|
|
6877
6895
|
} else {
|
|
6878
|
-
resolve();
|
|
6896
|
+
resolve(getNextFrameTiming(mode, timeMillis));
|
|
6879
6897
|
}
|
|
6880
6898
|
}
|
|
6881
6899
|
)
|
|
@@ -6888,6 +6906,7 @@ var createArtnet = (config) => {
|
|
|
6888
6906
|
};
|
|
6889
6907
|
return {
|
|
6890
6908
|
connect,
|
|
6909
|
+
getNextFrameTiming,
|
|
6891
6910
|
sendTimecode,
|
|
6892
6911
|
on,
|
|
6893
6912
|
addListener,
|
|
@@ -6968,7 +6987,7 @@ var ArtnetInputConnection = ({
|
|
|
6968
6987
|
created.connect().then(() => {
|
|
6969
6988
|
artnet = created;
|
|
6970
6989
|
setArtnetInstance(created);
|
|
6971
|
-
log.info("ArtNet Timecode
|
|
6990
|
+
log.info("ArtNet Timecode input initialized");
|
|
6972
6991
|
setConnection({ ...connectionConfig, status: "active" });
|
|
6973
6992
|
}).catch((err) => {
|
|
6974
6993
|
const error = new Error("Failed to start ArtNet Timecode output");
|
|
@@ -14292,12 +14311,35 @@ var ArtnetOutputConnection = ({
|
|
|
14292
14311
|
}
|
|
14293
14312
|
if (timecodeState?.state === "playing" || timecodeState?.state === "lagging") {
|
|
14294
14313
|
const tcState = timecodeState;
|
|
14295
|
-
|
|
14314
|
+
let transmit = true;
|
|
14315
|
+
let timeoutId = null;
|
|
14316
|
+
const sendNextFrame = () => {
|
|
14317
|
+
if (!transmit) {
|
|
14318
|
+
return;
|
|
14319
|
+
}
|
|
14296
14320
|
const time = (Date.now() - tcState.effectiveStartTimeMillis) * tcState.speed;
|
|
14297
|
-
artnetInstance.sendTimecode(mode, time)
|
|
14298
|
-
|
|
14321
|
+
artnetInstance.sendTimecode(mode, time).then(({ nextFrameTimeMillis }) => {
|
|
14322
|
+
const delay = nextFrameTimeMillis - time + 1;
|
|
14323
|
+
timeoutId = setTimeout(sendNextFrame, delay);
|
|
14324
|
+
}).catch(() => {
|
|
14325
|
+
scheduleNextFrame();
|
|
14326
|
+
});
|
|
14327
|
+
};
|
|
14328
|
+
const scheduleNextFrame = () => {
|
|
14329
|
+
const time = (Date.now() - tcState.effectiveStartTimeMillis) * tcState.speed;
|
|
14330
|
+
const { nextFrameTimeMillis } = artnetInstance.getNextFrameTiming(
|
|
14331
|
+
mode,
|
|
14332
|
+
time
|
|
14333
|
+
);
|
|
14334
|
+
const delay = nextFrameTimeMillis - time + 1;
|
|
14335
|
+
timeoutId = setTimeout(sendNextFrame, delay);
|
|
14336
|
+
};
|
|
14337
|
+
scheduleNextFrame();
|
|
14299
14338
|
return () => {
|
|
14300
|
-
|
|
14339
|
+
transmit = false;
|
|
14340
|
+
if (timeoutId) {
|
|
14341
|
+
clearTimeout(timeoutId);
|
|
14342
|
+
}
|
|
14301
14343
|
};
|
|
14302
14344
|
} else if (timecodeState?.state === "stopped") {
|
|
14303
14345
|
artnetInstance.sendTimecode(mode, timecodeState?.positionMillis ?? 0);
|
|
@@ -14551,6 +14593,8 @@ var ClockGenerator = ({
|
|
|
14551
14593
|
timecode: {
|
|
14552
14594
|
metadata: null,
|
|
14553
14595
|
name: null,
|
|
14596
|
+
errors: [],
|
|
14597
|
+
warnings: [],
|
|
14554
14598
|
state: {
|
|
14555
14599
|
accuracyMillis: null,
|
|
14556
14600
|
smpteMode: null,
|
|
@@ -14924,7 +14968,7 @@ var createApp = (props) => {
|
|
|
14924
14968
|
};
|
|
14925
14969
|
|
|
14926
14970
|
// package.json
|
|
14927
|
-
var version = "0.1.
|
|
14971
|
+
var version = "0.1.6";
|
|
14928
14972
|
|
|
14929
14973
|
// src/urls.ts
|
|
14930
14974
|
var urls_exports = {};
|
package/dist/index.mjs
CHANGED
|
@@ -6844,9 +6844,27 @@ var createArtnet = (config) => {
|
|
|
6844
6844
|
})();
|
|
6845
6845
|
return connectPromise;
|
|
6846
6846
|
};
|
|
6847
|
+
const getNextFrameTiming = (mode, timeMillis) => {
|
|
6848
|
+
const timecode = getTimecodeFromMillis(mode, timeMillis);
|
|
6849
|
+
timecode.frame += 1;
|
|
6850
|
+
if (timecode.frame >= TIMECODE_FPS[mode]) {
|
|
6851
|
+
timecode.frame = 0;
|
|
6852
|
+
timecode.seconds += 1;
|
|
6853
|
+
if (timecode.seconds >= 60) {
|
|
6854
|
+
timecode.seconds = 0;
|
|
6855
|
+
timecode.minutes += 1;
|
|
6856
|
+
if (timecode.minutes >= 60) {
|
|
6857
|
+
timecode.minutes = 0;
|
|
6858
|
+
timecode.hours += 1;
|
|
6859
|
+
}
|
|
6860
|
+
}
|
|
6861
|
+
}
|
|
6862
|
+
const nextFrameTimeMillis = getTimeMillisFromTimecode(timecode);
|
|
6863
|
+
return { nextFrameTimeMillis };
|
|
6864
|
+
};
|
|
6847
6865
|
const sendTimecode = (mode, timeMillis) => {
|
|
6848
6866
|
if (timeMillis < 0) {
|
|
6849
|
-
return Promise.resolve();
|
|
6867
|
+
return Promise.resolve(getNextFrameTiming(mode, timeMillis));
|
|
6850
6868
|
}
|
|
6851
6869
|
if (!sendSocket) {
|
|
6852
6870
|
return Promise.reject(new Error("ArtNet connection has not been opened"));
|
|
@@ -6887,7 +6905,7 @@ var createArtnet = (config) => {
|
|
|
6887
6905
|
events.emit("error", error);
|
|
6888
6906
|
reject(error);
|
|
6889
6907
|
} else {
|
|
6890
|
-
resolve();
|
|
6908
|
+
resolve(getNextFrameTiming(mode, timeMillis));
|
|
6891
6909
|
}
|
|
6892
6910
|
}
|
|
6893
6911
|
)
|
|
@@ -6900,6 +6918,7 @@ var createArtnet = (config) => {
|
|
|
6900
6918
|
};
|
|
6901
6919
|
return {
|
|
6902
6920
|
connect,
|
|
6921
|
+
getNextFrameTiming,
|
|
6903
6922
|
sendTimecode,
|
|
6904
6923
|
on,
|
|
6905
6924
|
addListener,
|
|
@@ -6980,7 +6999,7 @@ var ArtnetInputConnection = ({
|
|
|
6980
6999
|
created.connect().then(() => {
|
|
6981
7000
|
artnet = created;
|
|
6982
7001
|
setArtnetInstance(created);
|
|
6983
|
-
log.info("ArtNet Timecode
|
|
7002
|
+
log.info("ArtNet Timecode input initialized");
|
|
6984
7003
|
setConnection({ ...connectionConfig, status: "active" });
|
|
6985
7004
|
}).catch((err) => {
|
|
6986
7005
|
const error = new Error("Failed to start ArtNet Timecode output");
|
|
@@ -14315,12 +14334,35 @@ var ArtnetOutputConnection = ({
|
|
|
14315
14334
|
}
|
|
14316
14335
|
if (timecodeState?.state === "playing" || timecodeState?.state === "lagging") {
|
|
14317
14336
|
const tcState = timecodeState;
|
|
14318
|
-
|
|
14337
|
+
let transmit = true;
|
|
14338
|
+
let timeoutId = null;
|
|
14339
|
+
const sendNextFrame = () => {
|
|
14340
|
+
if (!transmit) {
|
|
14341
|
+
return;
|
|
14342
|
+
}
|
|
14319
14343
|
const time = (Date.now() - tcState.effectiveStartTimeMillis) * tcState.speed;
|
|
14320
|
-
artnetInstance.sendTimecode(mode, time)
|
|
14321
|
-
|
|
14344
|
+
artnetInstance.sendTimecode(mode, time).then(({ nextFrameTimeMillis }) => {
|
|
14345
|
+
const delay = nextFrameTimeMillis - time + 1;
|
|
14346
|
+
timeoutId = setTimeout(sendNextFrame, delay);
|
|
14347
|
+
}).catch(() => {
|
|
14348
|
+
scheduleNextFrame();
|
|
14349
|
+
});
|
|
14350
|
+
};
|
|
14351
|
+
const scheduleNextFrame = () => {
|
|
14352
|
+
const time = (Date.now() - tcState.effectiveStartTimeMillis) * tcState.speed;
|
|
14353
|
+
const { nextFrameTimeMillis } = artnetInstance.getNextFrameTiming(
|
|
14354
|
+
mode,
|
|
14355
|
+
time
|
|
14356
|
+
);
|
|
14357
|
+
const delay = nextFrameTimeMillis - time + 1;
|
|
14358
|
+
timeoutId = setTimeout(sendNextFrame, delay);
|
|
14359
|
+
};
|
|
14360
|
+
scheduleNextFrame();
|
|
14322
14361
|
return () => {
|
|
14323
|
-
|
|
14362
|
+
transmit = false;
|
|
14363
|
+
if (timeoutId) {
|
|
14364
|
+
clearTimeout(timeoutId);
|
|
14365
|
+
}
|
|
14324
14366
|
};
|
|
14325
14367
|
} else if (timecodeState?.state === "stopped") {
|
|
14326
14368
|
artnetInstance.sendTimecode(mode, timecodeState?.positionMillis ?? 0);
|
|
@@ -14579,6 +14621,8 @@ var ClockGenerator = ({
|
|
|
14579
14621
|
timecode: {
|
|
14580
14622
|
metadata: null,
|
|
14581
14623
|
name: null,
|
|
14624
|
+
errors: [],
|
|
14625
|
+
warnings: [],
|
|
14582
14626
|
state: {
|
|
14583
14627
|
accuracyMillis: null,
|
|
14584
14628
|
smpteMode: null,
|
|
@@ -14952,7 +14996,7 @@ var createApp = (props) => {
|
|
|
14952
14996
|
};
|
|
14953
14997
|
|
|
14954
14998
|
// package.json
|
|
14955
|
-
var version = "0.1.
|
|
14999
|
+
var version = "0.1.6";
|
|
14956
15000
|
|
|
14957
15001
|
// src/urls.ts
|
|
14958
15002
|
var urls_exports = {};
|
package/dist/start.js
CHANGED
|
@@ -6833,9 +6833,27 @@ var createArtnet = (config) => {
|
|
|
6833
6833
|
})();
|
|
6834
6834
|
return connectPromise;
|
|
6835
6835
|
};
|
|
6836
|
+
const getNextFrameTiming = (mode, timeMillis) => {
|
|
6837
|
+
const timecode = getTimecodeFromMillis(mode, timeMillis);
|
|
6838
|
+
timecode.frame += 1;
|
|
6839
|
+
if (timecode.frame >= TIMECODE_FPS[mode]) {
|
|
6840
|
+
timecode.frame = 0;
|
|
6841
|
+
timecode.seconds += 1;
|
|
6842
|
+
if (timecode.seconds >= 60) {
|
|
6843
|
+
timecode.seconds = 0;
|
|
6844
|
+
timecode.minutes += 1;
|
|
6845
|
+
if (timecode.minutes >= 60) {
|
|
6846
|
+
timecode.minutes = 0;
|
|
6847
|
+
timecode.hours += 1;
|
|
6848
|
+
}
|
|
6849
|
+
}
|
|
6850
|
+
}
|
|
6851
|
+
const nextFrameTimeMillis = getTimeMillisFromTimecode(timecode);
|
|
6852
|
+
return { nextFrameTimeMillis };
|
|
6853
|
+
};
|
|
6836
6854
|
const sendTimecode = (mode, timeMillis) => {
|
|
6837
6855
|
if (timeMillis < 0) {
|
|
6838
|
-
return Promise.resolve();
|
|
6856
|
+
return Promise.resolve(getNextFrameTiming(mode, timeMillis));
|
|
6839
6857
|
}
|
|
6840
6858
|
if (!sendSocket) {
|
|
6841
6859
|
return Promise.reject(new Error("ArtNet connection has not been opened"));
|
|
@@ -6876,7 +6894,7 @@ var createArtnet = (config) => {
|
|
|
6876
6894
|
events.emit("error", error);
|
|
6877
6895
|
reject(error);
|
|
6878
6896
|
} else {
|
|
6879
|
-
resolve();
|
|
6897
|
+
resolve(getNextFrameTiming(mode, timeMillis));
|
|
6880
6898
|
}
|
|
6881
6899
|
}
|
|
6882
6900
|
)
|
|
@@ -6889,6 +6907,7 @@ var createArtnet = (config) => {
|
|
|
6889
6907
|
};
|
|
6890
6908
|
return {
|
|
6891
6909
|
connect,
|
|
6910
|
+
getNextFrameTiming,
|
|
6892
6911
|
sendTimecode,
|
|
6893
6912
|
on,
|
|
6894
6913
|
addListener,
|
|
@@ -6969,7 +6988,7 @@ var ArtnetInputConnection = ({
|
|
|
6969
6988
|
created.connect().then(() => {
|
|
6970
6989
|
artnet = created;
|
|
6971
6990
|
setArtnetInstance(created);
|
|
6972
|
-
log.info("ArtNet Timecode
|
|
6991
|
+
log.info("ArtNet Timecode input initialized");
|
|
6973
6992
|
setConnection({ ...connectionConfig, status: "active" });
|
|
6974
6993
|
}).catch((err) => {
|
|
6975
6994
|
const error = new Error("Failed to start ArtNet Timecode output");
|
|
@@ -14293,12 +14312,35 @@ var ArtnetOutputConnection = ({
|
|
|
14293
14312
|
}
|
|
14294
14313
|
if (timecodeState?.state === "playing" || timecodeState?.state === "lagging") {
|
|
14295
14314
|
const tcState = timecodeState;
|
|
14296
|
-
|
|
14315
|
+
let transmit = true;
|
|
14316
|
+
let timeoutId = null;
|
|
14317
|
+
const sendNextFrame = () => {
|
|
14318
|
+
if (!transmit) {
|
|
14319
|
+
return;
|
|
14320
|
+
}
|
|
14297
14321
|
const time = (Date.now() - tcState.effectiveStartTimeMillis) * tcState.speed;
|
|
14298
|
-
artnetInstance.sendTimecode(mode, time)
|
|
14299
|
-
|
|
14322
|
+
artnetInstance.sendTimecode(mode, time).then(({ nextFrameTimeMillis }) => {
|
|
14323
|
+
const delay = nextFrameTimeMillis - time + 1;
|
|
14324
|
+
timeoutId = setTimeout(sendNextFrame, delay);
|
|
14325
|
+
}).catch(() => {
|
|
14326
|
+
scheduleNextFrame();
|
|
14327
|
+
});
|
|
14328
|
+
};
|
|
14329
|
+
const scheduleNextFrame = () => {
|
|
14330
|
+
const time = (Date.now() - tcState.effectiveStartTimeMillis) * tcState.speed;
|
|
14331
|
+
const { nextFrameTimeMillis } = artnetInstance.getNextFrameTiming(
|
|
14332
|
+
mode,
|
|
14333
|
+
time
|
|
14334
|
+
);
|
|
14335
|
+
const delay = nextFrameTimeMillis - time + 1;
|
|
14336
|
+
timeoutId = setTimeout(sendNextFrame, delay);
|
|
14337
|
+
};
|
|
14338
|
+
scheduleNextFrame();
|
|
14300
14339
|
return () => {
|
|
14301
|
-
|
|
14340
|
+
transmit = false;
|
|
14341
|
+
if (timeoutId) {
|
|
14342
|
+
clearTimeout(timeoutId);
|
|
14343
|
+
}
|
|
14302
14344
|
};
|
|
14303
14345
|
} else if (timecodeState?.state === "stopped") {
|
|
14304
14346
|
artnetInstance.sendTimecode(mode, timecodeState?.positionMillis ?? 0);
|
|
@@ -14552,6 +14594,8 @@ var ClockGenerator = ({
|
|
|
14552
14594
|
timecode: {
|
|
14553
14595
|
metadata: null,
|
|
14554
14596
|
name: null,
|
|
14597
|
+
errors: [],
|
|
14598
|
+
warnings: [],
|
|
14555
14599
|
state: {
|
|
14556
14600
|
accuracyMillis: null,
|
|
14557
14601
|
smpteMode: null,
|
|
@@ -14925,7 +14969,7 @@ var createApp = (props) => {
|
|
|
14925
14969
|
};
|
|
14926
14970
|
|
|
14927
14971
|
// package.json
|
|
14928
|
-
var version = "0.1.
|
|
14972
|
+
var version = "0.1.6";
|
|
14929
14973
|
|
|
14930
14974
|
// src/index.ts
|
|
14931
14975
|
var runTimecodeToolboxServer = ({
|
package/dist/start.mjs
CHANGED
|
@@ -6849,9 +6849,27 @@ var createArtnet = (config) => {
|
|
|
6849
6849
|
})();
|
|
6850
6850
|
return connectPromise;
|
|
6851
6851
|
};
|
|
6852
|
+
const getNextFrameTiming = (mode, timeMillis) => {
|
|
6853
|
+
const timecode = getTimecodeFromMillis(mode, timeMillis);
|
|
6854
|
+
timecode.frame += 1;
|
|
6855
|
+
if (timecode.frame >= TIMECODE_FPS[mode]) {
|
|
6856
|
+
timecode.frame = 0;
|
|
6857
|
+
timecode.seconds += 1;
|
|
6858
|
+
if (timecode.seconds >= 60) {
|
|
6859
|
+
timecode.seconds = 0;
|
|
6860
|
+
timecode.minutes += 1;
|
|
6861
|
+
if (timecode.minutes >= 60) {
|
|
6862
|
+
timecode.minutes = 0;
|
|
6863
|
+
timecode.hours += 1;
|
|
6864
|
+
}
|
|
6865
|
+
}
|
|
6866
|
+
}
|
|
6867
|
+
const nextFrameTimeMillis = getTimeMillisFromTimecode(timecode);
|
|
6868
|
+
return { nextFrameTimeMillis };
|
|
6869
|
+
};
|
|
6852
6870
|
const sendTimecode = (mode, timeMillis) => {
|
|
6853
6871
|
if (timeMillis < 0) {
|
|
6854
|
-
return Promise.resolve();
|
|
6872
|
+
return Promise.resolve(getNextFrameTiming(mode, timeMillis));
|
|
6855
6873
|
}
|
|
6856
6874
|
if (!sendSocket) {
|
|
6857
6875
|
return Promise.reject(new Error("ArtNet connection has not been opened"));
|
|
@@ -6892,7 +6910,7 @@ var createArtnet = (config) => {
|
|
|
6892
6910
|
events.emit("error", error);
|
|
6893
6911
|
reject(error);
|
|
6894
6912
|
} else {
|
|
6895
|
-
resolve();
|
|
6913
|
+
resolve(getNextFrameTiming(mode, timeMillis));
|
|
6896
6914
|
}
|
|
6897
6915
|
}
|
|
6898
6916
|
)
|
|
@@ -6905,6 +6923,7 @@ var createArtnet = (config) => {
|
|
|
6905
6923
|
};
|
|
6906
6924
|
return {
|
|
6907
6925
|
connect,
|
|
6926
|
+
getNextFrameTiming,
|
|
6908
6927
|
sendTimecode,
|
|
6909
6928
|
on,
|
|
6910
6929
|
addListener,
|
|
@@ -6985,7 +7004,7 @@ var ArtnetInputConnection = ({
|
|
|
6985
7004
|
created.connect().then(() => {
|
|
6986
7005
|
artnet = created;
|
|
6987
7006
|
setArtnetInstance(created);
|
|
6988
|
-
log.info("ArtNet Timecode
|
|
7007
|
+
log.info("ArtNet Timecode input initialized");
|
|
6989
7008
|
setConnection({ ...connectionConfig, status: "active" });
|
|
6990
7009
|
}).catch((err) => {
|
|
6991
7010
|
const error = new Error("Failed to start ArtNet Timecode output");
|
|
@@ -14320,12 +14339,35 @@ var ArtnetOutputConnection = ({
|
|
|
14320
14339
|
}
|
|
14321
14340
|
if (timecodeState?.state === "playing" || timecodeState?.state === "lagging") {
|
|
14322
14341
|
const tcState = timecodeState;
|
|
14323
|
-
|
|
14342
|
+
let transmit = true;
|
|
14343
|
+
let timeoutId = null;
|
|
14344
|
+
const sendNextFrame = () => {
|
|
14345
|
+
if (!transmit) {
|
|
14346
|
+
return;
|
|
14347
|
+
}
|
|
14324
14348
|
const time = (Date.now() - tcState.effectiveStartTimeMillis) * tcState.speed;
|
|
14325
|
-
artnetInstance.sendTimecode(mode, time)
|
|
14326
|
-
|
|
14349
|
+
artnetInstance.sendTimecode(mode, time).then(({ nextFrameTimeMillis }) => {
|
|
14350
|
+
const delay = nextFrameTimeMillis - time + 1;
|
|
14351
|
+
timeoutId = setTimeout(sendNextFrame, delay);
|
|
14352
|
+
}).catch(() => {
|
|
14353
|
+
scheduleNextFrame();
|
|
14354
|
+
});
|
|
14355
|
+
};
|
|
14356
|
+
const scheduleNextFrame = () => {
|
|
14357
|
+
const time = (Date.now() - tcState.effectiveStartTimeMillis) * tcState.speed;
|
|
14358
|
+
const { nextFrameTimeMillis } = artnetInstance.getNextFrameTiming(
|
|
14359
|
+
mode,
|
|
14360
|
+
time
|
|
14361
|
+
);
|
|
14362
|
+
const delay = nextFrameTimeMillis - time + 1;
|
|
14363
|
+
timeoutId = setTimeout(sendNextFrame, delay);
|
|
14364
|
+
};
|
|
14365
|
+
scheduleNextFrame();
|
|
14327
14366
|
return () => {
|
|
14328
|
-
|
|
14367
|
+
transmit = false;
|
|
14368
|
+
if (timeoutId) {
|
|
14369
|
+
clearTimeout(timeoutId);
|
|
14370
|
+
}
|
|
14329
14371
|
};
|
|
14330
14372
|
} else if (timecodeState?.state === "stopped") {
|
|
14331
14373
|
artnetInstance.sendTimecode(mode, timecodeState?.positionMillis ?? 0);
|
|
@@ -14584,6 +14626,8 @@ var ClockGenerator = ({
|
|
|
14584
14626
|
timecode: {
|
|
14585
14627
|
metadata: null,
|
|
14586
14628
|
name: null,
|
|
14629
|
+
errors: [],
|
|
14630
|
+
warnings: [],
|
|
14587
14631
|
state: {
|
|
14588
14632
|
accuracyMillis: null,
|
|
14589
14633
|
smpteMode: null,
|
|
@@ -14957,7 +15001,7 @@ var createApp = (props) => {
|
|
|
14957
15001
|
};
|
|
14958
15002
|
|
|
14959
15003
|
// package.json
|
|
14960
|
-
var version = "0.1.
|
|
15004
|
+
var version = "0.1.6";
|
|
14961
15005
|
|
|
14962
15006
|
// src/index.ts
|
|
14963
15007
|
var runTimecodeToolboxServer = ({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcanewizards/timecode-toolbox",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -54,11 +54,11 @@
|
|
|
54
54
|
"music-metadata": "^11.0.0",
|
|
55
55
|
"osc-js": "^2.4.1",
|
|
56
56
|
"radix-ui": "^1.4.3",
|
|
57
|
+
"@arcanewizards/artnet": "^0.1.4",
|
|
57
58
|
"@arcanewizards/apis": "^0.0.1",
|
|
58
|
-
"@arcanewizards/artnet": "^0.1.3",
|
|
59
59
|
"@arcanewizards/eslint-config": "^0.0.0",
|
|
60
60
|
"@arcanewizards/net-utils": "^0.1.3",
|
|
61
|
-
"@arcanewizards/sigil": "^0.1.
|
|
61
|
+
"@arcanewizards/sigil": "^0.1.7",
|
|
62
62
|
"@arcanewizards/tcnet": "^0.1.3",
|
|
63
63
|
"@arcanewizards/typescript-config": "^0.0.0"
|
|
64
64
|
},
|
|
@@ -70,10 +70,11 @@
|
|
|
70
70
|
"react": "^19.2.0"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
|
-
"build": "pnpm check:types &&
|
|
73
|
+
"build": "pnpm check:types && pnpm clean && cp ../../LICENSE ./LICENSE && tsup && pnpm build:entrypoint && pnpm build:frontend && pnpm build:styles && check-export-map",
|
|
74
74
|
"build:entrypoint": "arcane-build-frontend --entry src/components/frontend/entrypoint.ts --outfile dist/entrypoint.js --sourcemap",
|
|
75
75
|
"build:frontend": "arcane-build-frontend --entry src/components/frontend/index.tsx --outfile dist/frontend.js --sourcemap",
|
|
76
76
|
"build:styles": "tailwindcss -i ./src/components/frontend/frontend.css -o ./dist/entrypoint.css",
|
|
77
|
+
"clean": "rm -rf dist",
|
|
77
78
|
"check:types": "tsc --noEmit",
|
|
78
79
|
"format:fix": "cd .. && pnpm format:fix",
|
|
79
80
|
"lint": "eslint . --max-warnings 0",
|