|
|
|
@@ -92,8 +92,6 @@ import type {
|
|
|
|
SecondarySubMode,
|
|
|
|
SecondarySubMode,
|
|
|
|
SubtitleData,
|
|
|
|
SubtitleData,
|
|
|
|
SubtitlePosition,
|
|
|
|
SubtitlePosition,
|
|
|
|
SubsyncManualRunRequest,
|
|
|
|
|
|
|
|
SubsyncResult,
|
|
|
|
|
|
|
|
WindowGeometry,
|
|
|
|
WindowGeometry,
|
|
|
|
} from './types';
|
|
|
|
} from './types';
|
|
|
|
import { AnkiIntegration } from './anki-integration';
|
|
|
|
import { AnkiIntegration } from './anki-integration';
|
|
|
|
@@ -116,36 +114,15 @@ import {
|
|
|
|
failStartupFromConfig,
|
|
|
|
failStartupFromConfig,
|
|
|
|
} from './main/config-validation';
|
|
|
|
} from './main/config-validation';
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
buildAnilistAttemptKey,
|
|
|
|
|
|
|
|
buildAnilistSetupUrl,
|
|
|
|
buildAnilistSetupUrl,
|
|
|
|
consumeAnilistSetupCallbackUrl,
|
|
|
|
consumeAnilistSetupCallbackUrl,
|
|
|
|
createAnilistStateRuntime,
|
|
|
|
createAnilistStateRuntime,
|
|
|
|
createBuildGetAnilistMediaGuessRuntimeStateMainDepsHandler,
|
|
|
|
|
|
|
|
createBuildGetCurrentAnilistMediaKeyMainDepsHandler,
|
|
|
|
|
|
|
|
createBuildMaybeProbeAnilistDurationMainDepsHandler,
|
|
|
|
|
|
|
|
createBuildMaybeRunAnilistPostWatchUpdateMainDepsHandler,
|
|
|
|
|
|
|
|
createBuildOpenAnilistSetupWindowMainDepsHandler,
|
|
|
|
createBuildOpenAnilistSetupWindowMainDepsHandler,
|
|
|
|
createBuildProcessNextAnilistRetryUpdateMainDepsHandler,
|
|
|
|
|
|
|
|
createBuildRefreshAnilistClientSecretStateMainDepsHandler,
|
|
|
|
|
|
|
|
createBuildResetAnilistMediaGuessStateMainDepsHandler,
|
|
|
|
|
|
|
|
createBuildResetAnilistMediaTrackingMainDepsHandler,
|
|
|
|
|
|
|
|
createBuildSetAnilistMediaGuessRuntimeStateMainDepsHandler,
|
|
|
|
|
|
|
|
createEnsureAnilistMediaGuessHandler,
|
|
|
|
|
|
|
|
createGetAnilistMediaGuessRuntimeStateHandler,
|
|
|
|
|
|
|
|
createGetCurrentAnilistMediaKeyHandler,
|
|
|
|
|
|
|
|
createMaybeFocusExistingAnilistSetupWindowHandler,
|
|
|
|
createMaybeFocusExistingAnilistSetupWindowHandler,
|
|
|
|
createMaybeProbeAnilistDurationHandler,
|
|
|
|
|
|
|
|
createMaybeRunAnilistPostWatchUpdateHandler,
|
|
|
|
|
|
|
|
createOpenAnilistSetupWindowHandler,
|
|
|
|
createOpenAnilistSetupWindowHandler,
|
|
|
|
createProcessNextAnilistRetryUpdateHandler,
|
|
|
|
|
|
|
|
createRefreshAnilistClientSecretStateHandler,
|
|
|
|
|
|
|
|
createResetAnilistMediaGuessStateHandler,
|
|
|
|
|
|
|
|
createResetAnilistMediaTrackingHandler,
|
|
|
|
|
|
|
|
createSetAnilistMediaGuessRuntimeStateHandler,
|
|
|
|
|
|
|
|
findAnilistSetupDeepLinkArgvUrl,
|
|
|
|
findAnilistSetupDeepLinkArgvUrl,
|
|
|
|
isAnilistTrackingEnabled,
|
|
|
|
isAnilistTrackingEnabled,
|
|
|
|
loadAnilistManualTokenEntry,
|
|
|
|
loadAnilistManualTokenEntry,
|
|
|
|
loadAnilistSetupFallback,
|
|
|
|
|
|
|
|
openAnilistSetupInBrowser,
|
|
|
|
openAnilistSetupInBrowser,
|
|
|
|
rememberAnilistAttemptedUpdateKey,
|
|
|
|
rememberAnilistAttemptedUpdateKey,
|
|
|
|
} from './main/runtime/domains/anilist';
|
|
|
|
} from './main/runtime/domains/anilist';
|
|
|
|
@@ -153,50 +130,9 @@ import {
|
|
|
|
createApplyJellyfinMpvDefaultsHandler,
|
|
|
|
createApplyJellyfinMpvDefaultsHandler,
|
|
|
|
createBuildApplyJellyfinMpvDefaultsMainDepsHandler,
|
|
|
|
createBuildApplyJellyfinMpvDefaultsMainDepsHandler,
|
|
|
|
createBuildGetDefaultSocketPathMainDepsHandler,
|
|
|
|
createBuildGetDefaultSocketPathMainDepsHandler,
|
|
|
|
createEnsureMpvConnectedForJellyfinPlaybackHandler,
|
|
|
|
|
|
|
|
createBuildEnsureMpvConnectedForJellyfinPlaybackMainDepsHandler,
|
|
|
|
|
|
|
|
createGetDefaultSocketPathHandler,
|
|
|
|
createGetDefaultSocketPathHandler,
|
|
|
|
createGetJellyfinClientInfoHandler,
|
|
|
|
|
|
|
|
createBuildGetJellyfinClientInfoMainDepsHandler,
|
|
|
|
|
|
|
|
createHandleJellyfinAuthCommands,
|
|
|
|
|
|
|
|
createBuildHandleJellyfinAuthCommandsMainDepsHandler,
|
|
|
|
|
|
|
|
createHandleJellyfinListCommands,
|
|
|
|
|
|
|
|
createBuildHandleJellyfinListCommandsMainDepsHandler,
|
|
|
|
|
|
|
|
createHandleJellyfinPlayCommand,
|
|
|
|
|
|
|
|
createBuildHandleJellyfinPlayCommandMainDepsHandler,
|
|
|
|
|
|
|
|
createHandleJellyfinRemoteAnnounceCommand,
|
|
|
|
|
|
|
|
createBuildHandleJellyfinRemoteAnnounceCommandMainDepsHandler,
|
|
|
|
|
|
|
|
createHandleJellyfinRemotePlay,
|
|
|
|
|
|
|
|
createBuildHandleJellyfinRemotePlayMainDepsHandler,
|
|
|
|
|
|
|
|
createHandleJellyfinRemotePlaystate,
|
|
|
|
|
|
|
|
createBuildHandleJellyfinRemotePlaystateMainDepsHandler,
|
|
|
|
|
|
|
|
createHandleJellyfinRemoteGeneralCommand,
|
|
|
|
|
|
|
|
createBuildHandleJellyfinRemoteGeneralCommandMainDepsHandler,
|
|
|
|
|
|
|
|
createLaunchMpvIdleForJellyfinPlaybackHandler,
|
|
|
|
|
|
|
|
createBuildLaunchMpvIdleForJellyfinPlaybackMainDepsHandler,
|
|
|
|
|
|
|
|
createPlayJellyfinItemInMpvHandler,
|
|
|
|
|
|
|
|
createBuildPlayJellyfinItemInMpvMainDepsHandler,
|
|
|
|
|
|
|
|
createPreloadJellyfinExternalSubtitlesHandler,
|
|
|
|
|
|
|
|
createBuildPreloadJellyfinExternalSubtitlesMainDepsHandler,
|
|
|
|
|
|
|
|
createReportJellyfinRemoteProgressHandler,
|
|
|
|
|
|
|
|
createBuildReportJellyfinRemoteProgressMainDepsHandler,
|
|
|
|
|
|
|
|
createReportJellyfinRemoteStoppedHandler,
|
|
|
|
|
|
|
|
createBuildReportJellyfinRemoteStoppedMainDepsHandler,
|
|
|
|
|
|
|
|
createStartJellyfinRemoteSessionHandler,
|
|
|
|
|
|
|
|
createBuildStartJellyfinRemoteSessionMainDepsHandler,
|
|
|
|
|
|
|
|
createStopJellyfinRemoteSessionHandler,
|
|
|
|
|
|
|
|
createBuildStopJellyfinRemoteSessionMainDepsHandler,
|
|
|
|
|
|
|
|
createRunJellyfinCommandHandler,
|
|
|
|
|
|
|
|
createBuildRunJellyfinCommandMainDepsHandler,
|
|
|
|
|
|
|
|
createWaitForMpvConnectedHandler,
|
|
|
|
|
|
|
|
createBuildWaitForMpvConnectedMainDepsHandler,
|
|
|
|
|
|
|
|
createOpenJellyfinSetupWindowHandler,
|
|
|
|
|
|
|
|
createBuildOpenJellyfinSetupWindowMainDepsHandler,
|
|
|
|
|
|
|
|
createGetResolvedJellyfinConfigHandler,
|
|
|
|
|
|
|
|
createBuildGetResolvedJellyfinConfigMainDepsHandler,
|
|
|
|
|
|
|
|
parseJellyfinSetupSubmissionUrl,
|
|
|
|
|
|
|
|
buildJellyfinSetupFormHtml,
|
|
|
|
buildJellyfinSetupFormHtml,
|
|
|
|
createMaybeFocusExistingJellyfinSetupWindowHandler,
|
|
|
|
parseJellyfinSetupSubmissionUrl,
|
|
|
|
} from './main/runtime/domains/jellyfin';
|
|
|
|
} from './main/runtime/domains/jellyfin';
|
|
|
|
import type { ActiveJellyfinRemotePlaybackState } from './main/runtime/domains/jellyfin';
|
|
|
|
import type { ActiveJellyfinRemotePlaybackState } from './main/runtime/domains/jellyfin';
|
|
|
|
import { getConfiguredJellyfinSession } from './main/runtime/domains/jellyfin';
|
|
|
|
import { getConfiguredJellyfinSession } from './main/runtime/domains/jellyfin';
|
|
|
|
@@ -226,7 +162,6 @@ import {
|
|
|
|
createBuildEnsureOverlayWindowLevelMainDepsHandler,
|
|
|
|
createBuildEnsureOverlayWindowLevelMainDepsHandler,
|
|
|
|
createBuildUpdateVisibleOverlayBoundsMainDepsHandler,
|
|
|
|
createBuildUpdateVisibleOverlayBoundsMainDepsHandler,
|
|
|
|
createOverlayWindowRuntimeHandlers,
|
|
|
|
createOverlayWindowRuntimeHandlers,
|
|
|
|
createOverlayRuntimeBootstrapHandlers,
|
|
|
|
|
|
|
|
createTrayRuntimeHandlers,
|
|
|
|
createTrayRuntimeHandlers,
|
|
|
|
createOverlayVisibilityRuntime,
|
|
|
|
createOverlayVisibilityRuntime,
|
|
|
|
createBroadcastRuntimeOptionsChangedHandler,
|
|
|
|
createBroadcastRuntimeOptionsChangedHandler,
|
|
|
|
@@ -268,25 +203,11 @@ import {
|
|
|
|
createConfigDerivedRuntime,
|
|
|
|
createConfigDerivedRuntime,
|
|
|
|
appendClipboardVideoToQueueRuntime,
|
|
|
|
appendClipboardVideoToQueueRuntime,
|
|
|
|
createMainSubsyncRuntime,
|
|
|
|
createMainSubsyncRuntime,
|
|
|
|
createLaunchBackgroundWarmupTaskHandler,
|
|
|
|
|
|
|
|
createStartBackgroundWarmupsHandler,
|
|
|
|
|
|
|
|
createBuildLaunchBackgroundWarmupTaskMainDepsHandler,
|
|
|
|
|
|
|
|
createBuildStartBackgroundWarmupsMainDepsHandler,
|
|
|
|
|
|
|
|
} from './main/runtime/domains/startup';
|
|
|
|
} from './main/runtime/domains/startup';
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
createBuildBindMpvMainEventHandlersMainDepsHandler,
|
|
|
|
|
|
|
|
createBuildMpvClientRuntimeServiceFactoryDepsHandler,
|
|
|
|
|
|
|
|
createMpvClientRuntimeServiceFactory,
|
|
|
|
|
|
|
|
createBindMpvMainEventHandlersHandler,
|
|
|
|
|
|
|
|
createBuildTokenizerDepsMainHandler,
|
|
|
|
|
|
|
|
createCreateMecabTokenizerAndCheckMainHandler,
|
|
|
|
|
|
|
|
createPrewarmSubtitleDictionariesMainHandler,
|
|
|
|
|
|
|
|
createUpdateMpvSubtitleRenderMetricsHandler,
|
|
|
|
|
|
|
|
createBuildUpdateMpvSubtitleRenderMetricsMainDepsHandler,
|
|
|
|
|
|
|
|
createMpvOsdRuntimeHandlers,
|
|
|
|
createMpvOsdRuntimeHandlers,
|
|
|
|
createCycleSecondarySubModeRuntimeHandler,
|
|
|
|
createCycleSecondarySubModeRuntimeHandler,
|
|
|
|
} from './main/runtime/domains/mpv';
|
|
|
|
} from './main/runtime/domains/mpv';
|
|
|
|
import type { MpvClientRuntimeServiceOptions } from './main/runtime/domains/mpv';
|
|
|
|
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
createBuildCopyCurrentSubtitleMainDepsHandler,
|
|
|
|
createBuildCopyCurrentSubtitleMainDepsHandler,
|
|
|
|
createBuildHandleMineSentenceDigitMainDepsHandler,
|
|
|
|
createBuildHandleMineSentenceDigitMainDepsHandler,
|
|
|
|
@@ -324,7 +245,6 @@ import {
|
|
|
|
MpvIpcClient,
|
|
|
|
MpvIpcClient,
|
|
|
|
SubtitleWebSocket,
|
|
|
|
SubtitleWebSocket,
|
|
|
|
Texthooker,
|
|
|
|
Texthooker,
|
|
|
|
DEFAULT_MPV_SUBTITLE_RENDER_METRICS,
|
|
|
|
|
|
|
|
applyMpvSubtitleRenderMetricsPatch,
|
|
|
|
applyMpvSubtitleRenderMetricsPatch,
|
|
|
|
authenticateWithPasswordRuntime,
|
|
|
|
authenticateWithPasswordRuntime,
|
|
|
|
broadcastRuntimeOptionsChangedRuntime,
|
|
|
|
broadcastRuntimeOptionsChangedRuntime,
|
|
|
|
@@ -424,7 +344,6 @@ import { createCharacterDictionaryRuntimeService } from './main/character-dictio
|
|
|
|
import { createCharacterDictionaryAutoSyncRuntimeService } from './main/runtime/character-dictionary-auto-sync';
|
|
|
|
import { createCharacterDictionaryAutoSyncRuntimeService } from './main/runtime/character-dictionary-auto-sync';
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
type AnilistMediaGuessRuntimeState,
|
|
|
|
type AnilistMediaGuessRuntimeState,
|
|
|
|
type AppState,
|
|
|
|
|
|
|
|
type StartupState,
|
|
|
|
type StartupState,
|
|
|
|
applyStartupState,
|
|
|
|
applyStartupState,
|
|
|
|
createAppState,
|
|
|
|
createAppState,
|
|
|
|
@@ -1455,13 +1374,8 @@ function shouldInitializeMecabForAnnotations(): boolean {
|
|
|
|
|
|
|
|
|
|
|
|
const {
|
|
|
|
const {
|
|
|
|
getResolvedJellyfinConfig,
|
|
|
|
getResolvedJellyfinConfig,
|
|
|
|
getJellyfinClientInfo,
|
|
|
|
|
|
|
|
reportJellyfinRemoteProgress,
|
|
|
|
reportJellyfinRemoteProgress,
|
|
|
|
reportJellyfinRemoteStopped,
|
|
|
|
reportJellyfinRemoteStopped,
|
|
|
|
handleJellyfinRemotePlay,
|
|
|
|
|
|
|
|
handleJellyfinRemotePlaystate,
|
|
|
|
|
|
|
|
handleJellyfinRemoteGeneralCommand,
|
|
|
|
|
|
|
|
playJellyfinItemInMpv,
|
|
|
|
|
|
|
|
startJellyfinRemoteSession,
|
|
|
|
startJellyfinRemoteSession,
|
|
|
|
stopJellyfinRemoteSession,
|
|
|
|
stopJellyfinRemoteSession,
|
|
|
|
runJellyfinCommand,
|
|
|
|
runJellyfinCommand,
|
|
|
|
@@ -2184,7 +2098,7 @@ const ensureImmersionTrackerStarted = (): void => {
|
|
|
|
createImmersionTrackerStartup();
|
|
|
|
createImmersionTrackerStartup();
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const { reloadConfig: reloadConfigHandler, appReadyRuntimeRunner } = composeAppReadyRuntime({
|
|
|
|
const { appReadyRuntimeRunner } = composeAppReadyRuntime({
|
|
|
|
reloadConfigMainDeps: {
|
|
|
|
reloadConfigMainDeps: {
|
|
|
|
reloadConfigStrict: () => configService.reloadConfigStrict(),
|
|
|
|
reloadConfigStrict: () => configService.reloadConfigStrict(),
|
|
|
|
logInfo: (message) => appLogger.logInfo(message),
|
|
|
|
logInfo: (message) => appLogger.logInfo(message),
|
|
|
|
@@ -2288,7 +2202,7 @@ const { reloadConfig: reloadConfigHandler, appReadyRuntimeRunner } = composeAppR
|
|
|
|
immersionTrackerStartupMainDeps,
|
|
|
|
immersionTrackerStartupMainDeps,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const { appLifecycleRuntimeRunner, runAndApplyStartupState } =
|
|
|
|
const { runAndApplyStartupState } =
|
|
|
|
runtimeRegistry.startup.createStartupRuntimeHandlers<
|
|
|
|
runtimeRegistry.startup.createStartupRuntimeHandlers<
|
|
|
|
CliArgs,
|
|
|
|
CliArgs,
|
|
|
|
StartupState,
|
|
|
|
StartupState,
|
|
|
|
@@ -2386,7 +2300,6 @@ function handleInitialArgs(): void {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const {
|
|
|
|
const {
|
|
|
|
bindMpvClientEventHandlers,
|
|
|
|
|
|
|
|
createMpvClientRuntimeService: createMpvClientRuntimeServiceHandler,
|
|
|
|
createMpvClientRuntimeService: createMpvClientRuntimeServiceHandler,
|
|
|
|
updateMpvSubtitleRenderMetrics: updateMpvSubtitleRenderMetricsHandler,
|
|
|
|
updateMpvSubtitleRenderMetrics: updateMpvSubtitleRenderMetricsHandler,
|
|
|
|
tokenizeSubtitle,
|
|
|
|
tokenizeSubtitle,
|
|
|
|
@@ -2758,10 +2671,6 @@ async function syncYomitanDefaultProfileAnkiServer(): Promise<void> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function createOverlayWindow(kind: 'visible' | 'modal'): BrowserWindow {
|
|
|
|
|
|
|
|
return createOverlayWindowHandler(kind);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function createModalWindow(): BrowserWindow {
|
|
|
|
function createModalWindow(): BrowserWindow {
|
|
|
|
const existingWindow = overlayManager.getModalWindow();
|
|
|
|
const existingWindow = overlayManager.getModalWindow();
|
|
|
|
if (existingWindow && !existingWindow.isDestroyed()) {
|
|
|
|
if (existingWindow && !existingWindow.isDestroyed()) {
|
|
|
|
@@ -2775,13 +2684,6 @@ function createModalWindow(): BrowserWindow {
|
|
|
|
function createMainWindow(): BrowserWindow {
|
|
|
|
function createMainWindow(): BrowserWindow {
|
|
|
|
return createMainWindowHandler();
|
|
|
|
return createMainWindowHandler();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function resolveTrayIconPath(): string | null {
|
|
|
|
|
|
|
|
return resolveTrayIconPathHandler();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function buildTrayMenu(): Menu {
|
|
|
|
|
|
|
|
return buildTrayMenuHandler();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function ensureTray(): void {
|
|
|
|
function ensureTray(): void {
|
|
|
|
ensureTrayHandler();
|
|
|
|
ensureTrayHandler();
|
|
|
|
@@ -2808,8 +2710,6 @@ const {
|
|
|
|
startPendingMultiCopy,
|
|
|
|
startPendingMultiCopy,
|
|
|
|
cancelPendingMineSentenceMultiple,
|
|
|
|
cancelPendingMineSentenceMultiple,
|
|
|
|
startPendingMineSentenceMultiple,
|
|
|
|
startPendingMineSentenceMultiple,
|
|
|
|
registerOverlayShortcuts,
|
|
|
|
|
|
|
|
unregisterOverlayShortcuts,
|
|
|
|
|
|
|
|
syncOverlayShortcuts,
|
|
|
|
syncOverlayShortcuts,
|
|
|
|
refreshOverlayShortcuts,
|
|
|
|
refreshOverlayShortcuts,
|
|
|
|
} = composeShortcutRuntimes({
|
|
|
|
} = composeShortcutRuntimes({
|
|
|
|
@@ -2848,7 +2748,7 @@ const {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const { appendToMpvLog, flushMpvLog, showMpvOsd } = createMpvOsdRuntimeHandlers({
|
|
|
|
const { flushMpvLog, showMpvOsd } = createMpvOsdRuntimeHandlers({
|
|
|
|
appendToMpvLogMainDeps: {
|
|
|
|
appendToMpvLogMainDeps: {
|
|
|
|
logPath: DEFAULT_MPV_LOG_PATH,
|
|
|
|
logPath: DEFAULT_MPV_LOG_PATH,
|
|
|
|
dirname: (targetPath) => path.dirname(targetPath),
|
|
|
|
dirname: (targetPath) => path.dirname(targetPath),
|
|
|
|
@@ -3005,7 +2905,6 @@ const {
|
|
|
|
setVisibleOverlayVisible: setVisibleOverlayVisibleHandler,
|
|
|
|
setVisibleOverlayVisible: setVisibleOverlayVisibleHandler,
|
|
|
|
toggleVisibleOverlay: toggleVisibleOverlayHandler,
|
|
|
|
toggleVisibleOverlay: toggleVisibleOverlayHandler,
|
|
|
|
setOverlayVisible: setOverlayVisibleHandler,
|
|
|
|
setOverlayVisible: setOverlayVisibleHandler,
|
|
|
|
toggleOverlay: toggleOverlayHandler,
|
|
|
|
|
|
|
|
} = createOverlayVisibilityRuntime({
|
|
|
|
} = createOverlayVisibilityRuntime({
|
|
|
|
setVisibleOverlayVisibleDeps: {
|
|
|
|
setVisibleOverlayVisibleDeps: {
|
|
|
|
setVisibleOverlayVisibleCore,
|
|
|
|
setVisibleOverlayVisibleCore,
|
|
|
|
@@ -3065,11 +2964,7 @@ const shiftSubtitleDelayToAdjacentCueHandler = createShiftSubtitleDelayToAdjacen
|
|
|
|
showMpvOsd: (text) => showMpvOsd(text),
|
|
|
|
showMpvOsd: (text) => showMpvOsd(text),
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const {
|
|
|
|
const { registerIpcRuntimeHandlers } = composeIpcRuntimeHandlers({
|
|
|
|
handleMpvCommandFromIpc: handleMpvCommandFromIpcHandler,
|
|
|
|
|
|
|
|
runSubsyncManualFromIpc: runSubsyncManualFromIpcHandler,
|
|
|
|
|
|
|
|
registerIpcRuntimeHandlers,
|
|
|
|
|
|
|
|
} = composeIpcRuntimeHandlers({
|
|
|
|
|
|
|
|
mpvCommandMainDeps: {
|
|
|
|
mpvCommandMainDeps: {
|
|
|
|
triggerSubsyncFromConfig: () => triggerSubsyncFromConfig(),
|
|
|
|
triggerSubsyncFromConfig: () => triggerSubsyncFromConfig(),
|
|
|
|
openRuntimeOptionsPalette: () => openRuntimeOptionsPalette(),
|
|
|
|
openRuntimeOptionsPalette: () => openRuntimeOptionsPalette(),
|
|
|
|
@@ -3224,11 +3119,8 @@ const createCliCommandContextHandler = createCliCommandContextFactory({
|
|
|
|
logWarn: (message: string) => logger.warn(message),
|
|
|
|
logWarn: (message: string) => logger.warn(message),
|
|
|
|
logError: (message: string, err: unknown) => logger.error(message, err),
|
|
|
|
logError: (message: string, err: unknown) => logger.error(message, err),
|
|
|
|
});
|
|
|
|
});
|
|
|
|
const {
|
|
|
|
const { createMainWindow: createMainWindowHandler, createModalWindow: createModalWindowHandler } =
|
|
|
|
createOverlayWindow: createOverlayWindowHandler,
|
|
|
|
createOverlayWindowRuntimeHandlers<BrowserWindow>({
|
|
|
|
createMainWindow: createMainWindowHandler,
|
|
|
|
|
|
|
|
createModalWindow: createModalWindowHandler,
|
|
|
|
|
|
|
|
} = createOverlayWindowRuntimeHandlers<BrowserWindow>({
|
|
|
|
|
|
|
|
createOverlayWindowDeps: {
|
|
|
|
createOverlayWindowDeps: {
|
|
|
|
createOverlayWindowCore: (kind, options) => createOverlayWindowCore(kind, options),
|
|
|
|
createOverlayWindowCore: (kind, options) => createOverlayWindowCore(kind, options),
|
|
|
|
isDev,
|
|
|
|
isDev,
|
|
|
|
@@ -3250,12 +3142,8 @@ const {
|
|
|
|
setMainWindow: (window) => overlayManager.setMainWindow(window),
|
|
|
|
setMainWindow: (window) => overlayManager.setMainWindow(window),
|
|
|
|
setModalWindow: (window) => overlayManager.setModalWindow(window),
|
|
|
|
setModalWindow: (window) => overlayManager.setModalWindow(window),
|
|
|
|
});
|
|
|
|
});
|
|
|
|
const {
|
|
|
|
const { ensureTray: ensureTrayHandler, destroyTray: destroyTrayHandler } =
|
|
|
|
resolveTrayIconPath: resolveTrayIconPathHandler,
|
|
|
|
createTrayRuntimeHandlers({
|
|
|
|
buildTrayMenu: buildTrayMenuHandler,
|
|
|
|
|
|
|
|
ensureTray: ensureTrayHandler,
|
|
|
|
|
|
|
|
destroyTray: destroyTrayHandler,
|
|
|
|
|
|
|
|
} = createTrayRuntimeHandlers({
|
|
|
|
|
|
|
|
resolveTrayIconPathDeps: {
|
|
|
|
resolveTrayIconPathDeps: {
|
|
|
|
resolveTrayIconPathRuntime,
|
|
|
|
resolveTrayIconPathRuntime,
|
|
|
|
platform: process.platform,
|
|
|
|
platform: process.platform,
|
|
|
|
@@ -3436,25 +3324,10 @@ function setOverlayVisible(visible: boolean): void {
|
|
|
|
setOverlayVisibleHandler(visible);
|
|
|
|
setOverlayVisibleHandler(visible);
|
|
|
|
syncOverlayMpvSubtitleSuppression();
|
|
|
|
syncOverlayMpvSubtitleSuppression();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function toggleOverlay(): void {
|
|
|
|
|
|
|
|
if (!overlayManager.getVisibleOverlayVisible()) {
|
|
|
|
|
|
|
|
void ensureOverlayMpvSubtitlesHidden();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
toggleOverlayHandler();
|
|
|
|
|
|
|
|
syncOverlayMpvSubtitleSuppression();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
function handleOverlayModalClosed(modal: OverlayHostedModal): void {
|
|
|
|
function handleOverlayModalClosed(modal: OverlayHostedModal): void {
|
|
|
|
handleOverlayModalClosedHandler(modal);
|
|
|
|
handleOverlayModalClosedHandler(modal);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function handleMpvCommandFromIpc(command: (string | number)[]): void {
|
|
|
|
|
|
|
|
handleMpvCommandFromIpcHandler(command);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async function runSubsyncManualFromIpc(request: SubsyncManualRunRequest): Promise<SubsyncResult> {
|
|
|
|
|
|
|
|
return runSubsyncManualFromIpcHandler(request) as Promise<SubsyncResult>;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function appendClipboardVideoToQueue(): { ok: boolean; message: string } {
|
|
|
|
function appendClipboardVideoToQueue(): { ok: boolean; message: string } {
|
|
|
|
return appendClipboardVideoToQueueHandler();
|
|
|
|
return appendClipboardVideoToQueueHandler();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|