diff --git a/src/renderer/features/player/components/player-config.tsx b/src/renderer/features/player/components/player-config.tsx
index 1d1bcc55a..7c289f45e 100644
--- a/src/renderer/features/player/components/player-config.tsx
+++ b/src/renderer/features/player/components/player-config.tsx
@@ -110,8 +110,9 @@ export const PlayerConfig = () => {
label: t('player.playbackSpeed'),
},
{
- component: !preservePitch ? : <>>,
+ component: ,
id: 'pitchControls',
+ isHidden: preservePitch,
label: '',
},
{
@@ -219,7 +220,7 @@ export const PlayerConfig = () => {
variant="subtle"
/>
- e.stopPropagation()} p="sm">
+ e.stopPropagation()} p="sm">
@@ -437,12 +438,8 @@ export const PlaybackSpeedSlider = () => {
onChange={setSpeed}
onDoubleClick={() => setSpeed(1)}
step={0.01}
- styles={{
- markLabel: {},
- root: {},
- }}
value={speed}
- w="240px"
+ w="320px"
/>
);
};
@@ -467,13 +464,13 @@ export const PitchControls = () => {
};
return (
-
+
@@ -483,7 +480,7 @@ export const PitchControls = () => {
fullWidth
fw={400}
onClick={() => adjustMusicalSpeed(-0.1)}
- size="compact-sm"
+ size="compact-xs"
>
-10ct
@@ -499,7 +496,7 @@ export const PitchControls = () => {
fullWidth
fw={400}
onClick={() => adjustMusicalSpeed(0.1)}
- size="compact-sm"
+ size="compact-xs"
>
+10ct
@@ -509,7 +506,7 @@ export const PitchControls = () => {
fullWidth
fw={400}
onClick={() => adjustMusicalSpeed(1)}
- size="compact-sm"
+ size="compact-xs"
>
+1st
diff --git a/src/renderer/features/player/components/right-controls.tsx b/src/renderer/features/player/components/right-controls.tsx
index 68155f8c3..baa285c2d 100644
--- a/src/renderer/features/player/components/right-controls.tsx
+++ b/src/renderer/features/player/components/right-controls.tsx
@@ -8,6 +8,10 @@ import { CustomPlayerbarSlider } from '/@/renderer/features/player/components/pl
import { SleepTimerButton } from '/@/renderer/features/player/components/sleep-timer-button';
import { usePlayer } from '/@/renderer/features/player/context/player-context';
import { useAudioDevices } from '/@/renderer/features/settings/components/playback/audio-settings';
+import {
+ ListConfigBooleanControl,
+ ListConfigTable,
+} from '/@/renderer/features/shared/components/list-config-menu';
import { useSetRating } from '/@/renderer/features/shared/hooks/use-set-rating';
import { useCreateFavorite } from '/@/renderer/features/shared/mutations/create-favorite-mutation';
import { useDeleteFavorite } from '/@/renderer/features/shared/mutations/delete-favorite-mutation';
@@ -48,8 +52,8 @@ import { Popover } from '/@/shared/components/popover/popover';
import { Rating } from '/@/shared/components/rating/rating';
import { SegmentedControl } from '/@/shared/components/segmented-control/segmented-control';
import { Select } from '/@/shared/components/select/select';
+import { Slider } from '/@/shared/components/slider/slider';
import { Stack } from '/@/shared/components/stack/stack';
-import { Switch } from '/@/shared/components/switch/switch';
import { Text } from '/@/shared/components/text/text';
import { useMediaQuery } from '/@/shared/hooks/use-media-query';
import { useThrottledCallback } from '/@/shared/hooks/use-throttled-callback';
@@ -107,13 +111,6 @@ const AutoDJButton = () => {
const settings = useAutoDJSettings();
const { setSettings } = useSettingsStoreActions();
- const itemLabels = useMemo(() => {
- return {
- description: t('setting.autoDJ_itemCount_description'),
- title: t('setting.autoDJ_itemCount'),
- };
- }, [t]);
-
const strategySelectData = useMemo(
() => [
{
@@ -128,22 +125,200 @@ const AutoDJButton = () => {
[t],
);
- const strategyLabels =
+ const strategyTitle =
settings.mode === AUTO_DJ_MODE.ALBUMS
- ? {
- description: '',
- title: t('setting.autoDJ_albumStrategy'),
- }
- : {
- description: '',
- title: t('setting.autoDJ_songStrategy'),
- };
+ ? t('setting.autoDJ_albumStrategy')
+ : t('setting.autoDJ_songStrategy');
const strategyValue =
settings.mode === AUTO_DJ_MODE.ALBUMS
? (settings.albumStrategy ?? AUTO_DJ_STRATEGY.SIMILAR)
: (settings.songStrategy ?? AUTO_DJ_STRATEGY.SIMILAR);
+ const enabledOptions = useMemo(
+ () => [
+ {
+ component: (
+ {
+ setSettings({
+ autoDJ: { enabled: value },
+ });
+ }}
+ value={settings.enabled}
+ />
+ ),
+ id: 'enabled',
+ label: t('setting.autoDJ_enabled'),
+ },
+ ],
+ [setSettings, settings.enabled, t],
+ );
+
+ const configOptions = useMemo(
+ () => [
+ {
+ component: (
+