From aad967d835d5c95cb16a0f03f411def5fff64309 Mon Sep 17 00:00:00 2001 From: sudacode Date: Sat, 14 Feb 2026 01:15:46 -0800 Subject: [PATCH] refactor(main): extract mpv client deps factory into helper --- src/main.ts | 90 ++++++++++++++++++++++++++--------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/src/main.ts b/src/main.ts index 2a0d1dd..7f1a91a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -666,51 +666,7 @@ const startupState = runStartupBootstrapRuntimeService({ appState.keybindings = resolveKeybindings(getResolvedConfig(), DEFAULT_KEYBINDINGS); }, createMpvClient: () => { - appState.mpvClient = new MpvIpcClient( - appState.mpvSocketPath, - { - getResolvedConfig: () => getResolvedConfig(), - autoStartOverlay: appState.autoStartOverlay, - setOverlayVisible: (visible) => setOverlayVisible(visible), - shouldBindVisibleOverlayToMpvSubVisibility: () => - shouldBindVisibleOverlayToMpvSubVisibility(), - isVisibleOverlayVisible: () => - overlayManager.getVisibleOverlayVisible(), - getReconnectTimer: () => appState.reconnectTimer, - setReconnectTimer: (timer) => { - appState.reconnectTimer = timer; - }, - getCurrentSubText: () => appState.currentSubText, - setCurrentSubText: (text) => { - appState.currentSubText = text; - }, - setCurrentSubAssText: (text) => { - appState.currentSubAssText = text; - }, - getSubtitleTimingTracker: () => appState.subtitleTimingTracker, - subtitleWsBroadcast: (text) => { - subtitleWsService.broadcast(text); - }, - getOverlayWindowsCount: () => getOverlayWindows().length, - tokenizeSubtitle: (text) => tokenizeSubtitle(text), - broadcastToOverlayWindows: (channel, ...channelArgs) => { - broadcastToOverlayWindows(channel, ...channelArgs); - }, - updateMpvSubtitleRenderMetrics: (patch) => { - updateMpvSubtitleRenderMetrics(patch); - }, - getMpvSubtitleRenderMetrics: () => appState.mpvSubtitleRenderMetrics, - getPreviousSecondarySubVisibility: () => - appState.previousSecondarySubVisibility, - setPreviousSecondarySubVisibility: (value) => { - appState.previousSecondarySubVisibility = value; - }, - showMpvOsd: (text) => { - showMpvOsd(text); - }, - }, - ); - bindMpvClientEventHandlers(appState.mpvClient); + appState.mpvClient = createMpvClientRuntimeService(); }, reloadConfig: () => { configService.reloadConfig(); @@ -900,6 +856,50 @@ function bindMpvClientEventHandlers(mpvClient: MpvIpcClient): void { }); } +function createMpvClientRuntimeService(): MpvIpcClient { + const mpvClient = new MpvIpcClient(appState.mpvSocketPath, { + getResolvedConfig: () => getResolvedConfig(), + autoStartOverlay: appState.autoStartOverlay, + setOverlayVisible: (visible) => setOverlayVisible(visible), + shouldBindVisibleOverlayToMpvSubVisibility: () => + shouldBindVisibleOverlayToMpvSubVisibility(), + isVisibleOverlayVisible: () => overlayManager.getVisibleOverlayVisible(), + getReconnectTimer: () => appState.reconnectTimer, + setReconnectTimer: (timer) => { + appState.reconnectTimer = timer; + }, + getCurrentSubText: () => appState.currentSubText, + setCurrentSubText: (text) => { + appState.currentSubText = text; + }, + setCurrentSubAssText: (text) => { + appState.currentSubAssText = text; + }, + getSubtitleTimingTracker: () => appState.subtitleTimingTracker, + subtitleWsBroadcast: (text) => { + subtitleWsService.broadcast(text); + }, + getOverlayWindowsCount: () => getOverlayWindows().length, + tokenizeSubtitle: (text) => tokenizeSubtitle(text), + broadcastToOverlayWindows: (channel, ...channelArgs) => { + broadcastToOverlayWindows(channel, ...channelArgs); + }, + updateMpvSubtitleRenderMetrics: (patch) => { + updateMpvSubtitleRenderMetrics(patch); + }, + getMpvSubtitleRenderMetrics: () => appState.mpvSubtitleRenderMetrics, + getPreviousSecondarySubVisibility: () => appState.previousSecondarySubVisibility, + setPreviousSecondarySubVisibility: (value) => { + appState.previousSecondarySubVisibility = value; + }, + showMpvOsd: (text) => { + showMpvOsd(text); + }, + }); + bindMpvClientEventHandlers(mpvClient); + return mpvClient; +} + function updateMpvSubtitleRenderMetrics( patch: Partial, ): void {