mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-28 06:22:45 -08:00
Standardize core service module and export names to reduce naming ambiguity and make imports predictable across runtime, tests, scripts, and docs.
65 lines
1.6 KiB
TypeScript
65 lines
1.6 KiB
TypeScript
import {
|
|
RuntimeOptionApplyResult,
|
|
RuntimeOptionId,
|
|
RuntimeOptionValue,
|
|
} from "../../types";
|
|
|
|
export interface RuntimeOptionsManagerLike {
|
|
setOptionValue: (
|
|
id: RuntimeOptionId,
|
|
value: RuntimeOptionValue,
|
|
) => RuntimeOptionApplyResult;
|
|
cycleOption: (
|
|
id: RuntimeOptionId,
|
|
direction: 1 | -1,
|
|
) => RuntimeOptionApplyResult;
|
|
}
|
|
|
|
export function applyRuntimeOptionResultRuntime(
|
|
result: RuntimeOptionApplyResult,
|
|
showMpvOsd: (text: string) => void,
|
|
): RuntimeOptionApplyResult {
|
|
if (result.ok && result.osdMessage) {
|
|
showMpvOsd(result.osdMessage);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
export function setRuntimeOptionFromIpcRuntime(
|
|
manager: RuntimeOptionsManagerLike | null,
|
|
id: RuntimeOptionId,
|
|
value: RuntimeOptionValue,
|
|
showMpvOsd: (text: string) => void,
|
|
): RuntimeOptionApplyResult {
|
|
if (!manager) {
|
|
return { ok: false, error: "Runtime options manager unavailable" };
|
|
}
|
|
const result = applyRuntimeOptionResultRuntime(
|
|
manager.setOptionValue(id, value),
|
|
showMpvOsd,
|
|
);
|
|
if (!result.ok && result.error) {
|
|
showMpvOsd(result.error);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
export function cycleRuntimeOptionFromIpcRuntime(
|
|
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 = applyRuntimeOptionResultRuntime(
|
|
manager.cycleOption(id, direction),
|
|
showMpvOsd,
|
|
);
|
|
if (!result.ok && result.error) {
|
|
showMpvOsd(result.error);
|
|
}
|
|
return result;
|
|
}
|