Files
auto-caption/assets/technical-docs/api-doc.md
himeditator f29e15cde5 feat(theme): 添加暗色主题支持
- 新增暗色主题选项和系统主题自动适配功能
- 调整了部分样式以适应暗色主题
2025-07-05 00:54:12 +08:00

5.5 KiB

api-doc

本文档主要记录主进程和渲染进程的通信约定。

命名方式

本项目渲染进程包含两个:字幕窗口和控制窗口,主进程需要分别和两者进行通信。通信命令的命名规则如下:

  1. 命令一般由三个关键字组成,由点号隔开。
  2. 第一个关键字表示通信发送目标:
    • config 表示控制窗口类实例(后端)或控制窗口(前端)
    • engine 表示字幕窗口类实例(后端)或字幕窗口(前端)
    • both 表示上述对象都有可能成为目标
  3. 第二个关键字表示需要修改的对象 / 发生改变的对象,采用小驼峰命名
  4. 第三个关键字一般是动词,表示通信发生时对应动作 / 需要进行的操作

根据上面的描述可以看出通信命令一般有两种语义,一种表示要求执行的操作,另一种表示当前发生的事件。

前端 <=> 后端

both.window.mounted

**介绍:**前端窗口挂载完毕,请求最新的配置数据

**发起方:**前端

**接收方:**后端

数据类型:

  • 发送:无数据
  • 接收:FullConfig

control.nativeTheme.get

**介绍:**前端获取系统当前的主题

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

数据类型:

  • 发送:无数据
  • 接收:string

前端 ==> 后端

control.uiLanguage.change

**介绍:**前端修改字界面语言,将修改同步给后端

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

数据类型:UILanguage

control.uiTheme.change

**介绍:**前端修改字界面主题,将修改同步给后端

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

数据类型:UITheme

control.leftBarWidth.change

**介绍:**前端修改边栏宽度,将修改同步给后端

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

数据类型:number

control.captionLog.clear

**介绍:**清空字幕记录

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

**数据类型:**无数据

control.styles.change

**介绍:**前端修改字幕样式,将修改同步给后端

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

数据类型:Styles

control.styles.reset

**介绍:**将字幕样式恢复为默认

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

**数据类型:**无数据

control.controls.change

**介绍:**前端修改了字幕引擎配置,将最新配置发送给后端

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

数据类型:Controls

control.captionWindow.activate

**介绍:**激活字幕窗口

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

**数据类型:**无数据

control.engine.start

**介绍:**启动字幕引擎

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

**数据类型:**无数据

control.engine.stop

**介绍:**关闭字幕引擎

**发起方:**前端控制窗口

**接收方:**后端控制窗口实例

**数据类型:**无数据

caption.windowHeight.change

**介绍:**字幕窗口宽度发生改变

**发起方:**前端字幕窗口

**接收方:**后端字幕窗口实例

数据类型:number

caption.pin.set

**介绍:**是否将窗口置顶

**发起方:**前端字幕窗口

**接收方:**后端字幕窗口实例

数据类型:boolean

caption.controlWindow.activate

**介绍:**激活控制窗口

**发起方:**前端字幕窗口

**接收方:**后端字幕窗口实例

**数据类型:**无数据

caption.window.close

**介绍:**关闭字幕窗口

**发起方:**前端字幕窗口

**接收方:**后端字幕窗口实例

**数据类型:**无数据

后端 ==> 前端

control.uiLanguage.set

**介绍:**后端将最新界面语言发送给前端,前端进行设置

**发起方:**后端

**接收方:**字幕窗口

数据类型:UILanguage

control.nativeTheme.change

**介绍:**系统主题发生改变

**发起方:**后端

**接收方:**前端控制窗口

数据类型:string

control.engine.started

**介绍:**引擎启动成功

**发起方:**后端

**接收方:**前端控制窗口

**数据类型:**无数据

control.engine.stopped

**介绍:**引擎关闭

**发起方:**后端

**接收方:**前端控制窗口

**数据类型:**无数据

control.error.occurred

**介绍:**发送错误

**发起方:**后端

**接收方:**前端控制窗口

数据类型:string

control.controls.set

**介绍:**后端将最新字幕引擎配置发送给前端,前端进行设置

**发起方:**后端

**接收方:**前端控制窗口

数据类型:Controls

both.styles.set

**介绍:**后端将最新字幕样式发送给前端,前端进行设置

**发起方:**后端

**接收方:**前端

数据类型:Styles

both.captionLog.add

**介绍:**添加一条新的字幕数据

**发起方:**后端

**接收方:**前端

数据类型:CaptionItem

both.captionLog.upd

**介绍:**更新最后一条字幕数据

**发起方:**后端

**接收方:**前端

数据类型:CaptionItem

both.captionLog.set

**介绍:**设置全部的字幕数据

**发起方:**后端

**接收方:**前端

数据类型:CaptionItem[]