




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
创新电子技术网 MST OSD 一 OSD 基本概念 UI 语言 指 OSD 内容中的文字部分使用的语言类型 UI 模式 指 OSD 内容适用的环境 例如不同的信号源 TV DVD PC 带来的模式化其作 用主要区分不同的环境下 OSD 的不同表现 UI 场景 特定语言模式下及较多信息页面情况下 当前 OSD 适用的特定页面 UI 事件 用户利用输入设备向 UI 系统提供的操作命令 UI 动作表 指在特定 UI 场景中 对于 UI 输入的命令进行对应处理的索引表 OSD 画布 指整个 OSD 呈现的区域 通常为一个矩形区域 OSD 位置 通常指在 OSD 画布中 相较左上角原点的相对位置 OSD 物件 呈现在画布上 表达特定信息 具有特定属性的像素组合 二 MST OSD 流程图 Mstar 的 OSD 方案 感觉主要是在 msosd c 底层部分 menu c menutbl c 这里 主要有 MenuPageType MenuItemType DrawSubMenuGroupType MenuItemFuncType 等 几 个 Stucture 菜单位置 大小及相应操作方法都在结构体里 在 Main 循环程序中通过不断的调 用 keyDetectHander irDecodeCommand 和 OsdHandler 来达到 OSD 的各种功能与目的 三 模块说明 1 User Command 这部分指的是用户利用 Keypad Ir 或 Visual Key 进行操作 产生中断触发激活 KeyEvent 主要功能是在 Irfunc c keyPad c 里完成的 在 keyDetectHandler irDecodeCommand 中获 得相关按键信息 而后通过 MenuProcessKey ExecuteKeyEvent 执行相应的操作 包括画 OSD 以及执行按键功能等 这里比较重要的是如何将某状态下的按键 如某一按键连续按两次或者一直按下 转化成正 确的 MenuItemActionType 因为所有的按键最终都会被转到 ExecuteKeyEvent 进行处理 而 ExecuteKeyEvent 正是根据不同的 MenuItemActionType 实现不同的功能 实现此功能的 关键在于所使用的 Menu Structure 上 详细内容请参考 Menu Table 模块 2 Draw OSD 在 Global h 中定义的一些与 OSD 相关的全局变量 如 g ucMenuPageIndex g ucMenuItemIndex g ucOsdTimeCounter 等等 在 User Command 部分中若用户进行了不 同的操作则会影响到这些变量 根据变量值的不同 OsdHandler DrawOsdMenu DrawOsdMenuPage DrawOsdSubMenuGroup 也就可以画出不同的 OSD 界面了 这几个 函数大部分是在 Menu c 里定义的 实现这些函数的功能则是依靠调用底层部分 msosd c 的各种功能函数 一般来讲 我们不需要更改底层的内容 同样 实现各种 OSD 界面风格的关键也是在于所使用的 Menu Structure 上 因此 理 解 MenuDef h 中的各种 Menu Structure 是学习整个 Mstar OSD 结构的关键 3 Menu Table PDF 文件使用 pdfFactory Pro 试用版本创建 创新电子技术网 这个非常重要 理解了 Menu Structure 整个 OSD 学习也就容易多了 在 MenuDef h 中定 义的如下几个结构 A 菜单页面结构体 typedef struct BYTE XSize YSize 定义 MenuPage 窗口大小 Set Window Size BYTE PrevMenuPage 前一个 MenuPage 场景 MenuItemType MenuItems 该 MenuPage 下的 MenuItems BYTE MenuItemCount 该 MenuPage 下的 MenuItems 个数 BYTE ItemSelLength ItemSubGroupSelLength Item 及可选长度 fpExecFunc ExecFunction 执行功能 如 Power On Off 等 MenuFontType Fonts 关闭 暂时未用 BYTE Flags 标志位 是否可见 保持 MenuPageType 在 MenuDef h 中的枚举型变量 MenuPageIndexType 与 MenuTbl c 中的 tblMenus 一起定义了 MenuPageType 类型的各种 MenuPage 如 MENU MAIN 值 5 为 1 级菜单 MENU ROOT 为虚拟根菜单 另外还有 1 2 3 级 菜单 MENU PICTURE 2 级菜单 MENU SOUND MENU CHANNEL MENU FUNCTION PDF 文件使用 pdfFactory Pro 试用版本创建 创新电子技术网 MENU PC MENU OSD 值 11 为 2 级菜单 等等 该结构与 DrawOsdMenu 间的沟通桥梁是定义在 Menu h 中的如下宏定义 define CURRENT MENU tblMenus g ucMenuPageIndex define CURRENT MENU ITEMS CURRENT MENU MenuItems define CURRENT MENU ITEM COUNT CURRENT MENU MenuItemCount define CURRENT MENU ITEM CURRENT MENU ITEMS g ucMenuItemIndex define CURRENT MENU ITEM FUNC CURRENT MENU ITEM KeyFunction B 页面选项结构体 typedef struct BYTE XPos YPos MenuItem 区域 BYTE UnSelColorType SelColorType 选中与未选中图标颜色模式 BYTE NextMenuPage 下一个 MenuPage 场景 DrawMenuTextType DrawItemMethod 画 Item 方法 包括可选颜色 字体等 fpDisplayText DisplayText 所要显示的字符 MenuItemActionType KeyEvents 按键触发事件类别 该 MenuItem 下各按键 动作 导航信息 MenuItemFuncType KeyFunction 所选 Item 对应功能 DrawSubMenuGroupType DrawSubMenuGroup 画菜单的方法 MenuFontType Fonts PDF 文件使用 pdfFactory Pro 试用版本创建 创新电子技术网 BYTE Flags 该 MenuItem 是否可选 在不同模式下是否可用 MENU MAIN MenuItemType MenuItemActionType KeyEvents 选项对应不同状态下各个按键的不同响应 导航信息 例 如 当使用 IR 按下 Menu 按键时 IR 产生一个 IRKEY OSD MENU 值 利用 IrDecommand 调用 MenuProcessKey BTN OSD 在这里 就必须判断当前状态下的 KeyEvent 用于产生 对 应 的 MenuItemActionType 供 ExecuteKeyEvent 使 用 若 当 前 状 态 即 当 前 g ucMenuPageIndex 与 g ucMenuItemIndex 的值 与按下此按键后的状态相同 也就是按下 Menu键 后 再 次 按 下Menu键 这 时 所 依 据 的KeyEvent就 为 CURRENT MENU ITEM KeyEvent指向的结构 定义在MenuTbl h 为MenuItemActionType code NaviAdjustKeyEvent BTN ENDBTN MIA POWER BTN POWER MIA SOURCE BTN SOURCE MIA INCVALUE BTN Right MIA GOTOPREV BTN Osd MIA PREVITEM BTN Up MIA NEXTITEM BTN Down MIA DECVALUE BTN Left MIA PIPFUNC BTN Pip 即对应 BTN Osd 为 MIA GOTOPREV 表示在两次按下 Menu 键后返回第一次按下 Menu 键前的场景 应该说明的一点是不同状态下所对应的 KeyEvent 大多会有异同 因此 每个 Button可以转换成多种类型的 MenuAction 而后调用 ExecuteKeyEvent MenuAction 来执行这 个 MenuAction 另外还需要注意的是 对于不同的 InputSource OSD 需要显示的 MenuPage 或 MenuItem 是会不同的 决定是否显示某一 MenuPage 的控制权在于 MenuPage 为 1 级 MENU MAIN 中该结构体下的 Flag 位 MenuItem 的控制权在各自 MenuPage 下该 Flag 位 通过 IsItemSelectable 获得其值 若为 True 则画之 否则就蔽之 画出具体某一 MenuItem 的功 能函数是 DrawOsdSubMenuGroup PDF 文件使用 pdfFactory Pro 试用版本创建 创新电子技术网 C 菜单物件结构体 typedef struct BYTE Flags Draw SubMenuItemText method BYTE UnSelColorType SelColorType 选中与未选中图标颜色样式 BYTE XPos YPos 文本信息显示的位置 BYTE Length 选中 箭头等长度 fpDisplayText DisplayText 所要显示的文本信息 fpGetValue GetValue 获取数值 如 OSD 位置 透明度等 DrawSubMenuGroupType 这个部分要说明的是 DisplayText 因为有多种语言格式 需要从 Menu Strings 模块中选择正 确语言的 DisplayText Strings 实际上是个表 在 String c 中的 GetStringToBuffer 实现此功 能 大致过程是 在 DrawSubMenuGroupType 结构里添加指向定义在 MenuStr c 里的各种字 符串函数 返回定义在 Strings h 里的对应字符串索引 该索引最终指向 Strings c 里的某些 字符表代码 最后当调用 DrawOsdSubMenuGroup 时就显示出各种菜单信息 另外全局变量 bCurrFontTableId 表示当前使用哪种语言字库 使用 OSD 菜单下进行语系更 改时改变其值 从而实现语言重载 显示出对应语系下的 OSD 信息 D 菜单功能结构体 typedef struct fpAdjustValue AdjustFunction 调整功能函数 fpExecFunc ExecFunction 执行功能函数 MenuItemFuncType 在 Menu c 中的 ExecuteKeyEvent 函数中判断菜单项的功能 如果有相应功能便执行 PDF 文件使用 pdfFactory Pro 试用版本创建 创新电子技术网 4 Menu Strings 表结构 主要定义在 Strings c 里 依据用户选择不同的语言查找相应的表 当我们需要更改 或添加语言时 可以使用 Mstar 提供的制作 ICON 及修改添加语言功能的工具 其中 Mstgen exe 功能是制作 ICON 将个性化的菜单图标生成源码 需要注意的是要选好 Horizontal 与 Vertical 的值 对于 6X89 系列的话其值分别为 12 32 它产生的源码需添加 到 Palette c Font c Font Download c 等文件里 MenuEditor exe 用来更改添加语言 打开 strings xls 文件 修改添加字符串直接在 Strings 里改 添加字库则在 Dynamic 里添加定义 至于要添加什么字体及多少字体 则要使用 DynFontSort exe 工具 将新增语言的字符 COPY 到 DynFontSort exe 点击 Sort 后便可产生需要的字体 选择除已有的字体外的全部字符 添加到自己所定义的语言项里 修改完strings xls文件后保存 使用MenuEditor exe的Convert Strings 按钮直接修改源码 注意对应 6X89 平台 form
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国深圳绿色能源研发协议
- 2025年音乐教育与社会实践考试试卷及答案
- 2025年行政管理专业期中考试题及答案
- 2025年现代地理信息技术考试卷及答案
- 2025年食品科学基础知识考试试题及答案
- 2025年社会服务与发展专业综合素质评价试卷及答案
- 2025年人工智能开发工程师资格考试模拟试卷及答案
- 2025年老年医学与健康管理考研复习试卷及答案
- 2025年历史学研究生入学考试试题及答案
- 2025年环境科学与工程专业综合素质测试试卷及答案
- 2025五年级道德与法治下册期末综合测试卷(含答案)
- 主题3 乡土情怀-2025年中考语文现代文阅读主题预测与答题技巧指导(原卷版)
- DB32T3614-2019 工贸企业安全风险管控基本规范
- 高效规划优化工业园区的基础设施布局
- (王瑞元版本)运动生理学-课件-3-第三章-血液
- 浙江省医疗服务价格项目目录
- 玻璃吊装施工专项施工方案
- 焊接安全知识考核试题及答案
- 2025燃气电厂智能巡检系统技术方案
- ICU谵妄管理课件
- DB34T 1948-2013 建设工程造价咨询档案立卷标准
评论
0/150
提交评论