mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
refactor(main): extract mpv client deps factory into helper
This commit is contained in:
90
src/main.ts
90
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<MpvSubtitleRenderMetrics>,
|
||||
): void {
|
||||
|
||||
Reference in New Issue
Block a user