Compare commits

...

2 Commits

Author SHA1 Message Date
d161a68c95 4.3.0 2022-10-05 19:44:04 +02:00
Cukmekerb
9de8cea50e
Disable background throttling (#171)
* disable background throttling for consistent setInterval

* add disable throttle as config option
2022-10-05 19:38:01 +02:00
9 changed files with 28 additions and 3 deletions

View File

@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 4.3.0
- Added a setting to disable background throttling ([docs](https://www.electronjs.org/docs/latest/api/browser-window))
## 4.2.0
- New settings window by BlueManCZ

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "tidal-hifi",
"version": "4.2.0",
"version": "4.3.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "tidal-hifi",
"version": "4.2.0",
"version": "4.3.0",
"license": "MIT",
"dependencies": {
"@electron/remote": "^2.0.8",

View File

@ -1,6 +1,6 @@
{
"name": "tidal-hifi",
"version": "4.2.0",
"version": "4.3.0",
"description": "Tidal on Electron with widevine(hifi) support",
"main": "src/main.js",
"scripts": {

View File

@ -15,6 +15,7 @@ const settings = {
playBackControl: "playBackControl",
muteArtists: "muteArtists",
mutedArtists: "mutedArtists",
disableBackgroundThrottle: "disableBackgroundThrottle",
apiSettings: {
root: "apiSettings",
port: "apiSettings.port",

View File

@ -91,6 +91,11 @@ function createWindow(options = {}) {
// load the Tidal website
mainWindow.loadURL(tidalUrl);
if (store.get(settings.disableBackgroundThrottle)) {
// prevent setInterval lag
mainWindow.webContents.setBackgroundThrottling(false);
}
// run stuff after first load
mainWindow.webContents.once("did-finish-load", () => {});

View File

@ -10,6 +10,7 @@ let trayIcon,
port,
menuBar,
mutedArtists,
disableBackgroundThrottle,
singleInstance,
disableHardwareMediaKeys,
gpuRasterization;
@ -38,6 +39,7 @@ function refreshSettings() {
singleInstance.checked = store.get(settings.singleInstance);
disableHardwareMediaKeys.checked = store.get(settings.flags.disableHardwareMediaKeys);
gpuRasterization.checked = store.get(settings.flags.gpuRasterization);
disableBackgroundThrottle.checked = store.get("disableBackgroundThrottle");
}
/**
@ -117,6 +119,7 @@ window.addEventListener("DOMContentLoaded", () => {
enableDiscord = get("enableDiscord");
muteArtists = get("muteArtists");
mutedArtists = get("mutedArtists");
disableBackgroundThrottle = get("disableBackgroundThrottle");
singleInstance = get("singleInstance");
disableHardwareMediaKeys = get("disableHardwareMediaKeys");
gpuRasterization = get("gpuRasterization");
@ -135,6 +138,7 @@ window.addEventListener("DOMContentLoaded", () => {
addInputListener(minimizeOnClose, settings.minimizeOnClose);
addInputListener(muteArtists, settings.muteArtists);
addTextAreaListener(mutedArtists, settings.mutedArtists);
addInputListener(disableBackgroundThrottle, settings.disableBackgroundThrottle);
addInputListener(singleInstance, settings.singleInstance);
addInputListener(disableHardwareMediaKeys, settings.flags.disableHardwareMediaKeys);
addInputListener(gpuRasterization, settings.flags.gpuRasterization);

View File

@ -222,6 +222,16 @@
<span class="switch__slider"></span>
</label>
</div>
<div class="group__option">
<div class="group__description">
<h4>Disable Background Throttling</h4>
<p>Makes app more responsive while in the background, at the cost of performance.</p>
</div>
<label class="switch">
<input id="disableBackgroundThrottle" type="checkbox">
<span class="switch__slider"></span>
</label>
</div>
</div>
</section>

View File

@ -12,6 +12,7 @@ const store = new Store({
playBackControl: true,
muteArtists: false,
mutedArtists: ["TIDAL"],
disableBackgroundThrottle: true,
menuBar: true,
apiSettings: {
port: 47836,