tidal-hifi/src/main.js

71 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-10-22 21:25:57 +02:00
const { app, BrowserWindow, globalShortcut } = require("electron");
2019-09-16 23:13:12 +02:00
const path = require("path");
const tidalUrl = "https://listen.tidal.com";
2019-10-22 21:25:57 +02:00
const mediaKeys = require("./scripts/media-keys");
2019-09-16 23:13:12 +02:00
let mainWindow;
/**
* Enable live reload in development builds
*/
if (!app.isPackaged) {
require("electron-reload")(`${__dirname}`, {
electron: require(`${__dirname}/../node_modules/electron`),
});
}
2019-09-16 23:13:12 +02:00
function createWindow(options = {}) {
// Create the browser window.
mainWindow = new BrowserWindow({
x: options.x,
y: options.y,
width: 1024,
height: 800,
2019-10-22 21:25:57 +02:00
icon: "./../build/icon.png",
tray: true,
2019-09-16 23:13:12 +02:00
backgroundColor: options.backgroundColor,
webPreferences: {
affinity: "window",
preload: path.join(__dirname, "preload.js"),
plugins: true,
},
});
mainWindow.setMenuBarVisibility(false);
2019-09-16 23:13:12 +02:00
// load the Tidal website
mainWindow.loadURL(tidalUrl);
// run stuff after first load
mainWindow.webContents.once("did-finish-load", () => {});
// Emitted when the window is closed.
mainWindow.on("closed", function() {
mainWindow = null;
});
}
function addGlobalShortcuts() {
2019-10-22 21:25:57 +02:00
Object.values(mediaKeys).forEach((key) => {
globalShortcut.register(key, () => {
mainWindow.webContents.send("globalKey", key);
});
});
2019-09-16 23:13:12 +02:00
}
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on("ready", () => {
// window with white backround
createWindow();
addGlobalShortcuts();
});
app.on("activate", function() {
// On OS X it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (mainWindow === null) {
createWindow();
}
});