From 5e283ef5396927f9f748d44cb5a1e4d78663e8ba Mon Sep 17 00:00:00 2001 From: Phan An Date: Sun, 6 Nov 2022 18:09:06 +0100 Subject: [PATCH] feat: visualizer overhaul (#1575) --- package.json | 2 + .../app-footer/FooterExtraControls.spec.ts | 2 +- .../layout/app-footer/FooterExtraControls.vue | 11 +- .../FooterExtraControls.spec.ts.snap | 2 +- .../layout/main-wrapper/MainContent.spec.ts | 19 +-- .../layout/main-wrapper/MainContent.vue | 9 +- .../components/screens/VisualizerScreen.vue | 148 ++++++++++++++++++ .../assets/js/components/ui/Visualizer.vue | 63 -------- resources/assets/js/config/events.ts | 1 - resources/assets/js/config/index.ts | 1 + resources/assets/js/config/routes.ts | 4 + resources/assets/js/config/visualizers.ts | 38 +++++ resources/assets/js/services/audioService.ts | 6 +- resources/assets/js/stores/index.ts | 1 + resources/assets/js/stores/preferenceStore.ts | 4 +- resources/assets/js/stores/visualizerStore.ts | 12 ++ resources/assets/js/types.d.ts | 10 ++ .../visualizer.ts => visualizers/default.ts} | 11 +- .../assets/js/visualizers/fluid-cube/index.ts | 116 ++++++++++++++ .../js/visualizers/fluid-cube/shaders.ts | 110 +++++++++++++ .../assets/js/visualizers/plane-mesh/index.ts | 121 ++++++++++++++ .../plane-mesh/planeMeshParameters.ts | 92 +++++++++++ .../js/visualizers/plane-mesh/shaders.ts | 36 +++++ .../assets/js/visualizers/waveform/index.ts | 55 +++++++ .../js/visualizers/waveform/lib/SceneInit.ts | 83 ++++++++++ .../js/visualizers/waveform/lib/shaders.ts | 30 ++++ yarn.lock | 17 ++ 27 files changed, 902 insertions(+), 102 deletions(-) create mode 100644 resources/assets/js/components/screens/VisualizerScreen.vue delete mode 100644 resources/assets/js/components/ui/Visualizer.vue create mode 100644 resources/assets/js/config/visualizers.ts create mode 100644 resources/assets/js/stores/visualizerStore.ts rename resources/assets/js/{utils/visualizer.ts => visualizers/default.ts} (94%) create mode 100644 resources/assets/js/visualizers/fluid-cube/index.ts create mode 100644 resources/assets/js/visualizers/fluid-cube/shaders.ts create mode 100644 resources/assets/js/visualizers/plane-mesh/index.ts create mode 100644 resources/assets/js/visualizers/plane-mesh/planeMeshParameters.ts create mode 100644 resources/assets/js/visualizers/plane-mesh/shaders.ts create mode 100644 resources/assets/js/visualizers/waveform/index.ts create mode 100644 resources/assets/js/visualizers/waveform/lib/SceneInit.ts create mode 100644 resources/assets/js/visualizers/waveform/lib/shaders.ts diff --git a/package.json b/package.json index 45d95d58..8b2d4f55 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "select": "^1.1.2", "sketch-js": "^1.1.3", "slugify": "^1.0.2", + "three": "^0.146.0", "vue": "^3.2.32", "vue-global-events": "^2.1.1", "youtube-player": "^3.0.4" @@ -49,6 +50,7 @@ "@types/lodash": "^4.14.150", "@types/nprogress": "^0.2.0", "@types/pusher-js": "^4.2.2", + "@types/three": "^0.144.0", "@types/youtube-player": "^5.5.2", "@typescript-eslint/eslint-plugin": "^5.22.0", "@typescript-eslint/parser": "^4.11.1", diff --git a/resources/assets/js/components/layout/app-footer/FooterExtraControls.spec.ts b/resources/assets/js/components/layout/app-footer/FooterExtraControls.spec.ts index 8ee21b40..5e8e1142 100644 --- a/resources/assets/js/components/layout/app-footer/FooterExtraControls.spec.ts +++ b/resources/assets/js/components/layout/app-footer/FooterExtraControls.spec.ts @@ -14,7 +14,7 @@ new class extends UnitTestCase { Volume: this.stub('Volume') }, provide: { - [CurrentSongKey]: factory('song', { + [CurrentSongKey]: factory('song', { playback_state: 'Playing' }) } diff --git a/resources/assets/js/components/layout/app-footer/FooterExtraControls.vue b/resources/assets/js/components/layout/app-footer/FooterExtraControls.vue index d9ef751d..29a0c8d9 100644 --- a/resources/assets/js/components/layout/app-footer/FooterExtraControls.vue +++ b/resources/assets/js/components/layout/app-footer/FooterExtraControls.vue @@ -1,17 +1,15 @@