电视机用户交互界面实现方法及系统[发明专利]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(10)申请公布号 CN 102567030 A
(43)申请公布日 2012.07.11C N 102567030 A
*CN102567030A*
(21)申请号 201210002332.4
(22)申请日 2012.01.06
G06F 9/44(2006.01)
H04N 21/472(2011.01)
(71)申请人深圳市酷开网络科技有限公司
地址518108 广东省深圳市南山区深南大道
南创维大厦A 座1502
(72)发明人熊唯 邓小斌 叶兴旺 胡先华
(74)专利代理机构深圳市世纪恒程知识产权代
理事务所 44287
代理人
胡海国
(54)发明名称
电视机用户交互界面实现方法及系统
(57)摘要
本发明公开了一种电视机用户交互界面实现
方法及系统,所述方法包括步骤:当绘制消息到
达时,调用DirectFB 库中的绘制函数绘制控件,
创建主界面并显示;调用所述DirectFB 库中的消
息管理函数,从消息队列中获取消息,并分发到所
述消息对应的控件;调用所述控件的消息处理函
数或DirectFB 库中的消息处理函数处理所述消
息。
本发明基于DirectFB 库进行用户交互界面
开发,在界面绘制与切换时,由于DirectFB 库占
用资源小,运行速度快,且移植性好,本发明基于
DirectFB 创建一套控件工具包,方便扩展电视机
用户交互界面功能,可配置性好。
(51)Int.Cl.
权利要求书2页 说明书8页 附图6页
(19)中华人民共和国国家知识产权局(12)发明专利申请
权利要求书 2 页 说明书 8 页 附图 6 页
1.一种电视机用户交互界面实现方法,其特征在于,包括步骤:
当绘制消息到达时,调用DirectFB库中的绘制函数绘制控件,创建主界面并显示;
调用所述DirectFB库中的消息管理函数,从消息队列中获取消息,并分发到所述消息对应的控件;
调用所述控件的消息处理函数或DirectFB库中的消息处理函数处理所述消息。
2.根据权利要求1所述的电视机用户交互界面实现方法,其特征在于,所述调用控件的消息处理函数或DirectFB库中的消息处理函数处理所述消息具体包括:调用所述DirectFB库中对应于所述控件的监听函数监听所述消息到达状态;
当所述消息到达所述控件时,判断所述控件是否处理所述消息;
如果是,则调用所述控件的消息处理函数处理所述消息;
如果否,则调用所述DirectFB库中的消息处理函数处理所述消息。
3.根据权利要求1或2所述的电视机用户交互界面实现方法,其特征在于,所述从消息队列中获取消息之前还包括:
检测外接设备连接状态;
当所述外接设备连接时,调用所述DirectFB库中的消息管理函数,将所述连接状态转换为所述消息,并将所述消息放入所述消息队列中。
4.根据权利要求1或2所述的电视机用户交互界面实现方法,其特征在于,所述从消息队列中获取消息之前还包括:
当所述外接设备有输入事件时,调用所述DirectFB库中的事件输入函数接收所述输入事件;
调用所述DirectFB库中的消息管理函数,将所述输入事件转换为所述消息,并将所述消息放入所述消息队列中。
5.根据权利要求1或2所述的电视机用户交互界面实现方法,其特征在于,所述调用控件的消息处理函数或DirectFB库中的消息处理函数处理所述消息之后还包括:当处理后的消息产生新的消息时,调用所述DirectFB库中的消息管理函数,将新产生的消息放入所述消息队列中。
6.一种电视机用户交互界面实现系统,其特征在于,包括:
绘制模块,用于当绘制消息到达时,调用DirectFB库中的绘制函数绘制控件,创建主界面并显示;
消息管理模块,用于调用所述DirectFB库中的消息管理函数,从消息队列中获取消息,并分发到所述消息对应的控件;
消息处理模块,用于调用所述控件的消息处理函数或DirectFB库中的消息处理函数处理所述消息。
7.根据权利要求6所述的电视机用户交互界面实现系统,其特征在于,所述消息处理模块具体用于:
调用所述DirectFB库中对应于所述控件的监听函数监听所述消息到达状态;
当所述消息到达所述控件时,判断所述控件是否处理所述消息;
如果是,则调用所述控件的消息处理函数处理所述消息;
如果否,则调用所述DirectFB库中的消息处理函数处理所述消息。
8.根据权利要求6或7所述的电视机用户交互界面实现系统,其特征在于,还包括:
检测模块,用于检测外接设备连接状态;
所述消息管理模块还用于,当所述外接设备连接时,调用所述DirectFB库中的消息管理函数,将所述连接状态转换为所述消息,并将所述消息放入所述消息队列中。
9.根据权利要求6或7所述的电视机用户交互界面实现系统,其特征在于,还包括:
事件输入模块,当所述外接设备有输入事件时,调用所述DirectFB库中的事件输入函数接收所述输入事件;
所述消息管理模块还用于,调用所述DirectFB库中的消息管理函数,将所述输入事件转换为所述消息,并将所述消息放入所述消息队列中。
10.根据权利要求6或7所述的电视机用户交互界面实现系统,其特征在于,所述消息管理模块还用于,当处理后的消息产生新的消息时,调用所述DirectFB库中的消息管理函数,将新产生的消息放入所述消息队列中。
电视机用户交互界面实现方法及系统
技术领域
[0001] 本发明涉及到电视机平台技术领域,特别涉及到电视机用户交互界面实现方法及系统。
背景技术
[0002] 电视的诞生给人们带来了无尽的数字视听享受,随着一项项技术的成熟,现在电视的功能越来越强大,越来越丰富着大家的生活。
为了让电视用户能得到最好的体验,绚丽的操作界面、丰富的应用功能以及实时的交互响应是电视行业要解决的主要问题。
[0003] 在嵌入式环境下,用户界面设计的系统整体构架和PC相差不大,绘制函数、处理事件等也是嵌入式用户界面系统要面临的问题,但是嵌入式系统本身体积小,资源少等特点,所以在整体设计上必须严谨,考虑的条件更多,用最小的资源占有量,实现简洁、友好、丰富、优质的人机交互界面显示。
[0004] 嵌入式Linux下的界面图形设计现存的主要技术方案主要有:Qt在X环境下可视为一套功能完整的用户界面工具包,它功能丰富,但是由于它是基于C++类库,架构过于复杂,系统消耗资源较大,对于非高端信息产品不是首选;OpenGUI内核用汇编语言实现,运行速度很快,但是其内部使用的是私有的API,可移植性差,可配置性也比较差;MiniGUI的策略是建立在比较成熟的图形引擎上,小巧并且可配置,但是开发效果不及其他方案;紧缩的X Window系统,具有可扩展性好,可移植性好等优点,但是系统庞大,累赘且效率低,国外试图通过对X Window系统紧缩来满足嵌入式系统的需求,但是系统源代码不开放,从而很难进行本地化开发。
发明内容
[0005] 本发明的主要目的为提供一种资源消耗小、运行速度快、可配置性好的电视机用户交互界面实现方法及系统。
[0006] 本发明提出一种电视机用户交互界面实现方法,包括步骤:
[0007] 当绘制消息到达时,调用DirectFB库中的绘制函数绘制控件,创建主界面并显示;
[0008] 调用所述DirectFB库中的消息管理函数,从消息队列中获取消息,并分发到所述消息对应的控件;
[0009] 调用所述控件的消息处理函数或DirectFB库中的消息处理函数处理所述消息。
[0010] 优选地,所述调用控件的消息处理函数或DirectFB库中的消息处理函数处理所述消息具体包括:
[0011] 调用所述DirectFB库中对应于所述控件的监听函数监听所述消息到达状态;[0012] 当所述消息到达所述控件时,判断所述控件是否处理所述消息;
[0013] 如果是,则调用所述控件的消息处理函数处理所述消息;
[0014] 如果否,则调用所述DirectFB库中的消息处理函数处理所述消息。
[0015] 优选地,所述从消息队列中获取消息之前还包括:
[0016] 检测外接设备连接状态;
[0017] 当所述外接设备连接时,调用所述DirectFB库中的消息管理函数,将所述连接状态转换为所述消息,并将所述消息放入所述消息队列中。
[0018] 优选地,所述从消息队列中获取消息之前还包括:
[0019] 当所述外接设备有输入事件时,调用所述DirectFB库中的事件输入函数接收所述输入事件;
[0020] 调用所述DirectFB库中的消息管理函数,将所述输入事件转换为所述消息,并将所述消息放入所述消息队列中。
[0021] 优选地,所述调用控件的消息处理函数或DirectFB库中的消息处理函数处理所述消息之后还包括:
[0022] 当处理后的消息产生新的消息时,调用所述DirectFB库中的消息管理函数,将新产生的消息放入所述消息队列中。
[0023] 本发明还提出一种电视机用户交互界面实现系统,包括:
[0024] 绘制模块,用于当绘制消息到达时,调用DirectFB库中的绘制函数绘制控件,创建主界面并显示;
[0025] 消息管理模块,用于调用所述DirectFB库中的消息管理函数,从消息队列中获取消息,并分发到所述消息对应的控件;
[0026] 消息处理模块,用于调用所述控件的消息处理函数或DirectFB库中的消息处理函数处理所述消息。
[0027] 优选地,所述消息处理模块具体用于:
[0028] 调用所述DirectFB库中对应于所述控件的监听函数监听所述消息到达状态;[0029] 当所述消息到达所述控件时,判断所述控件是否处理所述消息;
[0030] 如果是,则调用所述控件的消息处理函数处理所述消息;
[0031] 如果否,则调用所述DirectFB库中的消息处理函数处理所述消息。
[0032] 优选地,所述电视机用户交互界面实现系统还包括:
[0033] 检测模块,用于检测外接设备连接状态;
[0034] 所述消息管理模块还用于,当所述外接设备连接时,调用所述DirectFB库中的消息管理函数,将所述连接状态转换为所述消息,并将所述消息放入所述消息队列中。
[0035] 优选地,所述电视机用户交互界面实现系统还包括:
[0036] 事件输入模块,当所述外接设备有输入事件时,调用所述DirectFB库中的事件输入函数接收所述输入事件;
[0037] 所述消息管理模块还用于,调用所述DirectFB库中的消息管理函数,将所述输入事件转换为所述消息,并将所述消息放入所述消息队列中。
[0038] 优选地,所述消息管理模块还用于,当处理后的消息产生新的消息时,调用所述DirectFB库中的消息管理函数,将新产生的消息放入所述消息队列中。
[0039] 本发明基于DirectFB库进行用户交互界面开发,在界面绘制与切换时,由于DirectFB库占用资源小,运行速度快,且移植性好,本发明基于DirectFB创建一套控件工具包,方便扩展电视机用户交互界面功能,可配置性好。
附图说明
[0040] 图1为本发明一实施例中电视机用户交互界面实现方法的流程图的结构示意图;[0041] 图2为本发明另一实施例的电视机用户交互界面实现方法中检测外接设备连接状态的步骤流程图;
[0042] 图3为本发明另一实施例的电视机用户交互界面实现方法中检测外接设备输入状态的步骤流程图;
[0043] 图4为本发明一实施例的电视机用户交互界面实现方法中消息处理的步骤流程图;
[0044] 图5为本发明另一实施例的电视机用户交互界面实现方法中产生新消息的步骤流程图;
[0045] 图6为本发明另一实施例的电视机用户交互界面实现方法中退出主界面的步骤流程图;
[0046] 图7为本发明一实施例中电视机用户交互界面实现系统的结构示意图;[0047] 图8为本发明另一实施例中电视机用户交互界面实现系统的结构示意图;[0048] 图9为本发明另一实施例中电视机用户交互界面实现系统的结构示意图。
[0049] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0050] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0051] 如图1所示,图1为本发明一实施例中电视机用户交互界面实现方法的流程图,该实施例提到的电视机用户交互界面实现方法,基于支持DirectFB库的Linux系统层,采用C语言实现软件体系架构设计,编写界面常用控件实现控件功能,利用上述架构支持结合外部设备接口构建人机交互界面。
[0052] 本实施例的DirectFB库是专门为满足嵌入式设备要求而开发的小巧、强大、灵活和易于使用的图形系统,设计过程中考虑到了嵌入式系统中资源受限的环境,全部代码完全用C语言开发,依赖已有的帧缓冲设备访问图形处理器,让嵌入式系统图形功能更强大。
与通用的嵌入式GUI系统相比,它具有非常简洁、高效的体系结构和硬件图形加速功能。
但是其只提供基本的画图画线绘制功能,没有控件功能,需要开发人员编写。
[0053] 在设计开发期,需要设计出软件体系架构,包括日志打印函数、字体图片资源管理函数,时间函数、绘制函数、事件输入函数、消息处理函数等;对DirectFB库、软件体系架构、大厅主界面进行初始化,并进入创建控件阶段;基于DirectFB创建控件,为控件指定通用属性,设置具体控件唯一ID标示、显示区域以及位置属性,指定控件的绘制函数、时间函数、消息处理函数、监听函数等通用功能,扩展具体控件特定功能函数,实现控件功能。
每个控件创建时指定其父节点,前后兄弟节点以及子节点,采用树形结构对系统创建的控件进行管理。
[0054] 本发明实施例的电视机用户交互界面实现方法包括:
[0055] 步骤S10,当绘制消息到达时,调用DirectFB库中的绘制函数绘制控件,创建主界面并显示;
[0056] 在系统应用阶段,根据开发期设计的软件体系架构和控件管理树形结构,按层遍历方式逐层调用控件的绘制函数,控件的绘制函数再调用DirectFB的绘制函数绘制出控件,搭建出用户平台大厅主界面。
其实现原理是基于DirectFB库向系统申请一块图像空间,并设定在屏幕上显示的区域块,然后在指定屏幕坐标位置绘制控件。
由于每个控件预先指定有相关控件节点,在得到绘制消息时,从根节点开始,逐层调用控件节点,调用其指定的绘制函数,在指定位置绘制出控件。
例如,当用户启动游戏大厅界面,首先创建界面上控件,然后触发绘制消息,控件的绘制函数调用DirectFB库中的绘制函数在界面上绘制控件,再根据开发期设计的软件体系架构绘制出游戏大厅主界面。
[0057] 步骤S20,调用DirectFB库中的消息管理函数,从消息队列中获取消息,并分发到消息对应的控件;
[0058] 本实施例消息队列以队列结构进行管理,包括管理消息队列的消息入队、出队和消息发送。
由外接设备的输入状态或输入事件转换的消息、消息产生的新消息以及系统发出的消息都以队列形式添加到消息队列,系统不断从消息队列中取出消息分发到相应控件,再由控件或者系统的消息处理函数去进行相应的消息处理。
消息的获取通常是调用DirectFB库中的时间函数定时、依次循环获取消息队列中的消息,对所获取的消息逐个处理,直至队列中没有新的消息为止。
[0059] 步骤S30,调用控件的消息处理函数或DirectFB库中的消息处理函数处理消息。
[0060] 本实施例中,各个功能的实现均是通过获取消息队列中的消息,并根据消息内容调用控件预先设置的消息处理函数处理或DirectFB库中的消息处理函数来进行对应的处理操作。
本发明实施例基于DirectFB库进行用户交互界面开发,在界面绘制与切换时,由于DirectFB库占用资源小,运行速度快,且移植性好,本发明基于DirectFB创建一套控件工具包,方便扩展电视机用户交互界面功能,可配置性好。
[0061] 如图2所示,图2为本发明另一实施例的电视机用户交互界面实现方法中检测外接设备连接状态的步骤流程图,步骤S20之前还包括:
[0062] 步骤S41,检测外接设备连接状态;
[0063] 步骤S42,当外接设备连接时,调用DirectFB库中的消息管理函数,将连接状态转换为消息,并将消息放入消息队列中。
[0064] 本实施例通常调用时间函数,定时检测外接设备状态,包括检测游戏U盘的插拔状态、U盘数据读取状态、广告数据读取状态、广告动画刷新时间到达、网络连接状态、游戏手柄/跳舞毯/摄像头等外设连接状态,当定制时间到达时,进行外接设备状态检测。
以需要跳舞毯外设的游戏为例,游戏图标接收到用户按下确定按钮的事件,转化为要进入游戏的消息,如果检测到跳舞毯是接入到电视机输入接口,进入选择的游戏,否则跳舞毯未接入电视机输入接口,主界面弹出警告窗口或发出警告提示音,提醒用户连接跳舞毯,继续调用时间函数检测跳舞毯连接状态,等待用户连接;当系统识别到跳舞毯已连接,生成“外接设备已连接”消息放置于消息队列中,系统从消息队列中获取消息后分发到相关控件处理,当用户再次启动游戏,检测到跳舞毯连接状态为已连接,进入选择的游戏。
[0065] 如图3所示,图3为本发明另一实施例的电视机用户交互界面实现方法中检测外接设备输入状态的步骤流程图,步骤S20之前还包括:
[0066] 步骤S51,当外接设备有输入事件时,调用DirectFB库中的事件输入函数接收输
入事件;
[0067] 步骤S52,调用所述DirectFB库中的消息管理函数,将所述输入事件转换为所述消息,并将所述消息放入所述消息队列中。
[0068] 本实施例中,当外部设备有输入时,接受输入事件,例如,包括电视机遥控器按键事件、游戏手柄的按键事件、外部设备的插拔事件、定时器的时间到达事件、线程事件等,实现原理是基于DirectFB库的事件输入处理机制,将输入事件进行转换和映射,各个输入事件对应有上层控件,当输入事件到达时,系统把输入事件转换为消息放入消息队列中,当系统获取该输入事件对应的消息后,根据ID标示分发给上层控件进行处理。
例如,在游戏大厅主界面,当用户选择某游戏图标按下遥控器的确定按键时,电视机接收到该输入事件,并将该输入事件转换为消息放入消息队列,系统从消息队列中提取该消息后分发到游戏图标控件上,游戏图标控件得到“游戏开始”的消息,调用消息处理函数进入游戏。
本发明实施例基于DirectFB库进行用户交互界面开发,在外设发生输入事件时调用DirectFB库中的处理函数进行处理,由于DirectFB库占用资源小,从中调用事件输入函数时运行速度快,可对输入事件做出快速响应。
[0069] 如图4所示,图4为本发明一实施例的电视机用户交互界面实现方法中消息处理的步骤流程图,步骤S30具体包括:
[0070] 步骤S31,调用DirectFB库中对应于控件的监听函数监听消息到达状态;[0071] 本实施例中,在DirectFB库中,每个控件都对应有自己的监听函数,主要功能是监听消息,消息可以是外接设备输入状态或输入事件转换而来的,可以是系统发出的,也可以是处理消息时产生的新的消息。
由于DirectFB库占用资源小,从中调用监听函数时运行速度快,有利于提高监听效率。
[0072] 步骤S32,当消息到达控件时,判断控件是否处理消息;如果是,则执行步骤S33;如果否,则执行步骤S34;
[0073] 步骤S33,调用控件的消息处理函数处理消息;
[0074] 步骤S34,调用DirectFB库中的消息处理函数处理消息。
[0075] 本实施例的DirectFB库中,控件的消息处理函数包含了控件对不同的消息对应采用的处理方案,通过判断该控件的消息处理函数中是否有对应的处理方案,判断该控件对当前消息是否处理;否则,该控件不对消息进行处理,则交由系统进行默认处理。
由于DirectFB库占用资源小,从中调用消息处理函数时运行速度快,有利于提高消息处理效率。
[0076] 如图5所示,图5为本发明另一实施例的电视机用户交互界面实现方法中产生新消息的步骤流程图,步骤S30之后还包括:
[0077] 步骤S61,当处理后的消息产生新的消息时,调用DirectFB库中的消息管理函数,将新产生的消息放入消息队列中。
[0078] 本实施例中,由于各个控件设置有父控件、子控件、前一个兄弟节点和后一个兄弟节点等属性,当一个控件处理完消息后,可能会影响到前后控件或上下级控件,即产生了新的消息。
例如,当系统获取“游戏开始”消息,进入游戏界面,此时便同时也触发了绘制消息,调用DirectFB库中的绘制函数绘制控件,创建游戏界面并显示。
由于DirectFB库占用资源小,从中调用函数时运行速度快,且通过预先创建控件实现控件功能,方便扩展电视机用户交互界面功能,可配置性好。
[0079] 如图6所示,图6为本发明另一实施例的电视机用户交互界面实现方法中退出主界面的步骤流程图,步骤S30之后还包括:
[0080] 步骤S71,当退出主界面消息到达时,销毁控件,退出主界面。
[0081] 本实施例中,如果用户进行游戏,大厅主界面会进入休眠状态,停止控件绘制和事件接受,将权利交由游戏线程,当退出游戏后再恢复大厅主界面交互功能;如果用户退出大厅主界面,则需要销毁创建的控件,释放DirectFB,释放大厅主界面申请的内存,退出大厅主界面并回到电视平台界面。
本实施例在退出主界面时主动释放DirectFB占用的空间,并且在重新触发绘制消息时,再重新向电视机系统申请内存,有利于节省电视机内存,提高系统处理速度。
[0082] 如图7所示,图7为本发明一实施例中电视机用户交互界面实现系统的结构示意图,该实施例提到的电视机用户交互界面实现系统,包括:
[0083] 绘制模块11,用于当绘制消息到达时,调用DirectFB库中的绘制函数绘制控件,创建主界面并显示;
[0084] 消息管理模块12,用于调用DirectFB库中的消息管理函数,从消息队列中获取消息,并分发到消息对应的控件;
[0085] 消息处理模块13,用于调用控件的消息处理函数或DirectFB库中的消息处理函数处理消息。
[0086] 本实施例中,绘制模块11根据开发期设计的软件体系架构和控件管理树形结构,按层遍历方式逐层调用控件的绘制函数,控件的绘制函数再调用DirectFB的绘制函数绘制出控件,搭建出用户平台大厅主界面。
其实现原理是绘制模块11基于DirectFB库向系统申请一块图像空间,并设定在屏幕上显示的区域块,然后在指定屏幕坐标位置绘制控件。
由于每个控件预先指定有相关控件节点,在得到绘制消息时,绘制模块11从根节点开始,逐层调用控件节点,调用其指定的绘制函数,在指定位置绘制出控件。
本实施例中的消息均以队列结构进行管理,包括管理消息队列的消息入队、出队和消息发送。
由外接设备的输入状态或输入事件转换的消息、前一个消息触发的下一个消息以及系统发出的消息都以队列形式添加到消息队列,消息管理模块12不断从消息队列中取出消息分发到相应控件,通常是调用时间函数定时、依次循环获取消息队列中的消息,再由消息处理模块13对所获取的消息逐个处理,直至队列中没有新的消息为止。
本发明实施例基于DirectFB库进行用户交互界面开发,在界面绘制与切换时,由于DirectFB库占用资源小,从中调用函数时运行速度快,且通过预先创建控件实现控件功能,方便扩展电视机用户交互界面功能,可配置性好。
[0087] 本发明实施例中,消息处理模块13具体用于:
[0088] 调用DirectFB库中对应于控件的监听函数监听消息是否到达控件;
[0089] 当消息到达控件时,判断控件是否处理消息;
[0090] 如果是,则调用控件的消息处理函数处理消息;
[0091] 如果否,则调用DirectFB库中的消息处理函数处理消息。
[0092] 本实施例每个控件都对应有自己的监听函数,主要功能是监听消息,消息可以是外接设备输入状态或输入事件转换而来的,可以是系统发出的,也可以是处理消息时产生的新的消息。
当控件监听到消息事件到达时,通过消息处理模块13判断该控件的消息处理函数中是否有对应的处理方案,以判断该控件对当前消息是否处理;否则,该控件不对消息。