Add sync clock entity for synchronized animation timing
Introduces Synchronization Clocks — shared, controllable time bases that CSS sources can optionally reference for synchronized animation. Backend: - New SyncClock dataclass, JSON store, Pydantic schemas, REST API - Runtime clock with thread-safe pause/resume/reset and speed control - Ref-counted runtime pool with eager creation for API control - clock_id field on all ColorStripSource types - Stream integration: clock time/speed replaces source-local values - Paused clock skips rendering (saves CPU + stops frame pushes) - Included in backup/restore via STORE_MAP Frontend: - Sync Clocks tab in Streams section with cards and controls - Clock dropdown in CSS editor (hidden speed slider when clock set) - Clock crosslink badge on CSS source cards (replaces speed badge) - Targets tab uses DataCache for picture/audio sources and sync clocks Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -307,6 +307,7 @@
|
||||
"common.delete": "删除",
|
||||
"common.edit": "编辑",
|
||||
"common.clone": "克隆",
|
||||
"common.none": "无",
|
||||
"section.filter.placeholder": "筛选...",
|
||||
"section.filter.reset": "清除筛选",
|
||||
"section.expand_all": "全部展开",
|
||||
@@ -950,6 +951,7 @@
|
||||
"audio_template.error.required": "请填写所有必填项",
|
||||
"audio_template.error.delete": "删除音频模板失败",
|
||||
"streams.group.value": "值源",
|
||||
"streams.group.sync": "同步时钟",
|
||||
"value_source.group.title": "值源",
|
||||
"value_source.add": "添加值源",
|
||||
"value_source.edit": "编辑值源",
|
||||
@@ -1137,5 +1139,32 @@
|
||||
"theme.switched.dark": "已切换到深色主题",
|
||||
"theme.switched.light": "已切换到浅色主题",
|
||||
"accent.color.updated": "强调色已更新",
|
||||
"search.footer": "↑↓ 导航 · Enter 选择 · Esc 关闭"
|
||||
"search.footer": "↑↓ 导航 · Enter 选择 · Esc 关闭",
|
||||
"sync_clock.group.title": "同步时钟",
|
||||
"sync_clock.add": "添加同步时钟",
|
||||
"sync_clock.edit": "编辑同步时钟",
|
||||
"sync_clock.name": "名称:",
|
||||
"sync_clock.name.placeholder": "主动画时钟",
|
||||
"sync_clock.name.hint": "此同步时钟的描述性名称",
|
||||
"sync_clock.speed": "速度:",
|
||||
"sync_clock.speed.hint": "所有关联源共享的速度倍率。1.0 = 正常速度。",
|
||||
"sync_clock.description": "描述(可选):",
|
||||
"sync_clock.description.placeholder": "可选描述",
|
||||
"sync_clock.description.hint": "关于此时钟用途的可选备注",
|
||||
"sync_clock.status.running": "运行中",
|
||||
"sync_clock.status.paused": "已暂停",
|
||||
"sync_clock.action.pause": "暂停",
|
||||
"sync_clock.action.resume": "恢复",
|
||||
"sync_clock.action.reset": "重置",
|
||||
"sync_clock.error.name_required": "时钟名称为必填项",
|
||||
"sync_clock.error.load": "加载同步时钟失败",
|
||||
"sync_clock.created": "同步时钟已创建",
|
||||
"sync_clock.updated": "同步时钟已更新",
|
||||
"sync_clock.deleted": "同步时钟已删除",
|
||||
"sync_clock.paused": "时钟已暂停",
|
||||
"sync_clock.resumed": "时钟已恢复",
|
||||
"sync_clock.reset_done": "时钟已重置为零",
|
||||
"sync_clock.delete.confirm": "删除此同步时钟?使用它的源将恢复为各自的速度。",
|
||||
"color_strip.clock": "同步时钟:",
|
||||
"color_strip.clock.hint": "关联同步时钟以实现同步动画。设置后,速度将来自时钟。"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user