mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-21 00:11:27 -07:00
19 lines
724 B
TypeScript
19 lines
724 B
TypeScript
import type { MpvSubtitleRenderMetrics } from '../../types';
|
|
|
|
export function createUpdateMpvSubtitleRenderMetricsHandler(deps: {
|
|
getCurrentMetrics: () => MpvSubtitleRenderMetrics;
|
|
setCurrentMetrics: (metrics: MpvSubtitleRenderMetrics) => void;
|
|
applyPatch: (
|
|
current: MpvSubtitleRenderMetrics,
|
|
patch: Partial<MpvSubtitleRenderMetrics>,
|
|
) => { next: MpvSubtitleRenderMetrics; changed: boolean };
|
|
broadcastMetrics: (metrics: MpvSubtitleRenderMetrics) => void;
|
|
}) {
|
|
return (patch: Partial<MpvSubtitleRenderMetrics>): void => {
|
|
const { next, changed } = deps.applyPatch(deps.getCurrentMetrics(), patch);
|
|
if (!changed) return;
|
|
deps.setCurrentMetrics(next);
|
|
deps.broadcastMetrics(next);
|
|
};
|
|
}
|