From 71768e7b88f515bb5d4f80cb44d53b762518cc5a Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Thu, 12 May 2022 19:23:42 -0700 Subject: [PATCH 01/19] optimizations added show loved tracks inline set several less operations to async changed default transition to fade in, moved slide in to sweetener changed drawer transition to transform optimizations for disabled gpu --- src/i18n/en_US.json | 6 +- src/i18n/source/en_US.json | 2 + src/main/base/store.ts | 3 +- src/renderer/main/vueapp.js | 8 +- src/renderer/style.less | 81 ++++++++++++------- src/renderer/themes/sweetener.less | 36 +++++++++ .../views/components/mediaitem-list-item.ejs | 2 +- src/renderer/views/pages/settings.ejs | 24 +++++- 8 files changed, 123 insertions(+), 39 deletions(-) diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index 4bd74b1c..a4383eca 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -343,6 +343,8 @@ "settings.notyf.general.keybindings.update.success": "Keybind updated successfully", "settings.prompt.general.keybindings.update.success": "Keybind updated successfully. Press OK to relaunch Cider", "settings.option.general.keybindings.open": "Open", + "settings.option.general.themeUpdateNotification": "Automatically check for theme updates", + "settings.option.general.showLovedTracksInline": "Show loved tracks inline", "settings.description.search": "Search", "settings.description.albums": "Library Albums", "settings.description.artists": "Library Artists", @@ -414,9 +416,7 @@ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Soundstage", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separation", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Minimal", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.", "settings.header.visual": "Visual", "settings.header.visual.description": "Adjust the visual settings for Cider.", diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json index 907eefb2..a4383eca 100644 --- a/src/i18n/source/en_US.json +++ b/src/i18n/source/en_US.json @@ -343,6 +343,8 @@ "settings.notyf.general.keybindings.update.success": "Keybind updated successfully", "settings.prompt.general.keybindings.update.success": "Keybind updated successfully. Press OK to relaunch Cider", "settings.option.general.keybindings.open": "Open", + "settings.option.general.themeUpdateNotification": "Automatically check for theme updates", + "settings.option.general.showLovedTracksInline": "Show loved tracks inline", "settings.description.search": "Search", "settings.description.albums": "Library Albums", "settings.description.artists": "Library Artists", diff --git a/src/main/base/store.ts b/src/main/base/store.ts index d55f7778..c088ed2e 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -108,7 +108,8 @@ export class Store { process.platform == "darwin" ? "Option" : "Shift", "I" ] - } + }, + "showLovedTracksInline": true }, "home": { "followedArtists": [], diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index 6764e0de..7aeb367d 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -784,8 +784,8 @@ const app = new Vue({ MusicKit.getInstance().videoContainerElement = document.getElementById("apple-music-video-player") - ipcRenderer.on('theme-update', (event, arg) => { - less.refresh(true, true, true) + ipcRenderer.on('theme-update', async (event, arg) => { + await less.refresh(true, true, true) self.setTheme(self.cfg.visual.theme, true) if (app.cfg.visual.styles.length != 0) { app.reloadStyles() @@ -991,7 +991,7 @@ const app = new Vue({ document.querySelectorAll(`[id*='less']`).forEach(el => { el.remove() }); - less.refresh() + await less.refresh() } }, async reloadStyles() { @@ -1019,7 +1019,7 @@ const app = new Vue({ } }) less.registerStylesheetsImmediately() - less.refresh(true, true, true) + await less.refresh(true, true, true) this.$forceUpdate() return }, diff --git a/src/renderer/style.less b/src/renderer/style.less index 8e404005..58517522 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -417,7 +417,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track { position: absolute; right: 16px; top: 3%; - background: #1c1c1c8f; + background: var(--color2); border-radius: 12px; z-index: 10; height: 94%; @@ -875,17 +875,17 @@ input[type=range].web-slider::-webkit-slider-runnable-track { border-radius: 10px; left: 0px; background: var(--keyColor); - animation: expandIndicator .2s cubic-bezier(0.25, 1, 0.5, 1); + // animation: expandIndicator .2s cubic-bezier(0.25, 1, 0.5, 1); - @keyframes expandIndicator { - 0% { - transform: scaleY(0); - } + // @keyframes expandIndicator { + // 0% { + // transform: scaleY(0); + // } - 100% { - transform: scaleY(1); - } - } + // 100% { + // transform: scaleY(1); + // } + // } } .app-chrome { @@ -2885,38 +2885,40 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .wpfade_transform-enter-active, .wpfade_transform-leave-active { - --transitionTime: 0.2s; - transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); - will-change: opacity, transform; + --transitionTime: 0.2s; + transition : opacity var(--transitionTime) var(--appleEase); + will-change : opacity, transform; } .wpfade_transform-enter { - opacity: 0; - transform: translateX(50%) translate3d(0,0,0); - will-change: opacity, transform; + opacity : 0; + transform : unset; + will-change: opacity; } + .wpfade_transform-leave-to { - opacity: 0; - transform: translateX(-50%) translate3d(0,0,0); - will-change: opacity, transform; + opacity : 0; + transform : unset; + will-change: opacity; } .wpfade_transform_backwards-enter-active, .wpfade_transform_backwards-leave-active { - --transitionTime: 0.2s; - transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); + --transitionTime: 0.2s; + transition : opacity var(--transitionTime) var(--appleEase); } .wpfade_transform_backwards-enter { - opacity: 0; - transform: translateX(-50%) translate3d(0,0,0); - will-change: opacity, transform; + opacity : 0; + transform : unset; + will-change: opacity; } + .wpfade_transform_backwards-leave-to { - opacity: 0; - transform: translateX(50%) translate3d(0,0,0); - will-change: opacity, transform; + opacity : 0; + transform : unset; + will-change: opacity; } .fabfade-enter-active, @@ -2944,12 +2946,12 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .drawertransition-enter-active, .drawertransition-leave-active { - transition: right .25s var(--appleEase); + transition: transform .25s var(--appleEase); } .drawertransition-enter, .drawertransition-leave-to { - right: -300px; + transform: translateX(400px); } @media (prefers-color-scheme: dark) { @@ -3111,6 +3113,27 @@ body.no-gpu { } } + .floating-header { + background: black; + backdrop-filter: unset; + } + + .artworkContainer { + animation: unset!important; + opacity: 0.7; + } + + .info-rect-card { + &:before { + display: none; + } + } + + .menu-panel .menu-panel-body { + background: rgb(30 30 30); + backdrop-filter: unset; + } + #navigation-bar { backdrop-filter: unset; mix-blend-mode: unset; diff --git a/src/renderer/themes/sweetener.less b/src/renderer/themes/sweetener.less index 79b76138..28c65ddd 100644 --- a/src/renderer/themes/sweetener.less +++ b/src/renderer/themes/sweetener.less @@ -86,4 +86,40 @@ &:active { } +} + +.wpfade_transform-enter-active, +.wpfade_transform-leave-active { + --transitionTime: 0.2s; + transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); + will-change: opacity, transform; +} + +.wpfade_transform-enter { + opacity: 0; + transform: translateX(50%) translate3d(0,0,0); + will-change: opacity, transform; +} +.wpfade_transform-leave-to { + opacity: 0; + transform: translateX(-50%) translate3d(0,0,0); + will-change: opacity, transform; +} + + +.wpfade_transform_backwards-enter-active, +.wpfade_transform_backwards-leave-active { + --transitionTime: 0.2s; + transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); +} + +.wpfade_transform_backwards-enter { + opacity: 0; + transform: translateX(-50%) translate3d(0,0,0); + will-change: opacity, transform; +} +.wpfade_transform_backwards-leave-to { + opacity: 0; + transform: translateX(50%) translate3d(0,0,0); + will-change: opacity, transform; } \ No newline at end of file diff --git a/src/renderer/views/components/mediaitem-list-item.ejs b/src/renderer/views/components/mediaitem-list-item.ejs index 6ea0d3bc..30b8b864 100644 --- a/src/renderer/views/components/mediaitem-list-item.ejs +++ b/src/renderer/views/components/mediaitem-list-item.ejs @@ -128,7 +128,7 @@ } else { this.itemId = this.item.id; } - if (this.item.attributes.playParams) { + if (this.item.attributes.playParams && this.$root.cfg.general.showLovedTracksInline) { this.getHeartStatus(); } let duration = this.item.attributes.durationInMillis ?? 0 diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index b3cdc082..45e61e30 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -195,7 +195,29 @@ {{$root.getLz('settings.option.general.keybindings.open')}} - + +
+
+ {{$root.getLz('settings.option.general.themeUpdateNotification')}} +
+
+ +
+
+
+
+ {{$root.getLz('settings.option.general.showLovedTracksInline')}} +
+
+ +
+
From 6abef85d80d4e73929cc6672a851311c5c5835f2 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Thu, 12 May 2022 19:39:28 -0700 Subject: [PATCH 02/19] readded audio strings --- src/i18n/en_US.json | 3 +++ src/i18n/source/en_US.json | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index a4383eca..74fb4782 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -416,6 +416,9 @@ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Soundstage", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separation", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Minimal", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.", "settings.header.visual": "Visual", diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json index a4383eca..74fb4782 100644 --- a/src/i18n/source/en_US.json +++ b/src/i18n/source/en_US.json @@ -416,6 +416,9 @@ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Soundstage", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separation", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Minimal", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.", "settings.header.visual": "Visual", From a45ddf5698e6dda6f49a157754625bc1e46e4b19 Mon Sep 17 00:00:00 2001 From: maikirakiwi Date: Thu, 12 May 2022 20:09:43 -0700 Subject: [PATCH 03/19] Don't code while ur sleepy --- src/renderer/views/pages/audiolabs.ejs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/renderer/views/pages/audiolabs.ejs b/src/renderer/views/pages/audiolabs.ejs index 9b8b7efa..5b1a6494 100644 --- a/src/renderer/views/pages/audiolabs.ejs +++ b/src/renderer/views/pages/audiolabs.ejs @@ -66,7 +66,7 @@ @@ -91,7 +91,7 @@ @@ -117,7 +117,7 @@ From dcf01298088e2b9ced9236f620d273fafa470f8e Mon Sep 17 00:00:00 2001 From: maikirakiwi Date: Thu, 12 May 2022 20:13:29 -0700 Subject: [PATCH 04/19] don't fix code while ur drunk --- src/renderer/views/pages/audiolabs.ejs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/renderer/views/pages/audiolabs.ejs b/src/renderer/views/pages/audiolabs.ejs index 5b1a6494..a3b506d8 100644 --- a/src/renderer/views/pages/audiolabs.ejs +++ b/src/renderer/views/pages/audiolabs.ejs @@ -187,15 +187,21 @@ }, methods: { getProfileLz(type, name) { - if (name === "Cryptofyre" || name === "Maikiwi") { - return name; + switch (name) { + case "CRYPTO": + return "Cryptofyre"; + break; + + case "Maikiwi": + return "Maikiwi"; + break; } switch (type) { case "CAR": - return this.$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.' + name); + return this.$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.' + name.toLowerCase()); break; case "CTS": - return this.$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.' + name); + return this.$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.' + name.toLowerCase()); break; default: return name; From ad9e3a28d6d9934a72194092d2e4dbe03b45bf6c Mon Sep 17 00:00:00 2001 From: maikirakiwi Date: Thu, 12 May 2022 20:14:58 -0700 Subject: [PATCH 05/19] test your commits before pushing --- src/renderer/views/pages/audiolabs.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/views/pages/audiolabs.ejs b/src/renderer/views/pages/audiolabs.ejs index a3b506d8..950229e3 100644 --- a/src/renderer/views/pages/audiolabs.ejs +++ b/src/renderer/views/pages/audiolabs.ejs @@ -198,7 +198,7 @@ } switch (type) { case "CAR": - return this.$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.' + name.toLowerCase()); + return this.$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.' + name); break; case "CTS": return this.$root.getLz('settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.' + name.toLowerCase()); From ba2c6caf17f1d33b4194655ae0077a1bbdc9bd12 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Thu, 12 May 2022 23:06:53 -0700 Subject: [PATCH 06/19] impulses can now be external --- src/main/base/browserwindow.ts | 10 ++++++++++ src/renderer/audio/audio.js | 22 +++++++++++----------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 9b5cced1..2a417032 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -458,6 +458,16 @@ export class BrowserWindow { } }) + app.get("/cideraudio/impulses/:file", (req, res) => { + const impulseExternals = join(utils.getPath("externals"), "/impulses/") + const impulseFile = join(impulseExternals, req.params.file) + if(existsSync(impulseFile)) { + res.sendFile(impulseFile) + }else{ + res.sendFile(join(utils.getPath('srcPath'), "./renderer/audio/impulses/" + req.params.file)) + } + }) + app.get("/api/playback/:action", (req, res) => { const action = req.params.action; switch (action) { diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index af80afa1..70e3002a 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -94,7 +94,7 @@ const CiderAudio = { spatialProfiles: [ { "id": "72_420maikiwi", - "file": './audio/impulses/CiderSpatial_v72.420_Maikiwi.wav', + "file": './cideraudio/impulses/CiderSpatial_v72.420_Maikiwi.wav', "name": "Maikiwi", "description": "", "gainComp": "1.3381352151540196", @@ -102,7 +102,7 @@ const CiderAudio = { }, { "id": "71_420maikiwi", - "file": './audio/impulses/CiderSpatial_v71.420_Maikiwi.wav', + "file": './cideraudio/impulses/CiderSpatial_v71.420_Maikiwi.wav', "name": "Soundstage", "description": "", "gainComp": "1.3963683610559376", @@ -110,7 +110,7 @@ const CiderAudio = { }, { "id": "70_422maikiwi", - "file": './audio/impulses/CiderSpatial_v70.422_Maikiwi.wav', + "file": './cideraudio/impulses/CiderSpatial_v70.422_Maikiwi.wav', "name": "Separation", "description": "", "gainComp": "1.30767553892022", @@ -118,7 +118,7 @@ const CiderAudio = { }, { "id": "standard", - "file": './audio/impulses/CiderSpatial_v69_Standard.wav', + "file": './cideraudio/impulses/CiderSpatial_v69_Standard.wav', "name": "Minimal", "description": "", "gainComp": "1.2647363474711515", @@ -128,25 +128,25 @@ const CiderAudio = { atmosphereRealizerProfiles: [ { "id": "NATURAL_STANDARD", - "file": './audio/impulses/AtmosphereRealizer_NaturalStandard.wav', + "file": './cideraudio/impulses/AtmosphereRealizer_NaturalStandard.wav', "name": "Natural (Standard)", "description": "", }, { "id": "NATURAL_HIGH", - "file": './audio/impulses/AtmosphereRealizer_NaturalHigh.wav', + "file": './cideraudio/impulses/AtmosphereRealizer_NaturalHigh.wav', "name": "Natural (High)", "description": "", }, { "id": "NATURAL_PLUS", - "file": './audio/impulses/AtmosphereRealizer_Natural+.wav', + "file": './cideraudio/impulses/AtmosphereRealizer_Natural+.wav', "name": "Natural (Plus)", "description": "", }, { "id": "CRYPTO", - "file": './audio/impulses/AtmosphereRealizer_Cryptofyre.wav', + "file": './cideraudio/impulses/AtmosphereRealizer_Cryptofyre.wav', "name": "Cryptofyre", "description": "", } @@ -504,7 +504,7 @@ const CiderAudio = { case "MAIKIWI": CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; - fetch('./audio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => { + fetch('./cideraudio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => { let bufferedImpulse = await impulseData.arrayBuffer(); CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); }); @@ -528,7 +528,7 @@ const CiderAudio = { case "NATURAL": CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; - fetch('./audio/impulses/CAP_Natural.wav').then(async (impulseData) => { + fetch('./cideraudio/impulses/CAP_Natural.wav').then(async (impulseData) => { let bufferedImpulse = await impulseData.arrayBuffer(); CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); }); @@ -580,7 +580,7 @@ const CiderAudio = { default: CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; - fetch('./audio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => { + fetch('./cideraudio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => { let bufferedImpulse = await impulseData.arrayBuffer(); CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); }); From e9d20250fef129995e544fe8fbdb095a45a7eed2 Mon Sep 17 00:00:00 2001 From: Erwan Date: Fri, 13 May 2022 16:48:02 +0200 Subject: [PATCH 07/19] =?UTF-8?q?feat:=20=F0=9F=8C=90=20Update=20French=20?= =?UTF-8?q?Language?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/i18n/fr_FR.json | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/i18n/fr_FR.json b/src/i18n/fr_FR.json index ebaab7ef..a6921072 100644 --- a/src/i18n/fr_FR.json +++ b/src/i18n/fr_FR.json @@ -46,7 +46,7 @@ "term.newPlaylist": "Nouvelle Playlist", "term.newPlaylistFolder": "Nouveau dossier de playlist", "term.createNewPlaylist": "Créer une nouvelle playlist", - "term.createNewPlaylistFolder": "Create New Playlist Folder", + "term.createNewPlaylistFolder": "Créer un nouveau dossier de playlist", "term.deletePlaylist": "Êtes-vous sûr de vouloir supprimer cette playlist ?", "term.navigateBack": "Naviguer en arrière", "term.navigateForward": "Naviguer en avant", @@ -247,7 +247,7 @@ "action.unlove": "Ne plus aimer", "action.dislike": "Je n'aime pas", "action.undoDislike": "Je n'aime plus", - "action.showWebRemoteQR": "Afficher le QR Code de la télécommande à distance", + "action.showWebRemoteQR": "Télécommande Web", "action.playTracksNext": "Jouer ${app.selectedMediaItems.length} musiques après", "action.playTracksLater": "Jouer ${app.selectedMediaItems.length} musiques plus tard", "action.removeTracks": "Retirer ${self.selectedItems.length} musiques de la file d'attente", @@ -343,6 +343,8 @@ "settings.notyf.general.keybindings.update.success": "Le raccourci clavier a bien été mis à jour", "settings.prompt.general.keybindings.update.success": "Le raccourci clavier a bien été mis à jour. Appuyez sur OK pour relancer Cider", "settings.option.general.keybindings.open": "Ouvrir", + "settings.option.general.themeUpdateNotification": "Vérifier automatiquement les mises à jour des thèmes", + "settings.option.general.showLovedTracksInline": "Afficher les pistes aimées en ligne", "settings.description.search": "Rechercher", "settings.description.albums": "Albums de la bibliothèque", "settings.description.artists": "Artites de la bibliothèque", @@ -414,8 +416,15 @@ "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Profil de spatialisation Cider", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Modifie le profil de réglage de la spatialisation.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Scène sonore", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Séparation", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Minimale", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "La spatialisation n'est pas compatible avec le moteur de traitement psycho-acoustique. Veuillez le désactiver pour continuer.", + "settings.option.audio.dbspl.display": "Affichage dB SPL", + "settings.option.audio.dbspl.description": "(Utilisateurs avancés uniquement) Affichez dB SPL au lieu de dBFS sur le curseur de volume.", + "settings.option.audio.dbfs.calibration": "Calibration 0 dBFS", + "settings.option.audio.dbfs.description": "Entrez le SPL de crête pondéré en Z lorsque Cider est à 0 dBFS.", "settings.header.visual": "Visuel", "settings.header.visual.description": "Ajuster les paramètres visuels de Cider.", "settings.option.visual.windowStyle": "Style de la fenêtre", @@ -469,7 +478,7 @@ "settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles", "settings.header.window": "Fenêtre", "settings.header.window.description": "Ajustez les paramètres de la fenêtre pour Cider.", - "settings.option.window.openOnStartup": "Ouvrir Cider au démarrage.", + "settings.option.window.openOnStartup": "Ouvrir Cider au démarrage", "settings.option.window.openOnStartup.hidden": "Ouvrir caché", "settings.option.window.useNativeTitleBar": "Utiliser la barre de titre native", "settings.option.window.windowControlStyle": "Style de contrôle de la fenêtre", @@ -489,7 +498,7 @@ "settings.option.connectivity.discordRPC.clientName": "Nom du client", "settings.option.connectivity.discordRPC.clearOnPause": "Désactiver le Discord Rich Presence quand la musique est en pause", "settings.option.connectivity.discordRPC.hideButtons": "Cacher les bouttons sur le Discord Rich Presence", - "settings.option.connectivity.discordRPC.hideTimestamp": "Cacher le timestamp sur le Discord Rich Presence", + "settings.option.connectivity.discordRPC.hideTimestamp": "Cacher le temps restant sur le Discord Rich Presence", "settings.option.connectivity.discordRPC.detailsFormat": "Format des détails", "settings.option.connectivity.discordRPC.stateFormat": "Format de l'état", "settings.option.connectivity.lastfmScrobble": "Scrobble LastFM", @@ -509,14 +518,14 @@ "settings.option.experimental.compactUI": "Interface utilisateur compacte", "settings.option.window.close_button_hide": "Le bouton de fermeture doit masquer l'application", "settings.option.experimental.inline_playlists": "Playlists et albums en ligne", - "settings.option.advanced.playlistTrackMapping": "Playlist Track Mapping", - "settings.option.advanced.playlistTrackMapping.description": "Permet une analyse approfondie des listes de lecture pour déterminer quels titres se trouvent dans quelles listes de lecture. Les temps de construction du cache des listes de lecture peuvent augmenter de manière significative.", + "settings.option.advanced.playlistTrackMapping": "Cartographie des pistes de la playlists", + "settings.option.advanced.playlistTrackMapping.description": "Permet une analyse approfondie des playlists pour déterminer quels titres se trouvent dans quelles playlists. Les temps de construction du cache des playlists peuvent augmenter de manière significative.", "settings.option.visual.transparent": "Cadre transparent", - "settings.option.visual.transparent.description": "(requière le support de thème, nécessite un relancement)", + "settings.option.visual.transparent.description": "Requière le support de thème, nécessite un relancement", "settings.header.advanced": "Avancé", "settings.header.connect": "Synchroniser", "settings.option.connect.link_account": "Activer la synchronisation avec Cider Connect", - "settings.option.connect.link_account.description": "Lier votre compte Discord avec Cider Connect vous permet de stocker les données de l'utilisateur, y compris les paramètres, les EQ, et éventuellement plus une fois terminé. (Travail en cours)", + "settings.option.connect.link_account.description": "Lier votre compte Discord avec Cider Connect vous permet de stocker les données de l'utilisateur, y compris les paramètres, les EQ, et éventuellement plus une fois terminé. (en cours de développement)", "spatial.notTurnedOn": "La spatialisation audio est désactivée. Pour l'utiliser, vous devez d'abord l'activer.", "spatial.spatialProperties": "Propriétés spatiales", "spatial.width": "Largeur", From 46560cdeae6042d3efe6883f9ded4f4b7b8827c3 Mon Sep 17 00:00:00 2001 From: Amaru8 <52407090+Amaru8@users.noreply.github.com> Date: Fri, 13 May 2022 20:32:27 +0200 Subject: [PATCH 08/19] Create Themes and Plugins folder if it doesnt't exist Fixes #742 --- src/main/base/browserwindow.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 2a417032..5ff86506 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -948,13 +948,23 @@ export class BrowserWindow { switch (path) { default: case "plugins": - shell.openPath(utils.getPath("plugins")); + if (existsSync(utils.getPath("plugins"))) { + shell.openPath(utils.getPath("plugins")); + } else { + mkdirSync(utils.getPath("plugins")); + shell.openPath(utils.getPath("plugins")); + } break; case "userdata": shell.openPath(app.getPath("userData")); break; case "themes": - shell.openPath(utils.getPath("themes")); + if (existsSync(utils.getPath("themes"))) { + shell.openPath(utils.getPath("themes")); + } else { + mkdirSync(utils.getPath("themes")); + shell.openPath(utils.getPath("themes")); + } break; } }); From 8fec73bee49d382f42b4862abfb414a98eedbf51 Mon Sep 17 00:00:00 2001 From: licia-tia Date: Sat, 14 May 2022 04:29:26 +0800 Subject: [PATCH 09/19] Make cast device list scrollable --- src/renderer/views/components/castmenu.ejs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/views/components/castmenu.ejs b/src/renderer/views/components/castmenu.ejs index 1c3116b8..b846ae56 100644 --- a/src/renderer/views/components/castmenu.ejs +++ b/src/renderer/views/components/castmenu.ejs @@ -7,7 +7,7 @@