mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-28 06:22:45 -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);
|
appState.keybindings = resolveKeybindings(getResolvedConfig(), DEFAULT_KEYBINDINGS);
|
||||||
},
|
},
|
||||||
createMpvClient: () => {
|
createMpvClient: () => {
|
||||||
appState.mpvClient = new MpvIpcClient(
|
appState.mpvClient = createMpvClientRuntimeService();
|
||||||
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);
|
|
||||||
},
|
},
|
||||||
reloadConfig: () => {
|
reloadConfig: () => {
|
||||||
configService.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(
|
function updateMpvSubtitleRenderMetrics(
|
||||||
patch: Partial<MpvSubtitleRenderMetrics>,
|
patch: Partial<MpvSubtitleRenderMetrics>,
|
||||||
): void {
|
): void {
|
||||||
|
|||||||
Reference in New Issue
Block a user