mirror of
https://github.com/Mastermindzh/tidal-hifi.git
synced 2025-08-03 19:41:28 +02:00
added settings
This commit is contained in:
@@ -3,9 +3,10 @@ const { mediaInfo } = require("./mediaInfo");
|
||||
const { store, settings } = require("./settings");
|
||||
const globalEvents = require("./../constants/globalEvents");
|
||||
const statuses = require("./../constants/statuses");
|
||||
|
||||
const expressModule = {};
|
||||
var fs = require("fs");
|
||||
const fs = require("fs");
|
||||
|
||||
let expressInstance;
|
||||
|
||||
/**
|
||||
* Function to enable tidal-hifi's express api
|
||||
@@ -24,17 +25,6 @@ expressModule.run = function(mainWindow) {
|
||||
const expressApp = express();
|
||||
expressApp.get("/", (req, res) => res.send("Hello World!"));
|
||||
expressApp.get("/current", (req, res) => res.json(mediaInfo));
|
||||
expressApp.get("/play", (req, res) => handleGlobalEvent(res, globalEvents.play));
|
||||
expressApp.get("/pause", (req, res) => handleGlobalEvent(res, globalEvents.pause));
|
||||
expressApp.get("/next", (req, res) => handleGlobalEvent(res, globalEvents.next));
|
||||
expressApp.get("/previous", (req, res) => handleGlobalEvent(res, globalEvents.previous));
|
||||
expressApp.get("/playpause", (req, res) => {
|
||||
if (mediaInfo.status == statuses.playing) {
|
||||
handleGlobalEvent(res, globalEvents.pause);
|
||||
} else {
|
||||
handleGlobalEvent(res, globalEvents.play);
|
||||
}
|
||||
});
|
||||
expressApp.get("/image", (req, res) => {
|
||||
var stream = fs.createReadStream(mediaInfo.icon);
|
||||
stream.on("open", function() {
|
||||
@@ -47,7 +37,34 @@ expressModule.run = function(mainWindow) {
|
||||
});
|
||||
});
|
||||
|
||||
expressApp.listen(store.get(settings.apiSettings.port), () => {});
|
||||
if (store.get(settings.playBackControl)) {
|
||||
expressApp.get("/play", (req, res) => handleGlobalEvent(res, globalEvents.play));
|
||||
expressApp.get("/pause", (req, res) => handleGlobalEvent(res, globalEvents.pause));
|
||||
expressApp.get("/next", (req, res) => handleGlobalEvent(res, globalEvents.next));
|
||||
expressApp.get("/previous", (req, res) => handleGlobalEvent(res, globalEvents.previous));
|
||||
expressApp.get("/playpause", (req, res) => {
|
||||
if (mediaInfo.status == statuses.playing) {
|
||||
handleGlobalEvent(res, globalEvents.pause);
|
||||
} else {
|
||||
handleGlobalEvent(res, globalEvents.play);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (store.get(settings.api)) {
|
||||
let port = store.get(settings.apiSettings.port);
|
||||
|
||||
expressInstance = expressApp.listen(port, () => {});
|
||||
expressInstance.on("error", function(e) {
|
||||
let message = e.code;
|
||||
if (e.code === "EADDRINUSE") {
|
||||
message = `Port ${port} in use.`;
|
||||
}
|
||||
const { dialog } = require("electron");
|
||||
dialog.showErrorBox("Api failed to start.", message);
|
||||
});
|
||||
} else {
|
||||
expressInstance = undefined;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = expressModule;
|
||||
|
@@ -1,13 +1,20 @@
|
||||
const Store = require("electron-store");
|
||||
const settings = require("./../constants/settings");
|
||||
const path = require("path");
|
||||
const { BrowserWindow } = require("electron");
|
||||
|
||||
let settingsWindow;
|
||||
|
||||
const store = new Store({
|
||||
defaults: {
|
||||
notifications: true,
|
||||
api: true,
|
||||
playBackControl: true,
|
||||
menuBar: false,
|
||||
apiSettings: {
|
||||
port: 47836,
|
||||
},
|
||||
|
||||
windowBounds: { width: 800, height: 600 },
|
||||
},
|
||||
});
|
||||
@@ -15,6 +22,47 @@ const store = new Store({
|
||||
const settingsModule = {
|
||||
store,
|
||||
settings,
|
||||
settingsWindow,
|
||||
};
|
||||
|
||||
settingsModule.createSettingsWindow = function() {
|
||||
settingsWindow = new BrowserWindow({
|
||||
width: 500,
|
||||
height: 600,
|
||||
show: false,
|
||||
frame: false,
|
||||
title: "Tidal-hifi - settings",
|
||||
webPreferences: {
|
||||
affinity: "window",
|
||||
preload: path.join(__dirname, "../pages/settings/preload.js"),
|
||||
plugins: true,
|
||||
nodeIntegration: true,
|
||||
},
|
||||
});
|
||||
|
||||
settingsWindow.on("close", (event) => {
|
||||
if (settingsWindow != null) {
|
||||
event.preventDefault();
|
||||
settingsWindow.hide();
|
||||
}
|
||||
});
|
||||
|
||||
settingsWindow.loadURL(`file://${__dirname}/../pages/settings/settings.html`);
|
||||
|
||||
settingsModule.settingsWindow = settingsWindow;
|
||||
};
|
||||
|
||||
settingsModule.showSettingsWindow = function() {
|
||||
// refresh data just before showing the window
|
||||
settingsWindow.webContents.send("refreshData");
|
||||
settingsWindow.show();
|
||||
};
|
||||
settingsModule.hideSettingsWindow = function() {
|
||||
settingsWindow.hide();
|
||||
};
|
||||
|
||||
settingsModule.closeSettingsWindow = function() {
|
||||
settingsWindow = null;
|
||||
};
|
||||
|
||||
module.exports = settingsModule;
|
||||
|
Reference in New Issue
Block a user