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 @@