diff --git a/build/entitlements.mac.plist b/build/entitlements.mac.plist deleted file mode 100644 index fcb8d4a3..00000000 --- a/build/entitlements.mac.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - com.apple.security.cs.allow-jit - - com.apple.security.cs.allow-unsigned-executable-memory - - - com.apple.security.cs.disable-library-validation - - - \ No newline at end of file diff --git a/package.json b/package.json index 25e68733..e8dae576 100644 --- a/package.json +++ b/package.json @@ -95,8 +95,8 @@ "mirror": "https://github.com/castlabs/electron-releases/releases/download/v" }, "appId": "cider", - "afterPack": "./build/afterPack.js", - "afterSign": "./build/notarize.js", + "afterPack": "./resources/afterPack.js", + "afterSign": "./resources/notarize.js", "protocols": [ { "name": "Cider", @@ -158,8 +158,8 @@ "gatekeeperAssess": false, "icon": "./resources/icons/icon.icns", "category": "public.app-category.music", - "entitlements": "build/entitlements.mac.plist", - "entitlementsInherit": "build/entitlements.mac.plist", + "entitlements": "./resources/entitlements.mac.plist", + "entitlementsInherit": "./resources/entitlements.mac.plist", "darkModeSupport": true, "target": [ "dmg" diff --git a/build/afterPack.js b/resources/afterPack.js similarity index 100% rename from build/afterPack.js rename to resources/afterPack.js diff --git a/resources/entitlements.mac.plist b/resources/entitlements.mac.plist index 8fff4988..fcb8d4a3 100644 --- a/resources/entitlements.mac.plist +++ b/resources/entitlements.mac.plist @@ -2,11 +2,13 @@ + + com.apple.security.cs.allow-jit + com.apple.security.cs.allow-unsigned-executable-memory + com.apple.security.cs.disable-library-validation - com.apple.security.cs.allow-dyld-environment-variables - - + \ No newline at end of file diff --git a/build/notarize.js b/resources/notarize.js similarity index 100% rename from build/notarize.js rename to resources/notarize.js diff --git a/src/i18n/en_US.jsonc b/src/i18n/en_US.jsonc index 6f07ded9..cffdda4a 100644 --- a/src/i18n/en_US.jsonc +++ b/src/i18n/en_US.jsonc @@ -71,7 +71,9 @@ "term.enabled": "Enabled", "term.disabled": "Disabled", "term.connect": "Connect", - "term.connecting": "Connecting...", + "term.connecting": "Connecting", + "term.disconnect": "Disconnect", + "term.authed": "Authed", "term.confirm": "Confirm ?", "term.more": "More", "term.less": "Less", @@ -215,6 +217,9 @@ "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'", "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", // Toggle "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect + "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable LastFM Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)", // Refer to term.connect for the connect button // Settings - Experimental @@ -222,6 +227,25 @@ "settings.header.experimental.description": "Adjust the experimental settings for Cider.", "settings.option.experimental.compactUI": "Compact UI", // Toggle // Refer to term.disabled & term.enabled + + // Spatialization Menu + "spatial.spatialProperties" : "Spatial Properties", + "spatial.width" : "Width", + "spatial.height" : "Height", + "spatial.depth" : "Depth", + "spatial.roomMaterials" : "Room Materials", + "spatial.roomDimensions" : "Room Dimensions", + "spatial.roomPositions" : "Room Positions", + "spatial.setDimensions" : "Set Dimensions", + "spatial.setPositions" : "Set Positions", + "spatial.up" : "Up", + "spatial.front" : "Front", + "spatial.left" : "Left", + "spatial.right" : "Right", + "spatial.back" : "Back", + "spatial.down" : "Down", + "spatial.listener" : "Listener", + "spatial.audioSource" : "Audio Source", // Settings - Unfinished "settings.header.unfinished": "Unfinished", diff --git a/src/main/base/store.ts b/src/main/base/store.ts index 66c0a6a4..bc495822 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -60,7 +60,8 @@ export class ConfigStore { "animated_artwork_qualityLevel": 1, "bg_artwork_rotation": false, "hw_acceleration": "default", // default, webgpu, disabled - "showuserinfo": true + "showuserinfo": true, + "miniplayer_top_toggle": true }, "lyrics": { "enable_mxm": false, diff --git a/src/main/base/win.ts b/src/main/base/win.ts index 405811c4..5ce72d6d 100644 --- a/src/main/base/win.ts +++ b/src/main/base/win.ts @@ -430,6 +430,10 @@ export class Win { this.win.setMinimumSize(width,height); }) + electron.ipcMain.on("windowontop", (event, ontop) => { + this.win.setAlwaysOnTop(ontop); + }); + // Set scale electron.ipcMain.on("windowresize", (event, width, height, lock = false) => { this.win.setContentSize(width, height); diff --git a/src/renderer/index.js b/src/renderer/index.js index 92339e72..1c470073 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3296,11 +3296,11 @@ const app = new Vue({ const element = document.getElementById('lfmConnect'); // new key : f9986d12aab5a0fe66193c559435ede3 window.open('https://www.last.fm/api/auth?api_key=f9986d12aab5a0fe66193c559435ede3&cb=cider://auth/lastfm'); - element.innerText = app.getLz('term.connecting'); + element.innerText = app.getLz('term.connecting') + '...'; /* Just a timeout for the button */ setTimeout(() => { - if (element.innerText === app.getLz('term.connecting')) { + if (element.innerText === app.getLz('term.connecting') +'...') { element.innerText = app.getLz('term.connect'); console.warn('[LastFM] Attempted connection timed out.'); } @@ -3309,7 +3309,7 @@ const app = new Vue({ ipcRenderer.on('LastfmAuthenticated', function(_event, lfmAuthKey) { app.cfg.lastfm.auth_token = lfmAuthKey; app.cfg.lastfm.enabled = true; - element.innerHTML = `Disconnect\n

(Authed: ${lfmAuthKey})

`; + element.innerHTML = `${app.getLz('term.disconnect')}\n

(${app.getLz('term.authed')}: ${lfmAuthKey})

`; element.onclick = app.LastFMDeauthorize; }); }, @@ -3357,9 +3357,20 @@ const app = new Vue({ } else { ipcRenderer.send('windowmin', 844, 410) ipcRenderer.send('windowresize', this.tmpWidth, this.tmpHeight, false) + ipcRenderer.send('windowontop', false) + this.cfg.visual.miniplayer_top_toggle = true; app.appMode = 'player'; } }, + pinMiniPlayer() { + if (this.cfg.visual.miniplayer_top_toggle) { + ipcRenderer.send('windowontop', true) + this.cfg.visual.miniplayer_top_toggle = false + } else { + ipcRenderer.send('windowontop', false) + this.cfg.visual.miniplayer_top_toggle = true; + } + }, formatTimezoneOffset: (e = new Date) => { let leadingZeros = (e, s = 2) => { let n = "" + e; diff --git a/src/renderer/style.less b/src/renderer/style.less index 12f585db..8ceefcb2 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -4799,6 +4799,24 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { -webkit-app-region: no-drag; } + .player-pin { + z-index: 3; + position: absolute; + min-width: 20px; + min-height: 20px; + top: 5px; + right: 30px; + -webkit-app-region: no-drag; + } + + #mini-pin{ + display: none; + } + + .player-pin:hover #mini-pin { + display: block; + } + .playback-button--small { opacity: 0.7; } diff --git a/src/renderer/views/components/miniplayer.ejs b/src/renderer/views/components/miniplayer.ejs index bbfbf8c2..2d585401 100644 --- a/src/renderer/views/components/miniplayer.ejs +++ b/src/renderer/views/components/miniplayer.ejs @@ -1,7 +1,10 @@