Skip to content

Commit

Permalink
Merge pull request #287 from Mastermindzh/bugfix/mpris-not-detected
Browse files Browse the repository at this point in the history
fix: Fixed mpris not being set up correctly due to capitalization of …
  • Loading branch information
Mastermindzh authored Sep 11, 2023
2 parents 33070c1 + 9e2cbae commit 0dadce4
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 63 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).

## [5.7.1]

- Fixed mpris not being set up correctly due to capitalization of the instance name.

## [5.7.0]

- Renamed app to TIDAL Hi-Fi.
Expand Down
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "tidal-hifi",
"version": "5.7.0",
"version": "5.7.1",
"description": "Tidal on Electron with widevine(hifi) support",
"main": "ts-dist/main.js",
"scripts": {
Expand Down Expand Up @@ -72,4 +72,4 @@
"typescript": "^5.1.6"
},
"prettier": "@mastermindzh/prettier-config"
}
}
4 changes: 2 additions & 2 deletions src/features/theming/theming.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { settingsStore } from "../../scripts/settings";
import { Logger } from "../logger";

// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function addCustomCss(app: any, logger: typeof Logger) {
export function addCustomCss(app: any) {
window.addEventListener("DOMContentLoaded", () => {
const selectedTheme = settingsStore.get<string, string>(settings.theme);
if (selectedTheme !== "none") {
Expand All @@ -13,7 +13,7 @@ export function addCustomCss(app: any, logger: typeof Logger) {
const themeFile = fs.existsSync(userThemePath) ? userThemePath : resourcesThemePath;
fs.readFile(themeFile, "utf-8", (err, data) => {
if (err) {
logger.alert("An error ocurred reading the theme file.", err, alert);
Logger.alert("An error ocurred reading the theme file.", err, alert);
return;
}

Expand Down
2 changes: 1 addition & 1 deletion src/pages/settings/preload.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ let adBlock: HTMLInputElement,
discord_details_prefix: HTMLInputElement,
discord_button_text: HTMLInputElement;

addCustomCss(app, Logger.bind(this));
addCustomCss(app);

function getThemeFiles() {
const selectElement = document.getElementById("themesList") as HTMLSelectElement;
Expand Down
111 changes: 56 additions & 55 deletions src/preload.ts
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,60 @@ function updateMediaInfo(options: Options, notify: boolean) {
}
}

function addMPRIS() {
if (process.platform === "linux" && settingsStore.get(settings.mpris)) {
try {
player = Player({
name: "tidal-hifi",
identity: "tidal-hifi",
supportedUriSchemes: ["file"],
supportedMimeTypes: [
"audio/mpeg",
"audio/flac",
"audio/x-flac",
"application/ogg",
"audio/wav",
],
supportedInterfaces: ["player"],
desktopEntry: "tidal-hifi",
});
// Events
const events = {
next: "next",
previous: "previous",
pause: "pause",
playpause: "playpause",
stop: "stop",
play: "play",
loopStatus: "repeat",
shuffle: "shuffle",
seek: "seek",
} as { [key: string]: string };
Object.keys(events).forEach(function (eventName) {
player.on(eventName, function () {
const eventValue = events[eventName];
switch (events[eventValue]) {
case events.playpause:
playPause();
break;
default:
elements.click(eventValue);
}
});
});
// Override get position function
player.getPosition = function () {
return convertDuration(elements.getText("current")) * 1000 * 1000;
};
player.on("quit", function () {
app.quit();
});
} catch (exception) {
Logger.log("MPRIS player api not working", exception);
}
}
}

function updateMpris(options: Options) {
if (player) {
player.metadata = {
Expand Down Expand Up @@ -517,61 +571,8 @@ setInterval(function () {
}
}, getUpdateFrequency());

if (process.platform === "linux" && settingsStore.get(settings.mpris)) {
try {
player = Player({
name: "TIDAL Hi-Fi",
identity: "TIDAL Hi-Fi",
supportedUriSchemes: ["file"],
supportedMimeTypes: [
"audio/mpeg",
"audio/flac",
"audio/x-flac",
"application/ogg",
"audio/wav",
],
supportedInterfaces: ["player"],
desktopEntry: "tidal-hifi",
});
// Events
const events = {
next: "next",
previous: "previous",
pause: "pause",
playpause: "playpause",
stop: "stop",
play: "play",
loopStatus: "repeat",
shuffle: "shuffle",
seek: "seek",
} as { [key: string]: string };
Object.keys(events).forEach(function (eventName) {
player.on(eventName, function () {
const eventValue = events[eventName];
switch (events[eventValue]) {
case events.playpause:
playPause();
break;

default:
elements.click(eventValue);
}
});
});
// Override get position function
player.getPosition = function () {
return convertDuration(elements.getText("current")) * 1000 * 1000;
};

player.on("quit", function () {
app.quit();
});
} catch (exception) {
console.log("player api not working");
}
}

addCustomCss(app, Logger.bind(this));
addMPRIS();
addCustomCss(app);
addHotKeys();
addIPCEventListeners();
addFullScreenListeners();

0 comments on commit 0dadce4

Please sign in to comment.