From d028af5ff0b73e2efee94ecef8d48eda12abc987 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Sun, 13 Nov 2022 02:08:12 -0800 Subject: [PATCH] Add mpv path option --- .../settings/components/playback-tab.tsx | 41 +++++++++++++++++-- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/src/renderer/features/settings/components/playback-tab.tsx b/src/renderer/features/settings/components/playback-tab.tsx index 38d1e0e14..0a74215e9 100644 --- a/src/renderer/features/settings/components/playback-tab.tsx +++ b/src/renderer/features/settings/components/playback-tab.tsx @@ -2,6 +2,7 @@ import { useEffect, useState } from 'react'; import { Divider, Group, SelectItem, Stack } from '@mantine/core'; import isElectron from 'is-electron'; import { + FileInput, NumberInput, SegmentedControl, Select, @@ -12,6 +13,10 @@ import { } from '@/renderer/components'; import { mpvPlayer } from '@/renderer/features/player/utils/mpv-player'; import { SettingsOptions } from '@/renderer/features/settings/components/settings-option'; +import { + getLocalSetting, + setLocalSetting, +} from '@/renderer/features/settings/utils/local-settings'; import { usePlayerStore } from '@/renderer/store'; import { useSettingsStore } from '@/renderer/store/settings.store'; import { @@ -40,6 +45,21 @@ export const PlaybackTab = () => { const update = useSettingsStore((state) => state.setSettings); const status = usePlayerStore((state) => state.current.status); const [audioDevices, setAudioDevices] = useState([]); + const [mpvPath, setMpvPath] = useState(''); + + const handleSetMpvPath = (e: File) => { + setLocalSetting('mpv_path', e.path); + }; + + useEffect(() => { + const getMpvPath = async () => { + if (!isElectron()) return setMpvPath(''); + const mpvPath = await getLocalSetting('mpv_path'); + return setMpvPath(mpvPath); + }; + + getMpvPath(); + }, []); useEffect(() => { const getAudioDevices = () => { @@ -84,6 +104,19 @@ export const PlaybackTab = () => { status === PlayerStatus.PLAYING ? 'Player must be paused' : undefined, title: 'Audio player', }, + { + control: ( + + ), + description: 'The location of your MPV executable', + isHidden: settings.type !== PlaybackType.LOCAL, + note: 'Restart required', + title: 'MPV executable path', + }, { control: (