From 372c4132be094b8369b3a1e377f4e8fdda947b38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:11:42 +0100 Subject: [PATCH 01/11] build(deps): bump semver from 5.7.1 to 5.7.2 (#881) Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index f8ee44eb..54d48b50 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11505,19 +11505,19 @@ semver-diff@^3.1.1: semver "^6.3.0" "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.8: - version "7.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" - integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" From d45873372b89d7123316d66af071dcb2aea8ec8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:11:50 +0100 Subject: [PATCH 02/11] build(deps): bump word-wrap from 1.2.3 to 1.2.4 (#883) Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4. - [Release notes](https://github.com/jonschlinkert/word-wrap/releases) - [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4) --- updated-dependencies: - dependency-name: word-wrap dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 54d48b50..33ed2708 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13573,9 +13573,9 @@ window-size@0.1.0: integrity sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg== word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f" + integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA== wordwrap@0.0.2: version "0.0.2" From 30ac2b37f8e459f1e5041cdf2fb91c183af59f1a Mon Sep 17 00:00:00 2001 From: Sam Wray Date: Tue, 17 Oct 2023 22:24:02 +0100 Subject: [PATCH 03/11] fix: removes webpack dev-server client error overlay (#900) --- vue.config.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vue.config.js b/vue.config.js index 3b9769a8..9f64d987 100644 --- a/vue.config.js +++ b/vue.config.js @@ -37,7 +37,10 @@ module.exports = { }, devServer: { - hot: true + hot: true, + client: { + overlay: false + } }, node: { From 63c2afdb3cda819e74aa6c233ccbe9f8922d02af Mon Sep 17 00:00:00 2001 From: Sam Wray Date: Thu, 19 Oct 2023 14:14:07 +0100 Subject: [PATCH 04/11] fix: adds willReadFrequently option to improve getImageData performance (#902) --- src/application/plugins/grab-canvas.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/application/plugins/grab-canvas.js b/src/application/plugins/grab-canvas.js index a4b9e93c..f1e7d485 100644 --- a/src/application/plugins/grab-canvas.js +++ b/src/application/plugins/grab-canvas.js @@ -13,7 +13,8 @@ const mappingContext = mappingCanvas.getContext("2d", { // (lights don't have an alpha channel, so let's drop it) alpha: false, desynchronized: true, - imageSmoothingEnabled: false + imageSmoothingEnabled: false, + willReadFrequently: true }); export default { From 226f9afe6f992077bc9b28e4e5fc93a6696191ec Mon Sep 17 00:00:00 2001 From: Sam Wray Date: Sun, 17 Mar 2024 22:04:11 +0000 Subject: [PATCH 05/11] fix(preview): removes redundant resolution display and keeps preview in view (#904) * fix: keeps preview in view * fix: removes redundant resolution display --- src/application/worker/loop.js | 9 --------- src/components/Preview.vue | 20 +++++++++++++++++--- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/application/worker/loop.js b/src/application/worker/loop.js index 2eef2faa..dd5f76a2 100644 --- a/src/application/worker/loop.js +++ b/src/application/worker/loop.js @@ -361,15 +361,6 @@ function loop(delta, features, fftOutput) { debugCanvas.width, debugCanvas.height ); - debugContext.font = "32px monospace"; - debugContext.textBaseline = "hanging"; - debugContext.fillStyle = "#fff"; - debugContext.globalCompositeOperation = "difference"; - debugContext.fillText( - `${canvasToDebug.context.canvas.width} × ${canvasToDebug.context.canvas.height}`, - 10, - 10 - ); } } diff --git a/src/components/Preview.vue b/src/components/Preview.vue index 2ad1c805..7bdbcf3c 100644 --- a/src/components/Preview.vue +++ b/src/components/Preview.vue @@ -26,7 +26,7 @@ - + @@ -41,7 +41,7 @@ export default { }, mounted() { - const { canvas, container } = this.$refs; + const { canvas } = this.$refs; const offscreen = canvas.transferControlToOffscreen(); this.$modV.$worker.postMessage( @@ -61,7 +61,7 @@ export default { this.resize(entries); }); - }).observe(container); + }).observe(canvas); this.$modV.store.commit("outputs/TOGGLE_DEBUG", true); }, @@ -107,6 +107,9 @@ export default { identifier: "outputs/resizeDebug", payload: { width } }); + + // this.$refs.canvas.style.width = `${e[0].contentRect.width}px`; + // this.$refs.canvas.style.height = `${e[0].contentRect.height}px`; } } }; @@ -114,10 +117,21 @@ export default { From 590da42c3546b2dd6020e9a23310b7c5bf0005d0 Mon Sep 17 00:00:00 2001 From: Sam Wray Date: Sun, 17 Mar 2024 22:04:35 +0000 Subject: [PATCH 06/11] fix: three.js module initialisation from preset load (#905) --- src/application/worker/store/modules/modules.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/application/worker/store/modules/modules.js b/src/application/worker/store/modules/modules.js index 34b3afba..143627d5 100644 --- a/src/application/worker/store/modules/modules.js +++ b/src/application/worker/store/modules/modules.js @@ -366,6 +366,22 @@ const actions = { } } } else { + const { renderers } = rootState; + const { type } = module.meta; + + if (renderers[type].setupModule) { + try { + const newDef = await renderers[type].setupModule(moduleDefinition); + module.data = newDef.data; + } catch (e) { + console.error( + `Error in ${type} renderer setup whilst registering "${name}". This module was ommited from registration. \n\n${e}` + ); + + return false; + } + } + await initialiseModuleProperties( props, module, From edb4d7bc21629c228745d637123cda80ec655c99 Mon Sep 17 00:00:00 2001 From: Sam Wray Date: Sat, 4 May 2024 14:10:33 +0100 Subject: [PATCH 07/11] feat(get-module-data): adds getModuleData (#906) Allows renderers to store certain data outside of presets/Vuex for performance and bugfixes --- src/application/renderers/three.js | 13 ++++-- src/application/worker/index.worker.js | 4 +- .../worker/store/modules/modules.js | 42 +++++++++---------- 3 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/application/renderers/three.js b/src/application/renderers/three.js index 54b9fdaa..68ca8562 100644 --- a/src/application/renderers/three.js +++ b/src/application/renderers/three.js @@ -21,8 +21,10 @@ store.dispatch("outputs/addAuxillaryOutput", { const renderer = new THREE.WebGLRenderer({ alpha: true, - antialias: true, - canvas: threeCanvas + antialias: false, + canvas: threeCanvas, + powerPreference: "high-performance", + premultipliedAlpha: false }); renderer.setPixelRatio(1); @@ -178,6 +180,10 @@ function resize({ width, height }) { renderer.setSize(width, height, false); } +function getModuleData(name) { + return threeModuleData[name]; +} + export default { render, updateModule, @@ -186,6 +192,7 @@ export default { setupModule, removeModule, createPresetData, - loadPresetData + loadPresetData, + getModuleData }; export { threeModuleData }; diff --git a/src/application/worker/index.worker.js b/src/application/worker/index.worker.js index 9b52ead4..7a8432f0 100644 --- a/src/application/worker/index.worker.js +++ b/src/application/worker/index.worker.js @@ -129,7 +129,8 @@ async function start() { tick, resize, createPresetData, - loadPresetData + loadPresetData, + getModuleData } = renderers(rendererName).default; store.commit("renderers/ADD_RENDERER", { @@ -142,6 +143,7 @@ async function start() { resizeModule, createPresetData, loadPresetData, + getModuleData, tick }); } diff --git a/src/application/worker/store/modules/modules.js b/src/application/worker/store/modules/modules.js index 143627d5..91bbcc81 100644 --- a/src/application/worker/store/modules/modules.js +++ b/src/application/worker/store/modules/modules.js @@ -462,8 +462,8 @@ const actions = { }, async updateProp( - { state, commit }, - { moduleId, prop, data, group, path = "", groupName, writeToSwap } + { state, commit, rootState }, + { moduleId, prop, data, path = "", writeToSwap } ) { if (!state.active[moduleId]) { console.error(`The module with the moduleId ${moduleId} doesn't exist.`); @@ -480,10 +480,6 @@ const actions = { ); const { type } = propData; - // if (group || groupName) { - // propData = state.active[name].props[groupName].props[prop]; - // } - if (data === currentValue) { return; } @@ -520,28 +516,32 @@ const actions = { type: propData.type, path }, - group, - groupName, writeToSwap }); - if (group || groupName) { - if ("set" in state.registered[moduleName].props[groupName].props[prop]) { - state.registered[moduleName].props[groupName].props[prop].set.bind( - state.registered[moduleName] - )({ - data: { ...state.active[moduleId].data }, - props: state.active[moduleId].props - }); - } - } else if ("set" in state.registered[moduleName].props[prop]) { - state.registered[moduleName].props[prop].set.bind( - state.registered[moduleName] - )({ + const registeredModule = state.registered[moduleName]; + + if ("set" in registeredModule.props[prop]) { + const { renderers } = rootState; + + const { getModuleData = () => ({}) } = renderers[ + registeredModule.meta.type + ]; + + const newData = registeredModule.props[prop].set.bind(registeredModule)({ + ...getModuleData(registeredModule.meta.name), data: { ...state.active[moduleId].data }, props: state.active[moduleId].props }); + + if (newData) { + commit("UPDATE_ACTIVE_MODULE", { + id: moduleId, + key: "data", + value: newData + }); + } } }, From 6fb56ed49784b6991be071dca8eb0d67dc6c8afb Mon Sep 17 00:00:00 2001 From: Sam Wray Date: Sat, 4 May 2024 14:10:39 +0100 Subject: [PATCH 08/11] feat(macos-document-handling): implement representedFilename API (#907) --- package.json | 6 ++-- public/index.html | 3 +- src/background/menu-bar.js | 7 ++++ src/background/window-prefs.js | 6 ++++ .../spec/general/rendersTheMainWindow.spec.js | 2 +- yarn.lock | 33 +++++++++++-------- 6 files changed, 38 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 572a921e..73582986 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "test:e2e": "npx playwright test" }, "dependencies": { - "@electron/remote": "^2.0.4", + "@electron/remote": "^2.1.2", "animated-gif-detector": "^1.2.0", "animejs": "3.2.1", "canvas-text-wrapper": "github:cyberj/canvas-text-wrapper#master", @@ -79,7 +79,7 @@ "babel-eslint": "^10.0.3", "babel-loader": "^9.1.2", "core-js": "^3.19.1", - "electron": "25.1.1", + "electron": "29.1.5", "electron-builder": "^22.9.1", "electron-notarize": "^1.2.2", "electron-playwright-helpers": "^1.5.3", @@ -109,4 +109,4 @@ "resolutions": { "electron-builder": "23.0.2" } -} \ No newline at end of file +} diff --git a/public/index.html b/public/index.html index 5c80bd04..07e138b2 100644 --- a/public/index.html +++ b/public/index.html @@ -7,7 +7,6 @@ - modV @@ -20,4 +19,4 @@ - + \ No newline at end of file diff --git a/src/background/menu-bar.js b/src/background/menu-bar.js index f4252919..8ad23793 100644 --- a/src/background/menu-bar.js +++ b/src/background/menu-bar.js @@ -30,6 +30,10 @@ async function save(filePath) { } catch (e) { console.error(e); } + + windows["mainWindow"].setRepresentedFilename(lastFileSavedPath); + windows["mainWindow"].setDocumentEdited(false); + windows["mainWindow"].setTitle(path.basename(lastFileSavedPath)); } async function writePresetToFile(filePath) { @@ -99,6 +103,9 @@ export function generateMenuTemplate() { if (!result.canceled) { const filePath = result.filePaths[0]; openFile(filePath); + windows["mainWindow"].setRepresentedFilename(filePath); + windows["mainWindow"].setDocumentEdited(false); + windows["mainWindow"].setTitle(path.basename(filePath)); } } }, diff --git a/src/background/window-prefs.js b/src/background/window-prefs.js index ed8892fb..e63a545f 100644 --- a/src/background/window-prefs.js +++ b/src/background/window-prefs.js @@ -1,4 +1,5 @@ import { app, dialog, ipcMain, screen, BrowserWindow } from "electron"; +import os from "node:os"; import store from "../media-manager/store"; import { autoUpdater } from "electron-updater"; @@ -81,6 +82,10 @@ const windowPrefs = { ipcMain.handle("is-modv-ready", () => modVReady); + window.setRepresentedFilename(os.homedir()); + window.setDocumentEdited(true); + window.setTitle("Untitled"); + // Configure child windows to open without a menubar (windows/linux) window.webContents.on( "new-window", @@ -189,6 +194,7 @@ const windowPrefs = { ipcMain.removeAllListeners("save-file"); ipcMain.removeAllListeners("current-project"); ipcMain.removeAllListeners("input-update"); + ipcMain.removeHandler("is-modv-ready"); } }, diff --git a/tests/e2e/spec/general/rendersTheMainWindow.spec.js b/tests/e2e/spec/general/rendersTheMainWindow.spec.js index 86548526..0a74cdab 100644 --- a/tests/e2e/spec/general/rendersTheMainWindow.spec.js +++ b/tests/e2e/spec/general/rendersTheMainWindow.spec.js @@ -5,5 +5,5 @@ test("renders the main window", async () => { const { page } = modVApp; const title = await page.title(); - expect(title).toBe("modV"); + expect(title).toBe("Untitled"); }); diff --git a/yarn.lock b/yarn.lock index 33ed2708..ec4700d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1077,10 +1077,10 @@ optionalDependencies: global-agent "^3.0.0" -"@electron/remote@^2.0.4": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.10.tgz#133e2f607b1861ac249bd78b5abd1e961feed713" - integrity sha512-3SFKKaQXcyWgwmibud+UqJl/XlHOgLcI3fwtB9pNelPSJAcTxocOJrF6FaxBIQaj1+R05Di6xuAswZpXAW7xhA== +"@electron/remote@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.1.2.tgz#52a97c8faa5b769155b649ef262f2f8c851776e6" + integrity sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA== "@electron/universal@1.0.5": version "1.0.5" @@ -1535,10 +1535,12 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.0.tgz#719498898d5defab83c3560f45d8498f58d11938" integrity sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ== -"@types/node@^18.11.18": - version "18.16.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.18.tgz#85da09bafb66d4bc14f7c899185336d0c1736390" - integrity sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw== +"@types/node@^20.9.0": + version "20.11.30" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.30.tgz#9c33467fc23167a347e73834f788f4b9f399d66f" + integrity sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw== + dependencies: + undici-types "~5.26.4" "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -5141,13 +5143,13 @@ electron-updater@^4.3.1: lodash.isequal "^4.5.0" semver "^7.3.5" -electron@25.1.1: - version "25.1.1" - resolved "https://registry.yarnpkg.com/electron/-/electron-25.1.1.tgz#b7aaf0d66a56fbbbad987c13cee108642f63bd50" - integrity sha512-WvFUfVsJn6YiP35UxdibYVjU2LceastyMm4SVp2bmb4XvKEvItAIiwxgm7tPC5Syl1243aRCvQLqr84sZ71pyQ== +electron@29.1.5: + version "29.1.5" + resolved "https://registry.yarnpkg.com/electron/-/electron-29.1.5.tgz#b745b4d201c1ac9f84d6aa034126288dde34d5a1" + integrity sha512-1uWGRw/ffA62lcrklxGUgVxVtOHojsg/nwsYr+/F9cVjipZJn8iPv/ABGIIexhmUqWcho8BqfTJ4osCBa29gBg== dependencies: "@electron/get" "^2.0.0" - "@types/node" "^18.11.18" + "@types/node" "^20.9.0" extract-zip "^2.0.1" elegant-spinner@^1.0.1: @@ -12777,6 +12779,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" From cc5ee63e2c7cf4537fad8b9daa62ecff9ad18a0c Mon Sep 17 00:00:00 2001 From: Sam Wray Date: Sat, 4 May 2024 14:10:46 +0100 Subject: [PATCH 09/11] feat(haptics): adds haptics for magic trackpads (#908) --- package.json | 1 + patches/hapticjs+1.0.7.patch | 32 ++++++++++++++++++++++++ src/components/Controls/RangeControl.vue | 12 ++++++++- yarn.lock | 5 ++++ 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 patches/hapticjs+1.0.7.patch diff --git a/package.json b/package.json index 73582986..ce9a87e1 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "fuse.js": "^6.2.1", "golden-layout": "^1.5.9", "grandiose": "github:vcync/grandiose#feat/workerCompatibility", + "hapticjs": "^1.0.7", "interactive-shader-format": "github:vcync/interactive-shader-format-js#78b62b6f4c787b870852df4c8e7b1131e331d8a6", "lodash.get": "^4.4.2", "lodash.set": "^4.3.2", diff --git a/patches/hapticjs+1.0.7.patch b/patches/hapticjs+1.0.7.patch new file mode 100644 index 00000000..ecf7592b --- /dev/null +++ b/patches/hapticjs+1.0.7.patch @@ -0,0 +1,32 @@ +diff --git a/node_modules/hapticjs/.DS_Store b/node_modules/hapticjs/.DS_Store +new file mode 100644 +index 0000000..487d1a1 +Binary files /dev/null and b/node_modules/hapticjs/.DS_Store differ +diff --git a/node_modules/hapticjs/app.js b/node_modules/hapticjs/app.js +index 0821d19..1fa9828 100644 +--- a/node_modules/hapticjs/app.js ++++ b/node_modules/hapticjs/app.js +@@ -1,10 +1,10 @@ ++var os = require("os") + var exec = require('child_process').exec + var path = require('path') + var cmd = path.join(__dirname, 'hapticJS', 'DerivedData', 'hapticJS', 'Build', 'Products', 'Release', 'hapticJS') + + exports.vibrate = function() { + if (os.platform().includes('darwin')) { +- console.log('vibrating now...') + exec(cmd, function(error, stdout, stderr) { + // command output is in stdout + }) +diff --git a/node_modules/hapticjs/hapticJS/.DS_Store b/node_modules/hapticjs/hapticJS/.DS_Store +new file mode 100644 +index 0000000..57ae955 +Binary files /dev/null and b/node_modules/hapticjs/hapticJS/.DS_Store differ +diff --git a/node_modules/hapticjs/hapticJS/DerivedData/.DS_Store b/node_modules/hapticjs/hapticJS/DerivedData/.DS_Store +new file mode 100644 +index 0000000..487d1a1 +Binary files /dev/null and b/node_modules/hapticjs/hapticJS/DerivedData/.DS_Store differ +diff --git a/node_modules/hapticjs/hapticJS/DerivedData/hapticJS/.DS_Store b/node_modules/hapticjs/hapticJS/DerivedData/hapticJS/.DS_Store +new file mode 100644 +index 0000000..9d704a3 +Binary files /dev/null and b/node_modules/hapticjs/hapticJS/DerivedData/hapticJS/.DS_Store differ diff --git a/src/components/Controls/RangeControl.vue b/src/components/Controls/RangeControl.vue index 2e1584af..0f83832e 100644 --- a/src/components/Controls/RangeControl.vue +++ b/src/components/Controls/RangeControl.vue @@ -16,6 +16,8 @@