# api-doc 本文档主要记录主进程和渲染进程的通信约定。 ## 命名方式 本项目渲染进程包含两个:字幕窗口和控制窗口,主进程需要分别和两者进行通信。通信命令的命名规则如下: 1. 命令一般由三个关键字组成,由点号隔开。 2. 第一个关键字表示通信发送目标: - `config` 表示控制窗口类实例(后端)或控制窗口(前端) - `engine` 表示字幕窗口类实例(后端)或字幕窗口(前端) - `both` 表示上述对象都有可能成为目标 3. 第二个关键字表示需要修改的对象 / 发生改变的对象,采用小驼峰命名 4. 第三个关键字一般是动词,表示通信发生时对应动作 / 需要进行的操作 根据上面的描述可以看出通信命令一般有两种语义,一种表示要求执行的操作,另一种表示当前发生的事件。 ## 前端 <=> 后端 ### `control.captionLog.clear` **介绍:**清空字幕记录 **发起方:**前端控制窗口 **接收方:**后端控制窗口实例 **数据类型:** - 发送:无数据 - 接收:`CaptionItem[]` ## 前端 ==> 后端 ### `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.engine.already` **介绍:**引擎已经启动 **发起方:**后端 **接收方:**前端控制窗口 **数据类型:**无数据 ### `control.engine.started` **介绍:**引擎启动 **发起方:**后端 **接收方:**前端控制窗口 **数据类型:**无数据 ### `control.engine.stopped` **介绍:**引擎关闭 **发起方:**后端 **接收方:**前端控制窗口 **数据类型:**无数据 ### `control.error.occurred` **介绍:**发送错误 **发起方:**后端 **接收方:**前端控制窗口 **数据类型:**`string` ### `control.controls.set` **介绍:**后端将最新字幕引擎配置发送给前端,前端进行设置 **发起方:**后端 **接收方:**前端控制窗口 **数据类型:**`Controls` ### `caption.styles.set` **介绍:**后端将最新字幕样式发送给前端,前端进行设置 **发起方:**后端 **接收方:**前端 **数据类型:**`Styles` ### `both.captionLog.add` **介绍:**添加一条新的字幕数据 **发起方:**后端 **接收方:**前端 **数据类型:**`CaptionItem` ### `both.captionLog.upd` **介绍:**更新最后一条字幕数据 **发起方:**后端 **接收方:**前端 **数据类型:**`CaptionItem` ### `both.captionLog.set` **介绍:**设置全部的字幕数据 **发起方:**后端 **接收方:**前端 **数据类型:**`CaptionItem[]`