AVOS Program Guide ver1.2 -...
Transcript of AVOS Program Guide ver1.2 -...
1
AVOS Program Guide For AML 7XXX/6XXX
Version 1.2
August 10, 2007
Version Date Modified By Comments
Ver1.1 070802 liym 1> bmp txt
2> GPIO PWM pin 3> 7228 MediaBox
Ver1.2 070810 liym
2
1 .......................................................................................3
1.1 Meta Development .................................................................................3 1.2 ........................................................................................................3 1.3 USB JTAG ..............................................................................................3
2 AVOS ............................................................................................................5 3 UI Awizard ..............................................................................................5
3.1 Awizard ...........................................................................................................5 3.2 UI ..................................................................................................14 3.3 .......................................................................................................14
4 .........................................................................................................................17 4.1 .......................................................................................................17 4.2 .......................................................................................................19
5 AVOS .............................................................................................................20 6 LOGO ....................................................................................................................21
6.1 LOGO .........................................................21 6.2 LOGO .........................................................................23
7 ICON ......................................................................................................................23 7.1 ..........................................................................................................................23 7.2 ...........................................................................................................................23
8 KEYBOARD ..................................................................26 9 BOOT .................................................................................................................26 10 ROM ................................................................................................................27 11 FAQ....................................................................................................................................27 12 API ..........................................................................................................32
12.1 ............................................................................................................32 12.2 LOGO .................................................................................................35 12.3 ........................................................................................................................37 12.4 ........................................................................................................................37 12.5 USB ........................................................................................................37 12.6 ............................................................................................................37 12.7 IO ................................................................................................39 12.8 APP .............................................................................................................40 12.9 MESSAGE ....................................................................................................43 12.10 ...............................................................................................................43 12.11 ...............................................................................................................47 12.12 ...................................................................................................49
3
1
1.1 Meta Development
λ cygwin metadeveloper C:\
1.2
LD_LIB_PATH=C:/MetaDeveloper/HCARC/lib
Path C:/MetaDeveloper/HCARC/bin; C:\cygwin\bin;
1.3 USB JTAG
Install 1.05.rar usb 1> Install 1.05\GPIO\ C:\metadeveloper\hcarc\bin 2> Install 1.05\C_ROOT \ C:\
usb debug —>Install 1.05.rar USB_DRIVER
—> —>
4
5
2 AVOS
3 UI Awizard
3.1 Awizard
a) File\New Project”,
6
APP
7
APP
8
NEC Nec Remote Config
Predefined Remote Type Input Key Translation Edit
9
OSD
b)
Project , 3.1
c) GUI
10
d) GUI\setting , ICON RESOURCE
ICON
ICONC C
H
11
e)
12
5
13
λ CC
λ λ OSD BSP MEMMAP
λ Y λ string_dat.c DataType DT_STRING_DATA
icon_data.c icon DataType DT_RLE_BMP_DATA MsgChinese.Dat/MsgEnglish.Dat
DataType DT_RESOURCE_DATA λ Project .cfg
[Font List] Font Lib Dir= [Data File] DataFile[0]= ICON DataFile[1]= STRING [Resource File] ResourceID[x]= ID
14
ResourcrFile[x]=
3.2 UI
Awizard guigui win Awizard
win A>
Project—>Build ProjectYes gui win
.c .h .c/ .h/ .des guiwin_ win_? UI
GUI B> Project Wintest
1> GUI—>Add Window Project—>Build Project win Wintest.c/Wintest.h/Wintest.des
2> Wintest.c/Wintest.h/Wintest.des gui win_winevent WintestEvent.c WintestEvent.h
3> string_dat.c/icon_date.cresource_?
4> menu.c GUICreateWindow() if(strcmp(pWindowName,"Wintest") == 0)
pHwnd = CreateMenuWintest(); // CreateMenuWintest() Awizard// Wintest.c
else menu.h #include "Wintest.h"
5> gui makefile.source $(WINDIR)/$(WIN_DIR)/wintest.c \ $(WINDIR)/$(EVENT_DIR_PUB)/wintestEvent.c \
Win_test
3.3
72XX 4/16/256 OSD
256 16 240 16 awizard4 0~3 0~0xfff 12 4~15 240 16~255 osdsettpval
0~0xf SetOSD240Color() level 3.3.1 16
AWSetForeground() AWSetBackground()AWSetBackground(0) AWSetForeground()
15
0 15 16 Awizard ICON Generator
Tools-->Icon Generator
Baseline colors Color 0—15 16Blend Param 4 0~3
16
Color0—15 Original RGB
Converted RGB Get Pelette Data Compress Icon Data
win .c Set Palettemask_para[4] palette_para[16] Icon Generator Compress Icon Data
palette_alpha_mask[4] palette_color[16] .cSet Palette 16
16 AWSetForeground() 16
3.3.2 240 240
osdsettpval LogoEvent.c used_palette_commontable ICON used_palette_common
used_palette_common table ICON
RGBTABLE colortable.tmp colortable.tmp 32
used_palette_common used_palette_common
17
4
4.1
CNFontTool.exe
check BMP Setting Range CharSetBMP Setting CustomizeCharSet Range 16
16 0xBEA7 Start 0xBEA7 End 0xBEA8 Setting->Font
18
File->LoadFont CheckBMP Setting LoadFont
LoadFont Check LoadFont LoadFontCheck
CNFontSrc.fnt
Match Width
19
4.2
photoshop photoshop10
.bmp .txt bmp copytxt
UltraEditAWizard.exe Tools->Font Manager,
, Font Flie->Create New Font,
Font Bitmap Edit Page .bmp .txt
20
Generate Font Data .fnt .fnt copy .fnt
Font Flie->Open Font Flie,.fnt Build Font Lib Data .h
5 AVOS
λ ..\EXTERN_RELEASE_DIR env.bat
1> set EXTERN_RELEASE_DIR=%CD% set AVOS_RELEASE_DIR=%CD%\..\AVOS_RELEASE_DIR set PATH=%CD%\bin;%CD%\mingw\bin;%PATH% set LD_LIB_PATH=C:\MetaDeveloper\hcarc\lib cd %CD%\..\CODEBASE\bld_8inch build cmd 2> 7228 MediaBox set EXTERN_RELEASE_DIR=%CD% set AVOS_RELEASE_DIR=%CD%/avos_dist set Path=%EXTERN_RELEASE_DIR%\bin;%PATH% cd mb_basic \mb_basic\trunk\bld_8mx2_ares build CODEBASE cmd ( LD_LIB_PATH PATH )
21
λ Bsp CODEBASE 7228MediaBox
build makefile BSP_DIR bsp..\EXTERN_RELEASE_DIR\bsp OK
λ Debug 1> Debug a. env.bat DOS make dbgburner b. make prom down
F9 RUN image written
c. make offdown 2> Debug a. env.bat DOS make dbg b. make down down
F9 RUN 3> 7228 MediaBox Debug a. env.bat DOS make dbg b. make down down
F9 RUN λ ROM code
a. DOS make romburner rom code b. make prom down
F9 RUN image writtenrom code
6 LOGO
LOGO
6.1 LOGO
22
23
6.2 LOGO
λ JPEG LOGO 720X480 λ TMPEGEnc LOAD logo.mcf. λ video source LOGO JPEG λ START λ HEX WORKSHOP LOGO.M2V λ 00000100 2 5 4 0000 01B7
λ trans_logo.exe LOGO DAT
7 ICON
7.1
72XX 4/16/256 OSD
256 16 240 16 awizard4 0~3 0~0xfff 12 4~15 240 16~255 osdsettpval
0~0xf
7.2
24
25
Bmp
26
λ 03
λ ICON
λ ICON_ ICON
ICON
λ 00 RGB 0 0 0 0 0
0 λ ICON 16
256
8 KEYBOARD
KEYBOARD inputdev.c
AWNecRemoteKeyTranslation // AWKeyboardTranslation //KEYBOARD
ID demo KeyboardNecIrKey[] KeyboardUOP[] Keyboard
9 BOOT
1> boot boot DOS 161.bat
F9 RUN image written
27
DOS 162.bat FLASH BOOT
2> boot boot prom.bat
10 ROM
DOS make romburner ROMmake prom F9 RUN
image written FLASH ROM
11 FAQ
11.1 / make clean
11.2 APP
aw_user_init.c void RegisterAllUseApp() { AWApplicationRegister(GUI_MEDIA_TYPE, GUI_TASK_INIT_STATUS,GUI_AUTO_RUN_PRIORITY, GUI_TASK_KEY_PROCESS_PRIORITY, GUI_TASK_PRIORITY, GUI_TASK_MEM_MAP, GUI_TASK_STACK_SIZE, AWGUIMsgProcess, AWGUIGetInfo, AWWinMain); AWApplicationRegister(SYS_MEDIA_TYPE, SYS_TASK_INIT_STATUS,SYS_AUTO_RUN_PRIORITY, SYS_TASK_KEY_PROCESS_PRIORITY , SYS_TASK_PRIORITY, SYS_TASK_MEM_MAP, SYS_TASK_STACK_SIZE, AWSysMsgProcess, AWSysGetInfo, AWSysTaskProcess) ; AWApplicationRegister(AVI_MEDIA_TYPE,AVI_TASK_INIT_STATUS,AVI_AUTO_RUN_PRIORITY,AVI_TASK_KEY_PROCESS_PRIORITY, AVI_TASK_PRIORITY,AVI_TASK_MEM_MAP,AVI_TASK_STACK_SIZE,AWAVIMsgProcess,AVIGetInfo,AVITaskProcess); AWApplicationRegister(VOB_MEDIA_TYPE,VOB_TASK_INIT_STATUS,VOB_AUTO_RUN_PRIORITY,VOB_TASK_KEY_PROCESS_PRIORITY, VOB_TASK_PRIORITY,VOB_TASK_MEM_MAP,VOB_TASK_STACK_SIZE,AWVOBM
28
sgProcess,VOBGetInfo,VOBTaskProcess); AWApplicationRegister(PIC_MEDIA_TYPE,PIC_TASK_INIT_STATUS,PIC_AUTO_RUN_PRIORITY,PIC_TASK_KEY_PROCESS_PRIORITY, PIC_TASK_PRIORITY,PIC_TASK_MEM_MAP,PIC_TASK_STACK_SIZE,AWPICMsgProcess,PICAppGetInfo,PICTaskProcess); AWApplicationRegister(GPLAYER_MEDIA_TYPE,GPLAYER_TASK_INIT_STATUS,GPLAYER_AUTO_RUN_PRIORITY,GPLAYER_TASK_KEY_PROCESS_PRIORITY, GPLAYER_TASK_PRIORITY,GPLAYER_TASK_MEM_MAP,GPLAYER_TASK_STACK_SIZE,AWGPLAYERMsgProcess,gPlayerAppGetInfo,gPlayerTaskProcess); AWApplicationRegister(TXT_MEDIA_TYPE,TXT_TASK_INIT_STATUS,TXT_AUTO_RUN_PRIORITY,TXT_TASK_KEY_PROCESS_PRIORITY, TXT_TASK_PRIORITY,TXT_TASK_MEM_MAP,TXT_TASK_STACK_SIZE,AWTXTMsgProcess,TxtAppGetInfo,TxtTaskProcess); return; }
APP APPAPP LIB
11.3 USB HOST SLAVE BSP BSP.h
#define USB_DMA_MASK (0xffffffff) #define USB_DMA1_MASK (0xffffffff)
USB HOST SLAVEOTG 0
aw_init_display.c static struct platform_device USB_controller = { USB_CHIP_NAME, USB_CHIP_BASE_ADDR, USB_CHIP_IRQ , USB_INT_TYPE, USB_DMA_MASK, { USB_PORT_TYPE_HOST, //Config Port }, NULL };
6 HOST USB_PORT_TYPE_SLAVEUSB_PORT_TYPE_SW_OTG
OTG
29
11.4 USB aw_init_display.c USB_start_all
dwc_otg_probe(&USB_controller1); dwc_otg_probe(&USB_controller);
USB USB
11.5 DEBUG SDRAM
aw_user_init.c #include "font_chinese_hei_24.h" void InitFont(void) { AWSetForeground(3); AWSetBackground(0); AWRegisterFont(&gChineseFontH24) ; return; }
#include "font_english_20.h"
void InitFont(void)
{
AWSetForeground(3);
AWSetBackground(0);
AWRegisterFont(&gEnglishFont20) ;
return;
} 11.6
user.h #define ENABLE_CARD_READER BSP bsp.c void bsp_init(void) { … card_module_enable(CARD_MODULE_CF); card_module_enable(CARD_MODULE_SD_MMC); card_module_enable(CARD_MODULE_MS_MSPRO); card_module_enable(CARD_MODULE_XD);
card_module_enable(CARD_MODULE_SM); …
}
30
H C LIB
11.7 480P
aw_init_display.c Display_Logo video_appmode_t video_appmode = { DISPCTL_MODE_720P, VIDEO_APPVMODE_480_480, VIDEO_APPHMODE_720, 0, DISPCTL_MODE_720P
};
DISPCTL_MODE_720P------720P DISPCTL_MODE_1080P-----1080I DISPCTL_MODE_480P------480P DISPCTL_MODE_720I------480I
11.8 AWSetHDScreen 1 0 TV FILTER
TV 720P 480POSD 1 OSD FILTER
OSD 0OSD FILTER OSD FILTER
OSD
11.9 8M SDRAM 16M
1. debugrom\boot.s ; DRAM_CTRL_REG1 mov r10, 0x01101c00 mov r11, 0x0500 st.di r11, [r10] mov r10, 0x01000590 //590 mov r11, 0x00004100 // SDRAM1 st.di r11, [r10] sleep_loop:
BOOT BOOT
2. bsp.c set_memory_config(SDRAM1_8Mx16, SDRAM2_NONE, 0x3800000);
31
3. memmap.c HEAP 0x3800000 #define MIN_HEAP_SIZE 0x380000 //#define MIN_HEAP_SIZE 0x700000 _phymem_node_t DEFAULT_HEAP[] = {{0x3800000+0x280000,
0x3800000+0x280000+MIN_HEAP_SIZE-1}, {0,0}}; _phymem_node_t DEFAULT_KHEAP[] =
{{0x3800000+0x280000+MIN_HEAP_SIZE, 0x3800000+0x280000+MIN_HEAP_SIZE+0x100000-1}};
_phymem_node_t DEFAULT_UHEAP[] = {{0x3800000+0x280000+MIN_HEAP_SIZE+0x100000, 0x3800000+0x280000+MIN_HEAP_SIZE+0x100000+0x100000-1}};
_phymem_node_t DEFAULT_SYS_DRAM[] = {{0x3800000,
0x3800000+(8*1024*1024)}};
4. makefile CODE 0x3800000 BSP_DIR =$(TOPDIR)/bsp/7213_sh_fullscreen LINK_ADDRESS = 0x03800000
5. DOWNLOAD scarc -jtag -hmem=0x3d00000 app_ATHENAdbg.out -OK
FLASH BOOT 8M BOOT 16M BOOT
!!Hostlink is not OK. Possibly corruption. Hostlink version detected is 0x0 !!Hostlink is not OK. Possibly corruption. Hostlink version detected is 0x0 !!Hostlink is not OK. Possibly corruption. Hostlink version detected is 0x0
LINK_ADDRESS = 0x0C00000, BOOT -hmem=0xC00000BOOT
LINK_ADDRESS = 0x3800000, BOOT -hmem=0x3800000BOOT
11.10 GPIO
GPIO chipsupport.h void _gpio_ctrl_mode_X X GPIO pin pin number chipsupport.h PREG_X_Pad_t , mode 10
GPIO gpio_m2_0_setgpio_m2_0_get
GPIO GPIO_M2_0 GPIO_M2_1
32
GPIO_FEC GPIO_EGPIO GPIO_JTAG GPIO_M1_SCS GPIO_AUDIO GPIO_MIO GPIO_ATAPI
gpio_ctrl_mode_m2_0(PREG_M2_D0,0); //set M2_D0 as a output gpio gpio_m2_0_set(PREG_M2_D0,1); //we output high to this gpio gpio_ctrl_mode_m2_0(PREG_M2_D1,1); //set M2_D1 as a input gpio gpio_level = gpio_m2_0_get(PREG_M2_D1); //get the level of this gpio
11.11 PWM
12 API
12.1
void GUIShowWindow(char *pWindowName)
NAME
Logo
33
GUIShowWindow(“WinLogo”) // name WinLogo NAME WINDOWS NAME
void GUIHideWindow(char *pWindowName)
NAME
GUIShowWindow INT32S AWShowWindowByName(CHARSTR *pWindowName, INT8U auto_focus_flag)
NAME 0 1
3 AWShowWindow(pHwnd, auto_focus_flag) AWShowWindowByName(“WinLogo”,1); // name WinLogo
// INT32S AWHideWindowByName(CHARSTR *pWindowName)
GUIHideWindow NAME
1 AWHideWindow(pHwnd) INT32S AWShowWindow(HWND *win_hwnd, INT8U auto_focus_flag)
GUIShowWindow AWShowWindowByName
Awizard
1 2 0 HWND *pHwnd = AWFindWinCtrlByName(“WinLogo”) ;
AWShowWindow(pHwnd, 1) ; // WinLogo
INT32S AWHideWindow(HWND *win_hwnd)
AWHideWindowByName
2 0 void AWShowWinControl(PHWND hwnd, INT8U focus_flag)
PHWND dir_hwnd ; // dir_hwnd = AWFindWinCtrlByName("WLogoTCSelect2") ;
AWShowWinControl(dir_hwnd, 0) ;// WLogoTCSelect2
34
// void AWHideWinControl(PHWND hwnd)
PHWND AWFindWinCtrlByName(CHARSTR *lpCtrlName)
NAME NAME
PHWND dir_hwnd ; dir_hwnd = AWFindWinCtrlByName("WLogoTCSelect4") ;
AWShowWinControl(dir_hwnd, 0) ; AWSetFocus(dir_hwnd) ; // WLogoTCSelect2 ,
// PHWND AWSetFocus(PHWND hwnd)
void AWSetWinControlStyle(PHWND hwnd, INT32U new_style)
style CHILDWINODWS DISVISIBLEDISABLE
WS_DISVISIBLE WS_CHILDWS_DISABLED
PHWND AWGetTopWindow(PHWND hwnd)
if(AWGetTopWindow(gpFocusWin) != AWFindWinCtrlByName("WinFileList")) { AWHideWindow((PHWND)AWGetTopWindow(gpFocusWin)); ReloadLogo(Setup_Logo, sizeof(Setup_Logo)); GUIShowWindow("WinFileList") ;}
gpFocusWin WinFileListSetup_Logo logo WinFileList
INT32S AWIsVisibleWinControl(HWND *win_hwnd) Visible
35
0 disvisble 1 visble
12.2 LOGO
void Display_Logo(const unsigned *logo_data, unsigned logo_length) logo
logo logo
Display_Logo(Main_Logo, sizeof(Main_Logo));
video_appmode_t video_appmode = {DISPCTL_MODE_480I, VIDEO_APPVMODE_480_480, VIDEO_APPHMODE_720, 0, DISPCTL_MODE_480I}; video_appmode_t video_appmode = {DISPCTL_MODE_480P, VIDEO_APPVMODE_480_480, VIDEO_APPHMODE_720, 0, DISPCTL_MODE_720P};
reloadlogo
target.cfg_table[0].size = logo_length + 0x500; logo logo target.cfg_table[0].size
9000 void ReloadLogo(const unsigned *logo_data, unsigned logo_length)
logo Display_Logo Display_Logologo
logo logo
ReloadLogo(Setup_Logo, sizeof(Setup_Logo)) ;// logo void AWSetHDScreen(int is_hd)
1 0
void AWFillRect(COORD x, COORD y, COORD width, COORD height) x y void AWPoint(COORD x, COORD y) x,y
36
void AWLine(COORD x1, COORD y1, COORD x2, COORD y2)
x1,y1 x2,y2
void AWRect(COORD x, COORD y, COORD width, COORD height)
x y void AWRLEBitmap(COORD x, COORD y, const INT8U *imagebits) ICON x,y ICON void AWEllipse(COORD x, COORD y, COORD rx, COORD ry) void AWFillEllipse(COORD x, COORD y, COORD rx, COORD ry) void AWPoly(INT32S count, POINT *points)
2 void AWFillPoly(INT32S count, POINT *points)
2 void AWClearRect(COORD x, COORD y, COORD width, COORD height) x,y
37
12.3
void set_bsp_mute(int on) GPIO TRUE FALSE int get_bsp_mute(void) MUTE MUTE
12.4
void AVTimeDly (INT16U ticks):
AVTimeDly(200);
12.5 USB
INT16U GetDriverNum() USB USB
0 1
12.6
PIXELVAL AWSetForeground(PIXELVAL fg)
0 15 16 Awizard ICON Generator
AWSetForeground(5);// 5
38
PIXELVAL AWSetBackground(PIXELVAL bg)
0 15 16
AWSetBackground(0); // 0 PIXELVAL AWGetForeground(void)
PIXELVAL color ;// color
color = AWGetForeground() ;// color PIXELVAL AWGetBackground(void)
INT32S AWRegisterFont(PAWFONT new_font)
1 0 AWRegisterFont(&gChineseFont20) ;// ChineseFont20
void AWResourceInit(INT32U iMaxMemSize)
resource resource memory
AWResourceInit(0x80000);//
INT32S AWResourceRegister(INT16U res_file_id, CHARSTR *res_file_name,
CHARSTR *mem_res_file_addr) resource resource ID resource group ID resourceresource
0
AWResourceRegister((DIANXIN >> 16), "/dev/flash/MsgChinese.res",MsgChinese_mem); resource GROUP ID DIANXIN
void *AWGetResource(INT32U iResourceID, INT16U* pSourceLength) resource NULL
39
p_str = (char *)AWGetResource(ERR_PRINT_73030300, &StrLen); resouce ERR_PRINT_73030300
12.7 IO
void gpio_set_dvi(DVI_HD_Pad_t pin, unsigned level) DVI GPIO gpio_set_dvi(DVI_HD_GP1, level);// DVI_HD_GP1 int gpio_get_dvi(DVI_HD_Pad_t pin) DVI GPIO void gpio_set_vd(unsigned pin, unsigned level) VD GPIO 0 7 int gpio_get_vd(unsigned pin) VD GPIO 0 7 AVOS IO aiclk csel
chipsupport.c IO int AVRegistryRead(unsigned short id, unsigned char *value, unsigned maxBytes)
ID ID
FALSE
AVRegistryRead(CONFIG_LANUAGE, addr, 1); int AVRegistryWrite(unsigned short id, unsigned char *value, unsigned numBytes) ID ID
FALSE AVRegistryWrite(CONFIG_LANUAGE, addr, 1) Int AVRegistryCreate(unsigned short id, unsigned numBytes)
40
ID ID FALSE AVRegistryCreate(CONFIG_LANUAGE, 1)
12.8 APP
INT32S AWGetAppID(INT32U media_type,INT8U *app_id) APP ID *app_id APP MEDIA_SYSTEM MEDIA_GUI MEDIA_AVI ID
1 APP ID 0 pCmd = AWCommandSetMalloc() ; pCmd->command_num = 1 ; // pCmd->curr_executed_cmd_num = 0 ; // pCmd->commands[0] = CM_FILE_DEL ; // pCmd->commands_para[0] = (INT32U)pDelData; // pCmd->cmd_timeout_value[0] = 2 ; // 2S AWGetAppID(MEDIA_SYSTEM, &pCmd->app_id) ;// APP ID pCmd->app_id pCmd->ExecuteResultProcess = SystemCommandResponse ;// AWAddCommandSet(pCmd) ;// void AWAddCommandSet(PCMDSET pAddSet) APP cmd cmd INT32S AWAddCmdSet(INT8U iCmdNum, INT16U pCmds[], INT32U pCmdsParam[],
INT8U pCmdTimeOut[], INT8U iDestApp, CMDSETRESULTHANDLE pHandle) APP cmd AWAddCommandSetAWAddCommandSet cmd
AWAddCommandSet cmd APP ID
1 2 0 AWGetAppID(MEDIA_MP3, &my_app_id) ; pCmds = CM_QUIT ; pCmdsParam = 0 ; pCmdTimeOut = 2;
AWAddCmdSet(1, &pCmds, &pCmdsParam, &pCmdTimeOut, my_app_id, MP3PlayCmdResponse) ;
MP3 APP void AWAppSchedule(void)
41
APP AWAppRunning INT32U *key_value = (INT32U *)msg_para ; switch(*key_value) { case UOP_END_PAUSE: AWAppSchedule() ; break ; case UOP_POWER: AWCloseAllRunningApp() ; break ; default: break; }
APP POWER APP INT8U AWGetAppStatus(INT8U app_id) APP APP ID APP ID 0xff void AWSetAppStatus(INT8U app_id, INT8U new_status) APP APP ID APP_IDLE APP_READY APP_RUNNING INT32S AWAppReady(INT8U app_id)
APP IDLE READY APP ID
0 1 ID APP IDLE INT32S AWAppRunning(INT8U app_id) APP APP ID 1 APP IDLE APP ID 0
APP void AWCloseRunningApp(INT8U app_id) APP APP ID void AWCloseAllRunningApp()
42
APP AWCloseRunningApp int AWLoadVideoApp(int media_type, CMDSETRESULTHANDLE callback, char *file_name) CMD cmd 1 0
int PlayAVIFile(char *file_name){ AviInit() ; return AWLoadVideoApp(MEDIA_AVI, AviCmdResponse, file_name);
} AVI
int RunVOBPlayer(Playlist_t *playlist) VOB 1 0 if (RunVOBPlayer(playlist)) { AWPlaylistDelete2(playlist);
} // VOB int RunAVIPlayer(Playlist_t *playlist) int RunGPlayer(Playlist_t *playlist)
int RunPICPlayer(Playlist_t *playlist,unsigned char *logodata, unsigned logosize, unsigned flag) load logo Logo int PlayMP3File(char *file_name)
1 int PlayTxtFile(char *file_name, INT8U flag, INT16U line_interrupt, INT16U wide) TXT IMG 0 TXT 1 TXT TXT
1
if(item_type & MEDIA_TXT){ text = strrchr(item_name, '.') ; if(text) { if(strncmp(text,".IMG",4) == 0) { PlayTxtFile(item_name,TXT_PLAY_IMG, UPGRADE_OPEN_INTERRUPT, 0) ; GUIShowWindow("WinUpgrade") ; return 0 ; } }
PlayTxtFile(item_name, TXT_PLAY_TXT , TXT_DISPLAY_HIGH_IN_LINE, TXT_DISPLAY_WIDE_IN_PIXEL) ;
GUIShowWindow("WinDebug") ; }
43
TXT IMG TXT
12.9 MESSAGE
INT32S AWSendMessage(PHWND hwnd, INT32U iMsgID,INT32S lpParam) 0 if(!(hwnd->style & WS_DISVISIBLE)) AWSendMessage(hwnd, WM_SHOWWINDOW, lpParam); BOOLEAN AWPostMessage(PHWND hwnd, INT32U iMsgID,INT32S lpParam) TRUE FALSE
INT32S WLogoTCSelect1OnLoseFocus(PHWND hwnd, INT32S lpParam){ focus_WLogoTCSelect1=0;
AWPostMessage(hwnd, WM_PAINT, 0) ; return 0 ; }
WLogoTCSelect1WM_PAINT OnPaint
12.10
INT32S FileNavCD(CHARSTR *pCDPath) 2
0 if(entry_pos == -1){ //back up dir return FileNavCD("..") ; } else{ FileNavSeek(entry_pos) ;
have_more_file = FileNavGetNextFileList(&file_list, &get_list_num, gGetFileType ) ;
if((get_list_num)&&(file_list.path_type & NAV_IS_DIR)){ return FileNavCD(file_list.short_name) ; }
44
} entry_pos 1
INT32S FileNavGetNextFileList(PATHNODE *pDesList, INT32U *pListLength, INT32U iGetListFlag) 1 0
if(have_more_file){ /* Though "have more file", we need check if there is more file that has gGetFileType */
get_list_num=1; if(next_flag) FileNavGetNextFileList(&file_list, &get_list_num, gGetFileType ) ; else FileNavGetPrevFileList(&file_list, &get_list_num, gGetFileType ) ; if(get_list_num==0) have_more_file=0;
} next_flag
INT32S FileNavGetPrevFileList(PATHNODE *pDesList, INT32U *pListLength, INT32U iGetListFlag)
1 0 INT32S FileNavRefreshCurrentDir()
0 INT32S FileNavSeek(INT32U iPos) iRET FileNavSeek(entry_pos) ;// have_more_file = FileNavGetNextFileList(&file_list, &get_list_num, gGetFileType ) ; if((get_list_num)&&(file_list.path_type & NAV_IS_DIR)){ return FileNavCD(file_list.short_name) ; } CHARSTR* FileNavGetCurrDir(void):
45
NULL if(pList->list_levels > 0){ dir_hwnd = AWFindWinCtrlByName("CurDir") ; if(dir_hwnd){ AWShowWinControl(dir_hwnd, 0) ; total_str_len = dir_hwnd->winrect.width - 40 ; dir_path = FileNavGetCurrDir() ; str_len = AWGetTextSize(&dir_path[5], 0,&total_str_len,&font_height,
&word_length, AWTF_ASCII) ; strncpy(gCurDirName, &dir_path[5], str_len) ; gCurDirName[str_len] = 0 ; AWPostMessage(dir_hwnd, WM_PAINT, 0) ; } }
0 CurDirgCurDirName
INT32U FileNavGetCurMediaType() INT32S FileNavCopy(const char *sur_file, const char *dst_file, INT8U copy_flag) 1 2
3 i_ret 0 file_name = strrchr(gCopyFilename, '/') ; name_len = strlen(file_name); file_path = FileNavGetCurrDir() ; name_len += strlen(file_path); gPasteFileName = (char *)AVMem_umalloc(name_len + 1) ; if(gPasteFileName){ snprintf(gPasteFileName, name_len, "%s%s", file_path, &file_name[1]) ; if(FileNavCopy(gCopyFilename, gPasteFileName, 1) == 0){ //success AWShowWinControl(AWFindWinCtrlByName("FileList"), 1) ; } AVMem_free(gPasteFileName) ; gPasteFileName = NULL; }
46
INT32S FileNavDelete(const char *del_file) 1 2 0
INT32S FileNavMakeDir(const char *dir_name) 0 INT32S GetFileListCB(INT32S start_pos, INT8U get_num, TFILELISTITEM *entry_lists, INT8U next_flag) : FileNavGetNextFileList FileNavGetPrevFileList
1 0 have_more_file GetNextFileListCB GetPrevFileListCB
GetFileListCB GETFILEENTRYS get_next_entrysGETFILEENTRYS get_prev_entrys INT32S CDNewDir(INT32S entry_pos) FileNavCD FileNavCD
CDNEWENTRY cd_new_entry char *GetFullName(INT32S entry_pos , INT32U *entry_type) gCurFileName NULL gCurFileName
GETENTRYFULLNAMEANDTYPE get_entry_full_name INT32S CDRootDir(INT8U list_num, TFILELISTITEM *entry_lists) 8 1 FileNavCD("/mnt")
CDROOTENTRY cd_root_entry FileNavCD("/mnt")
47
12.11
INT32S AWPlaylistInit(INT32S list_num, INT32U *list_media_type, INT16U *max_list_item_num)
1 memory -2 mutex 0
INT32U list_meida_type[2] = {AW_VIDEO_LIST|AW_PIC_LIST, AW_AUDIO_LIST} ; INT16U list_max_num[2] = {64, 256} ;
AWPlaylistInit(2,list_meida_type, list_max_num) ;
INT32S AWAddPlaylistItem(char *item_path, INT32U item_media_t, INT16U item_index) 1 2 0 if(!(file_list.path_type & NAV_IS_DIR)){ AWAddPlaylistItem(file_list.short_name, media_type , (INT16U)count) ;
}
char* AWGetFirstPlaylistItem(INT32U media_type) NULL file_name = AWGetFirstPlaylistItem(fsl->media_type); while (i-- > 0) { file_name = AWGetNextPlaylistItem(fsl->media_type); } char* AWGetNextPlaylistItem(INT32U media_type) NULL char* AWGetPrevPlaylistItem(INT32U media_type)
NULL char* AWGetCurrentPlaylistItem(INT32U media_type)
48
NULL INT32S AWSetPlaylistPlayMode(INT32U list_media_type, INT16U play_mode)
PLAY_MODE_NORMAL PLAY_MODE_REPEAT_ALL PLAY_MODE_REPEAT_ONE PLAY_MODE_RANDOM PLAY_MODE_SUFFLE PLAY_MODE_DIR_REPEAT PLAY_MODE_ALL_MODE
1 0 INT16U AWGetPlaylistPlayMode(INT32U list_media_type)
0
INT32S AWClearPlaylist(INT32U list_media_type) 1 0 Playlist_t * fs_playlist_create(unsigned media_type, PlaylistType_t list_type, int starting_index) NULL if(item_type & AW_VIDEO_LIST){ //selected a VIDEO file, play it Playlist_t *playlist;// file_index = pList->filelist_items[pList->focused_item_index].filelist_item_id ; playlist = fs_playlist_create(AW_VIDEO_LIST & NAV_PATH_TYPE , PLAYLIST_TYPE_VIDEO,file_index); if(playlist) { if(item_type == MEDIA_MPEG1) { if (RunVOBPlayer(playlist)) { AWPlaylistDelete2(playlist); } } else if(item_type == MEDIA_AVI){ if (RunAVIPlayer(playlist)) { AWPlaylistDelete2(playlist);
49
} } }
12.12
OnShow x draw_info ID hwnd->draw_info[x].draw_type |= DT_STRING_DATA_CENTER;
OnShow hwnd->draw_info[x].draw_type |= DT_STRING_DATA_WARP;
+ hwnd->draw_info[x].draw_type |= DT_STRING_DATA_WARP |
DT_STRING_DATA_CENTER ;
INT32S WinSetupMenuOnShow(PHWND hwnd, INT32S lpParam) {
hwnd->draw_info[x].draw_type |= DT_STRING_DATA_WARP; return 0;
}