Files
SubMiner/src/main/runtime/jellyfin-remote-connection-main-deps.ts

46 lines
1.7 KiB
TypeScript

import type {
EnsureMpvConnectedDeps,
LaunchMpvForJellyfinDeps,
WaitForMpvConnectedDeps,
} from './jellyfin-remote-connection';
export function createBuildWaitForMpvConnectedMainDepsHandler(deps: WaitForMpvConnectedDeps) {
return (): WaitForMpvConnectedDeps => ({
getMpvClient: () => deps.getMpvClient(),
now: () => deps.now(),
sleep: (delayMs: number) => deps.sleep(delayMs),
});
}
export function createBuildLaunchMpvIdleForJellyfinPlaybackMainDepsHandler(
deps: LaunchMpvForJellyfinDeps,
) {
return (): LaunchMpvForJellyfinDeps => ({
getSocketPath: () => deps.getSocketPath(),
platform: deps.platform,
execPath: deps.execPath,
defaultMpvLogPath: deps.defaultMpvLogPath,
defaultMpvArgs: deps.defaultMpvArgs,
removeSocketPath: (socketPath: string) => deps.removeSocketPath(socketPath),
spawnMpv: (args: string[]) => deps.spawnMpv(args),
logWarn: (message: string, error: unknown) => deps.logWarn(message, error),
logInfo: (message: string) => deps.logInfo(message),
});
}
export function createBuildEnsureMpvConnectedForJellyfinPlaybackMainDepsHandler(
deps: EnsureMpvConnectedDeps,
) {
return (): EnsureMpvConnectedDeps => ({
getMpvClient: () => deps.getMpvClient(),
setMpvClient: (client) => deps.setMpvClient(client),
createMpvClient: () => deps.createMpvClient(),
waitForMpvConnected: (timeoutMs: number) => deps.waitForMpvConnected(timeoutMs),
launchMpvIdleForJellyfinPlayback: () => deps.launchMpvIdleForJellyfinPlayback(),
getAutoLaunchInFlight: () => deps.getAutoLaunchInFlight(),
setAutoLaunchInFlight: (promise) => deps.setAutoLaunchInFlight(promise),
connectTimeoutMs: deps.connectTimeoutMs,
autoLaunchTimeoutMs: deps.autoLaunchTimeoutMs,
});
}