Car DVD New GUI IR Flow User Manual V0.1 Jan 25, 2008 19, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. Tel: 886-3-578-6005 Fax: 886-3-578-4418 Web: www.sunplus.com
Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLOGY CO. is believed to be accurate and reliable. However, SUNPLUS TECHNOLOGY CO. makes no warranty for any errors which may appear in this document. Contact SUNPLUS TECHNOLOGY CO. to obtain the latest version of device specifications before placing your order. No responsibility is assumed by SUNPLUS TECHNOLOGY CO. for any infringement of patent or other rights of third parties which may result from its use. In addition, SUNPLUS products are not authorized for use as critical components in life support systems or aviation systems, where a malfunction or failure of the product may reasonably be expected to result in significant injury to the user, without the express written approval of Sunplus. Sunplus Technology Co., Ltd. PAGE 1 V0.1 Jan 25, 2008
Revision History Revision Date By Remark Page Number(s) V 0.1 2008/01/25 Ai Subin First Edition 11 Sunplus Technology Co., Ltd. PAGE 2 V0.1 Jan 25, 2008
Table of Content PAGE 1 Introduction...4 1.1 General Description...4 2 User Interface...4 2.1 IR Flow...4 2.2 Important Function...5 2.3 Important Array...7 3 Data Type Introduce...9 3.1 CARDVD_DISCGuiEvent_E...9 3.2 CARDVD_DISCGuiState_E...10 4 Limits and Suggestions...10 4.1 GUI State Array Sequence...11 Sunplus Technology Co., Ltd. PAGE 3 V0.1 Jan 25, 2008
1 Introduction 1.1 General Description This guide describes the IR flow and some important functions of new GUI for SPHE8202T CAR DVD system. 2 User Interface 2.1 IR Flow New GUI IR UI Timer GUI Structure user manual 1 IR (1) polling_100ms_necessary() 100ms polling car_polling.c (2) polling_ir() 100ms ir_drv.c (3) CARDVD_GUI_ACTIVE_SCREEN_VFD_IR() IR cardvd_guimenu.h 2 Logo UI car_dvd_disc_logo_ui.c Disclogo_ir_func() Sunplus Technology Co., Ltd. PAGE 4 V0.1 Jan 25, 2008
UINT32 Disclogo_ir_func() BYTE rx; rx=get_irkey(); if(rx==irc_null)return 0; cardvd_disc_ir_input(rx); return 0; (1) rx = get_irkey(); IR (2) cardvd_disc_ir_input(rx); IR 2.2 Important Function 1 get_irkey Get IR Key Vaule. Function get_irkey Required Header car_dvd_extern_function.h BYTE get_irkey(); Parameter None Return Values rx: IRKey Value Example UINT32 Disclogo_ir_func() BYTE rx; rx=get_irkey(); if(rx==irc_null)return 0; cardvd_disc_ir_input(rx); return 0; 2 cardvd_disc_ir_input Check standard password and same ir key. Sunplus Technology Co., Ltd. PAGE 5 V0.1 Jan 25, 2008
Function cardvd_disc_ir_input Required Header car_dvd_disc_ircmd.h void cardvd_disc_ir_input(byte rx); Parameter BYTE rx: IR Key Value Return Values None Example UINT32 Disclogo_ir_func() BYTE rx; rx=get_irkey(); if(rx==irc_null)return 0; cardvd_disc_ir_input(rx); return 0; 3 cardvd_ir_input Handle IR action Function cardvd_ir_input Required Header None void cardvd_ir_input(byte rx); Parameter BYTE rx: IR Key Value Return Values None Example void cardvd_disc_ir_input(byte rx) standard_chk_password(rx); same_ir_check(rx); if(user_input_pwd==1)//nono 20020604 Sunplus Technology Co., Ltd. PAGE 6 V0.1 Jan 25, 2008
if( (rx<=irc_10) (rx==irc_select) (rx==irc_clear) (rx==irc_play_resume) (rx==irc_power) (rx==irc_eject) (rx==irc_play_select) (rx==irc_pauseplay) ) if((rx==irc_eject) (rx==irc_power)) user_input_pwd=2; cardvd_ir_input(rx); if( (rx==irc_select) (rx==irc_play_resume) (rx==irc_play_select) (rx==irc_pauseplay) ) user_input_pwd=0; if((rx!=irc_eject)&&(rx!=irc_power)) return; cardvd_ir_input(rx); 2.3 Important Array 1 g_cardvddiscstatemachine[ ] Car DVD Sunplus Technology Co., Ltd. PAGE 7 V0.1 Jan 25, 2008
IR typedef CARDVD_DISCGuiState_E (*CARDVD_DISC_STATE_FUN)(BYTE rx); const CARDVD_DISC_STATE_FUN *g_cardvddiscstatemachine[]; 2 g_cardvdsrcguifuc[ ] 1 IR NULLLM car_dvd_disc_ircmd.h const CARDVD_DISC_STATE_FUN g_cardvdsrcguifuc[]; 3 1 2 Example car_dvd_disc_ircmd.c void cardvd_ir_input(byte rx) BYTE tmprx; CARDVD_DISCGuiEvent_E u32currentevent = CARDVD_DISC_MAX_EVENT; safe_srn_off(); tmprx = rx; tmprx = disc_multi_funckey_check(tmprx); if(cardvd_key_filter(tmprx) == CAR_INVALID_KEY) ShowCarDvdInvalidOSD(); return; u32currentevent = cardvd_disc_getevent(tmprx); if(u32currentevent == CARDVD_DISC_MAX_EVENT)return; // if(g_cardvddiscstatemachine[u32curr_cardvd_uistate][u32currentevent] == NULLLM) return; // UI u32curr_cardvd_uistate ir u32curr_cardvd_uistate = g_cardvddiscstatemachine[u32curr_cardvd_uistate][u32currentevent](tmprx); Sunplus Technology Co., Ltd. PAGE 8 V0.1 Jan 25, 2008
3 Data Type Introduce 3.1 CARDVD_DISCGuiEvent_E IR code typedef enum CARDVD_DISC_UIEVENT_UPDOWN = 0, CARDVD_DISC_UIEVENT_LEFTRIGHT, CARDVD_DISC_UIEVENT_SELECT, CARDVD_DISC_UIEVENT_RETURN, CARDVD_DISC_UIEVENT_MENU, CARDVD_DISC_UIEVENT_NUM, CARDVD_DISC_UIEVENT_MUTE, CARDVD_DISC_UIEVENT_VOLUME, CARDVD_DISC_UIEVENT_TITLEMENU, CARDVD_DISC_UIEVENT_SETUP, CARDVD_DISC_UIEVENT_DISPLAY, CARDVD_DISC_UIEVENT_POWER, CARDVD_DISC_UIEVENT_LANGUAGE, CARDVD_DISC_UIEVENT_CHENNEL, CARDVD_DISC_UIEVENT_SUBTITLE, CARDVD_DISC_UIEVENT_PLAYPAUSE, CARDVD_DISC_UIEVENT_ZOOM, CARDVD_DISC_UIEVENT_STOP, CARDVD_DISC_UIEVENT_PREVIEW, CARDVD_DISC_UIEVENT_3D, CARDVD_DISC_UIEVENT_AB, CARDVD_DISC_UIEVENT_ANGLE, CARDVD_DISC_UIEVENT_PSCAN, CARDVD_DISC_UIEVENT_GOTO, CARDVD_DISC_UIEVENT_EJECT, CARDVD_DISC_UIEVENT_NEXTPREV, CARDVD_DISC_UIEVENT_FF_FW, CARDVD_DISC_UIEVENT_RPT, // 0 up/down // 1 left/right // 2 select // 3 return // 4 menu // 5 number 0 9 // 6 mute // 7 volume up/down // 8 titlemenu // 9 setup // 10 display // 11 power // 12 language // 13 channel // 14 subtitle // 15 play/pause // 16 zoom // 17 stop // 18 preview // 19 3D // 20 AB // 21 angle // 22 pscan // 23 goto // 24 eject // 25 next/prev // 26 forward/backward // 27 repeat Sunplus Technology Co., Ltd. PAGE 9 V0.1 Jan 25, 2008
CARDVD_DISC_MAX_EVENT, CARDVD_DISCGuiEvent_E; 3.2 CARDVD_DISCGuiState_E Car DVD UI typedef enum CARDVD_DISC_UISTATE_SRC =0, // 0 main source select UI CARDVD_DISC_UISTATE_LOGO, // 1 logo(loading UI ) CARDVD_DISC_UISTATE_DVDPLAY, // 2 DVD play UI CARDVD_DISC_UISTATE_DVDMENU, // 3 DVD title menu CARDVD_DISC_UISTATE_VCDPLAY, // 4 VCD play UI CARDVD_DISC_UISTATE_SETUPUI, // 5 setup UI CARDVD_DISC_UISTATE_PASSWORD, // 6 password CARDVD_DISC_UISTATE_SUPER_PASSWORD, // 7 super password CARDVD_DISC_UISTATE_FS_FILE_LIST, // 8 file list UI CARDVD_DISC_UISTATE_MP3_PLAY_UI, // 9 mp3 play UI CARDVD_DISC_UISTATE_JPEG_PLAY_UI, // 10 jpeg play UI CARDVD_DISC_UISTATE_MP4_PLAY_UI, // 11 mp4 play UI CARDVD_DISC_UISTATE_MEDIAMENU, // 12 media menu UI CARDVD_DISC_UISTATE_BLUETOOTH, // 13 bluetooth UI CARDVD_DISC_UISTATE_GPS, // 14 GPS //CARDVD_DISC_UISTATE_DVD_KEYBOARD,// 15 DVD keyboard //CARDVD_DISC_UISTATE_SVCD_MENU, // 16 SVCD menu //CARDVD_DISC_UISTATE_SVCDPLAY, // 17 SVCD play UI CARDVD_DISC_MAX_UISTATE, CARDVD_DISCGuiState_E; UI IR CAR DVD New GUI User Manual.doc 3 How to Add a New GUI State 4 Limits and Suggestions Some limits and suggestions exist in this IR flow. We list them as follows. Sunplus Technology Co., Ltd. PAGE 10 V0.1 Jan 25, 2008
4.1 GUI State Array Sequence We used many pointer array in our new IR flow,please pay attention to the sequence of GUI state in array. Sunplus Technology Co., Ltd. PAGE 11 V0.1 Jan 25, 2008