mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-28 06:22:45 -08:00
refactor(core): consolidate services and remove runtime wrappers
This commit is contained in:
64
src/core/services/runtime-options-ipc-service.ts
Normal file
64
src/core/services/runtime-options-ipc-service.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
import {
|
||||
RuntimeOptionApplyResult,
|
||||
RuntimeOptionId,
|
||||
RuntimeOptionValue,
|
||||
} from "../../types";
|
||||
|
||||
export interface RuntimeOptionsManagerLike {
|
||||
setOptionValue: (
|
||||
id: RuntimeOptionId,
|
||||
value: RuntimeOptionValue,
|
||||
) => RuntimeOptionApplyResult;
|
||||
cycleOption: (
|
||||
id: RuntimeOptionId,
|
||||
direction: 1 | -1,
|
||||
) => RuntimeOptionApplyResult;
|
||||
}
|
||||
|
||||
export function applyRuntimeOptionResultRuntimeService(
|
||||
result: RuntimeOptionApplyResult,
|
||||
showMpvOsd: (text: string) => void,
|
||||
): RuntimeOptionApplyResult {
|
||||
if (result.ok && result.osdMessage) {
|
||||
showMpvOsd(result.osdMessage);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
export function setRuntimeOptionFromIpcRuntimeService(
|
||||
manager: RuntimeOptionsManagerLike | null,
|
||||
id: RuntimeOptionId,
|
||||
value: RuntimeOptionValue,
|
||||
showMpvOsd: (text: string) => void,
|
||||
): RuntimeOptionApplyResult {
|
||||
if (!manager) {
|
||||
return { ok: false, error: "Runtime options manager unavailable" };
|
||||
}
|
||||
const result = applyRuntimeOptionResultRuntimeService(
|
||||
manager.setOptionValue(id, value),
|
||||
showMpvOsd,
|
||||
);
|
||||
if (!result.ok && result.error) {
|
||||
showMpvOsd(result.error);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
export function cycleRuntimeOptionFromIpcRuntimeService(
|
||||
manager: RuntimeOptionsManagerLike | null,
|
||||
id: RuntimeOptionId,
|
||||
direction: 1 | -1,
|
||||
showMpvOsd: (text: string) => void,
|
||||
): RuntimeOptionApplyResult {
|
||||
if (!manager) {
|
||||
return { ok: false, error: "Runtime options manager unavailable" };
|
||||
}
|
||||
const result = applyRuntimeOptionResultRuntimeService(
|
||||
manager.cycleOption(id, direction),
|
||||
showMpvOsd,
|
||||
);
|
||||
if (!result.ok && result.error) {
|
||||
showMpvOsd(result.error);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user