#include "DHL_OSAL.h" #include "cc_api.h" enum { eCC_DISPLAY_ON=0x0, eCC_SERVICE, eCC_OPTION, eCC_FONT_SIZE, eCC_FONT_STYLE, eCC_FONT_COLOR, eCC_TEXT_OPACITY, eCC_BG_COLOR, eCC_BG_OPACITY, eCC_EDGE_TYPE, eCC_EDGE_COLOR, eCC_PEN_ITALIC, eCC_PEN_UNDERLINE, eCC_WIN_POS }; typedef struct { BOOL display_on; UINT8 service; BOOL option; UINT8 font_size; UINT8 font_style; UINT8 font_color; UINT8 text_opacity; UINT8 bg_color; UINT8 bg_opacity; UINT8 edge_type; UINT8 edge_color; UINT8 italic; UINT8 underline; UINT32 win_pos; } tCC_Config; static BOOL is_cc_on; static void p_cc_start() { DCC_Start(); } static void p_cc_stop() { DCC_Stop(); } void App_CCInit() { tDCC_Config cfg; tDCC_ColorMap p_cm={247,243,241,245,240,244,242,246,255,251,249,253,248,252,250,254,239,0}; cfg.is_cc_wide=FALSE; cfg.is_korean=FALSE; cfg.is_unicode=FALSE; cfg.resolution=eDCC_R_480; cfg.color_map=&p_cm; DCC_Init(&cfg); DCC_SetService(1); is_cc_on=TRUE; p_cc_start(); } void App_CCReset(BOOL is_cc_wide, UINT8 resolution) { tDCC_Config cfg; cfg.is_cc_wide=is_cc_wide; cfg.resolution=resolution; cfg.color_map=NULL; DCC_Init(&cfg); } void App_CCStart() { if(is_cc_on) return; is_cc_on=TRUE; p_cc_start(); } void App_CCStop() { if(!is_cc_on) return; is_cc_on=FALSE; p_cc_stop(); } void App_CCSetService(UINT8 service) { if(is_cc_on) DCC_Stop(); DCC_SetService(service); if(is_cc_on) DCC_Start(); } void App_CCSetOption(BOOL is_user) { DCC_SetOption(is_user); } void App_CCConfig(UINT8 attr, UINT32 value) { tDCC_PenUserAttr pattr; DCC_GetPenUserAttr(&pattr); switch(attr) { case eCC_DISPLAY_ON : if(value) App_CCStart(); else App_CCStop(); break; case eCC_SERVICE : App_CCSetService(value); break; case eCC_OPTION : App_CCSetOption(value?TRUE:FALSE); break; case eCC_FONT_SIZE : pattr.s=value; break; case eCC_FONT_STYLE : pattr.fs=value; break; case eCC_FONT_COLOR : pattr.fc=value; break; case eCC_TEXT_OPACITY : pattr.fo=value; break; case eCC_BG_COLOR : pattr.bc=value; break; case eCC_BG_OPACITY : pattr.bo=value; break; case eCC_EDGE_TYPE : pattr.et=value; break; case eCC_EDGE_COLOR : pattr.ec=value; break; case eCC_PEN_ITALIC : pattr.fs=value; break; case eCC_PEN_UNDERLINE : pattr.fs=value; break; } DCC_SetPenUserAttr(&pattr); } void flash_fg_test(BOOL bstop) { if(bstop) { App_CCConfig(eCC_TEXT_OPACITY, DCC_AUTO_SET); } else { App_CCConfig(eCC_OPTION, TRUE); App_CCConfig(eCC_TEXT_OPACITY, eDCC_O_FLASH); } } void flash_bg_test(BOOL bstop) { if(bstop) App_CCConfig(eCC_BG_OPACITY, DCC_AUTO_SET); else { App_CCConfig(eCC_OPTION, TRUE); App_CCConfig(eCC_BG_OPACITY, eDCC_O_FLASH); } }