diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json
index b4721db4..41a4528d 100644
--- a/src/i18n/locales/en.json
+++ b/src/i18n/locales/en.json
@@ -428,8 +428,6 @@
"customFontPath_description": "sets the path to the custom font to use for the application",
"disableAutomaticUpdates": "disable automatic updates",
"disableLibraryUpdateOnStartup": "disable checking for new versions on startup",
- "disableMpv": "Disable MPV",
- "disableMpv_description": "If checked, prevent MPV from starting and bypass MPV requirement.",
"discordApplicationId": "{{discord}} application id",
"discordApplicationId_description": "the application id for {{discord}} rich presence (defaults to {{defaultId}})",
"discordIdleStatus": "show rich presence idle status",
diff --git a/src/main/preload.ts b/src/main/preload.ts
index 963a7927..d2183785 100644
--- a/src/main/preload.ts
+++ b/src/main/preload.ts
@@ -9,8 +9,6 @@ import { mpvPlayer, mpvPlayerListener } from './preload/mpv-player';
import { remote } from './preload/remote';
import { utils } from './preload/utils';
-const disableMpv = localSettings.get('disable_mpv');
-
contextBridge.exposeInMainWorld('electron', {
browser,
discordRpc,
@@ -18,8 +16,8 @@ contextBridge.exposeInMainWorld('electron', {
localSettings,
lyrics,
mpris,
- mpvPlayer: disableMpv ? undefined : mpvPlayer,
- mpvPlayerListener: disableMpv ? undefined : mpvPlayerListener,
+ mpvPlayer,
+ mpvPlayerListener,
remote,
utils,
});
diff --git a/src/renderer/features/action-required/routes/action-required-route.tsx b/src/renderer/features/action-required/routes/action-required-route.tsx
index 16b64714..458540ed 100644
--- a/src/renderer/features/action-required/routes/action-required-route.tsx
+++ b/src/renderer/features/action-required/routes/action-required-route.tsx
@@ -1,44 +1,22 @@
-import { useMemo } from 'react';
import { Center, Group, Stack } from '@mantine/core';
-import isElectron from 'is-electron';
import { useTranslation } from 'react-i18next';
import { RiCheckFill } from 'react-icons/ri';
import { Link, Navigate } from 'react-router-dom';
import { Button, PageHeader, Text } from '/@/renderer/components';
import { ActionRequiredContainer } from '/@/renderer/features/action-required/components/action-required-container';
-import { MpvRequired } from '/@/renderer/features/action-required/components/mpv-required';
import { ServerCredentialRequired } from '/@/renderer/features/action-required/components/server-credential-required';
import { ServerRequired } from '/@/renderer/features/action-required/components/server-required';
import { AnimatedPage } from '/@/renderer/features/shared';
import { AppRoute } from '/@/renderer/router/routes';
import { useCurrentServer } from '/@/renderer/store';
-const localSettings = isElectron() ? window.electron.localSettings : null;
-
const ActionRequiredRoute = () => {
const { t } = useTranslation();
const currentServer = useCurrentServer();
const isServerRequired = !currentServer;
const isCredentialRequired = false;
- const isMpvRequired = useMemo(() => {
- if (!localSettings) return false;
-
- const mpvPath = localSettings.get('mpv_path');
- if (mpvPath) {
- return false;
- }
-
- const mpvDisabled = localSettings.get('disable_mpv');
- return !mpvDisabled;
- }, []);
-
const checks = [
- {
- component: ,
- title: t('error.mpvRequired', { postProcess: 'sentenceCase' }),
- valid: !isMpvRequired,
- },
{
component: ,
title: t('error.credentialsRequired', { postProcess: 'sentenceCase' }),
diff --git a/src/renderer/features/settings/components/playback/audio-settings.tsx b/src/renderer/features/settings/components/playback/audio-settings.tsx
index 032fb385..28575279 100644
--- a/src/renderer/features/settings/components/playback/audio-settings.tsx
+++ b/src/renderer/features/settings/components/playback/audio-settings.tsx
@@ -1,7 +1,7 @@
import { useEffect, useState } from 'react';
import { SelectItem } from '@mantine/core';
import isElectron from 'is-electron';
-import { Checkbox, Select, Slider, toast } from '/@/renderer/components';
+import { Select, Slider, toast } from '/@/renderer/components';
import {
SettingsSection,
SettingOption,
@@ -12,15 +12,12 @@ import { PlaybackType, PlayerStatus, PlaybackStyle, CrossfadeStyle } from '/@/re
import { useTranslation } from 'react-i18next';
const mpvPlayer = isElectron() ? window.electron.mpvPlayer : null;
-const localSettings = isElectron() ? window.electron.localSettings : null;
const getAudioDevice = async () => {
const devices = await navigator.mediaDevices.enumerateDevices();
return (devices || []).filter((dev: MediaDeviceInfo) => dev.kind === 'audiooutput');
};
-const initialDisable = (localSettings?.get('disable_mpv') as boolean | undefined) ?? false;
-
export const AudioSettings = () => {
const { t } = useTranslation();
const settings = usePlaybackSettings();
@@ -28,18 +25,6 @@ export const AudioSettings = () => {
const status = useCurrentStatus();
const [audioDevices, setAudioDevices] = useState([]);
- const [disableMpv, setDisableMpv] = useState(initialDisable);
-
- const handleSetDisableMpv = (disabled: boolean) => {
- setDisableMpv(disabled);
- localSettings?.set('disable_mpv', disabled);
-
- if (disabled) {
- setSettings({
- playback: { ...settings, type: disabled ? PlaybackType.WEB : PlaybackType.LOCAL },
- });
- }
- };
useEffect(() => {
const getAudioDevices = () => {
@@ -60,18 +45,6 @@ export const AudioSettings = () => {
}, [settings.type, t]);
const audioOptions: SettingOption[] = [
- {
- control: (
- handleSetDisableMpv(e.currentTarget.checked)}
- />
- ),
- description: t('setting.disableMpv', { context: 'description' }),
- isHidden: !isElectron(),
- note: t('common.restartRequired', { postProcess: 'sentenceCase' }),
- title: t('setting.disableMpv'),
- },
{
control: (