Set MPV path from local settings file

This commit is contained in:
jeffvli
2022-10-30 01:37:05 -07:00
parent e4f797debc
commit 699ed268e6
6 changed files with 26 additions and 18 deletions
+1
View File
@@ -1 +1,2 @@
import './player'; import './player';
import './settings';
+3 -11
View File
@@ -2,25 +2,17 @@ import { ipcMain } from 'electron';
import MpvAPI from 'node-mpv'; import MpvAPI from 'node-mpv';
import { PlayerData } from '../../../../renderer/store'; import { PlayerData } from '../../../../renderer/store';
import { getMainWindow } from '../../../main'; import { getMainWindow } from '../../../main';
import { store } from '../settings/index';
declare module 'node-mpv'; declare module 'node-mpv';
// const BINARY_PATH = getMainWindow() const BINARY_PATH = store.get('mpv_path') as string;
// ?.webContents.executeJavaScript('localStorage.getItem("mpv_binary");', true)
// .then((result) => {
// return result;
// })
// .catch((err) => {
// console.log(err);
// });
const mpv = new MpvAPI( const mpv = new MpvAPI(
{ {
audio_only: true, audio_only: true,
auto_restart: true, auto_restart: true,
binary: 'C:/ProgramData/chocolatey/lib/mpv.install/tools/mpv.exe', binary: BINARY_PATH || '',
// binary: BINARY_PATH,
time_update: 1, time_update: 1,
}, },
['--gapless-audio=yes', '--prefetch-playlist'] ['--gapless-audio=yes', '--prefetch-playlist']
+7 -5
View File
@@ -1,13 +1,15 @@
import { ipcMain } from 'electron'; import { ipcMain } from 'electron';
import settings from 'electron-settings'; import Store from 'electron-store';
ipcMain.on('settings-get', async (__event, data: { property: string }) => { export const store = new Store();
return settings.getSync(data.property);
ipcMain.handle('settings-get', (_event, data: { property: string }) => {
return store.get(`${data.property}`);
}); });
ipcMain.on( ipcMain.on(
'settings-set', 'settings-set',
async (__event, data: { property: string; value: any }) => { (__event, data: { property: string; value: any }) => {
return settings.setSync(data.property, data.value); store.set(`${data.property}`, data.value);
} }
); );
+5
View File
@@ -100,6 +100,11 @@ const createWindow = async () => {
mainWindow?.close(); mainWindow?.close();
}); });
ipcMain.on('app-restart', () => {
app.relaunch();
app.exit(0);
});
mainWindow.loadURL(resolveHtmlPath('index.html')); mainWindow.loadURL(resolveHtmlPath('index.html'));
mainWindow.on('ready-to-show', () => { mainWindow.on('ready-to-show', () => {
+4 -1
View File
@@ -3,6 +3,9 @@ import { PlayerData } from '../renderer/store';
contextBridge.exposeInMainWorld('electron', { contextBridge.exposeInMainWorld('electron', {
ipcRenderer: { ipcRenderer: {
APP_RESTART() {
ipcRenderer.send('app-restart');
},
PLAYER_AUTO_NEXT(data: PlayerData) { PLAYER_AUTO_NEXT(data: PlayerData) {
ipcRenderer.send('player-auto-next', data); ipcRenderer.send('player-auto-next', data);
}, },
@@ -62,7 +65,7 @@ contextBridge.exposeInMainWorld('electron', {
ipcRenderer.on('renderer-player-stop', cb); ipcRenderer.on('renderer-player-stop', cb);
}, },
SETTINGS_GET(data: { property: string }) { SETTINGS_GET(data: { property: string }) {
ipcRenderer.send('settings-get', data); return ipcRenderer.invoke('settings-get', data);
}, },
SETTINGS_SET(data: { property: string; value: any }) { SETTINGS_SET(data: { property: string; value: any }) {
ipcRenderer.send('settings-set', data); ipcRenderer.send('settings-set', data);
+6 -1
View File
@@ -1,6 +1,6 @@
import isElectron from 'is-electron'; import isElectron from 'is-electron';
export * from './hooks/useDefaultSettings'; export * from './hooks/use-default-settings';
const ipc = isElectron() ? window.electron.ipcRenderer : null; const ipc = isElectron() ? window.electron.ipcRenderer : null;
@@ -10,7 +10,12 @@ const set = (property: string, value: any) => {
ipc?.SETTINGS_SET({ property, value }); ipc?.SETTINGS_SET({ property, value });
}; };
const restart = () => {
ipc?.APP_RESTART();
};
export const settings = { export const settings = {
get, get,
restart,
set, set,
}; };