Mstar液晶电视方案-OSD代码详解.pdfVIP

  • 126
  • 0
  • 约8.56千字
  • 约 7页
  • 2020-08-02 发布于天津
  • 举报
精品文档 Mstar 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以及执行按键功能等) 。 。 1欢迎下载 精品文档 这里比较重要的是如何将某状态下的按键(如某一按键连续按两次或者一直按 下)转化成正确的 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界面风格的关键也

文档评论(0)

1亿VIP精品文档

相关文档