📄 iap.c
字号:
{ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; err = IAP_SetCmd(pIap, (tIapItem*)pRemoteCmd, pRemoteCmdData, 1); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd(t_iap_handler hIap, t_iap_cmd* pCmd, uint8* pCmdData){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; err = IAP_SetCmd(pIap, (tIapItem*)pCmd, pCmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}/* *** predefined iAPs *** */t_player_state iap_set_cmd_reset_db_selection_hierarchy(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; uint8 CmdData = 0x01; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_RST_DB_SEL_HIERARCHY; Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; err = IAP_SetCmd(pIap, &Cmd, &CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_reset_db_selection(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; uint8 CmdData = 0x01; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_RST_DB_SEL_HIERARCHY; // 0x1E Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; err = IAP_SetCmd(pIap, &Cmd, &CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_get_current_playing_track_index(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; uint8 CmdData = 0x01; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_GET_CUR_PT_INDEX; Cmd.RemainLen = Cmd.ChunkLen = 0; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; err = IAP_SetCmd(pIap, &Cmd, &CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_get_num_playing_tracks(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; uint8 CmdData = 0x01; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_GET_NUM_P_TRACKS; Cmd.RemainLen = Cmd.ChunkLen = 0; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; err = IAP_SetCmd(pIap, &Cmd, &CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_play_pause(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; teIapExt0x29Data CmdData; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_PLAY_CONTROL; Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; CmdData = IAP_CNTRL_PLAY_PAUSE; err = IAP_SetCmd(pIap, &Cmd, (uint8*)&CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_stop(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; teIapExt0x29Data CmdData; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_PLAY_CONTROL; Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; CmdData = IAP_CNTRL_STOP; err = IAP_SetCmd(pIap, &Cmd, (uint8*)&CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_next(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; teIapExt0x29Data CmdData; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_PLAY_CONTROL; Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; CmdData = IAP_CNTRL_NEXT; err = IAP_SetCmd(pIap, &Cmd, (uint8*)&CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_previous(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; teIapExt0x29Data CmdData; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_PLAY_CONTROL; Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; CmdData = IAP_CNTRL_PREV; err = IAP_SetCmd(pIap, &Cmd, (uint8*)&CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_start_ff(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; teIapExt0x29Data CmdData; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_PLAY_CONTROL; Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; CmdData = IAP_CNTRL_FF; err = IAP_SetCmd(pIap, &Cmd, (uint8*)&CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_start_rw(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; teIapExt0x29Data CmdData; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_PLAY_CONTROL; Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; CmdData = IAP_CNTRL_RW; err = IAP_SetCmd(pIap, &Cmd, (uint8*)&CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_end_ffrw(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; teIapExt0x29Data CmdData; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_PLAY_CONTROL; Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; CmdData = IAP_CNTRL_END_FFRW; err = IAP_SetCmd(pIap, &Cmd, (uint8*)&CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_next_chapter(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; teIapExt0x29Data CmdData; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_PLAY_CONTROL; Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; CmdData = IAP_CNTRL_NEXT_CHAPTER; err = IAP_SetCmd(pIap, &Cmd, (uint8*)&CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}t_player_state iap_set_cmd_previous_chapter(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; teIapExt0x29Data CmdData; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_PLAY_CONTROL; Cmd.RemainLen = Cmd.ChunkLen = 1; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; CmdData = IAP_CNTRL_PREV_CHAPTER; err = IAP_SetCmd(pIap, &Cmd, (uint8*)&CmdData, 0); } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}//#define IAP_TEST#ifdef IAP_TESTstatic uint32 i;t_player_state iap_set_cmd_get_mdisp_limit(t_iap_handler hIap){ t_player_state err = IAP_OK; if(hIap) { tIap* pIap = (tIap*)hIap; tIapItem Cmd; /* prepare iAP command chunk */ Cmd.Code.LingoId = IAP_LINGO_EXT_INTERF; Cmd.Code.CmdId = IAP_EXT_GET_COLORDISP_IMG_LIM;//IAP_EXT_GET_MONO_DISP_IMG_LIM; Cmd.RemainLen = Cmd.ChunkLen = 0; Cmd.CompleteState = IAP_ARCHIVE_ITEM_COMPLETE; err = IAP_SetCmd(pIap, &Cmd, NULL, 0); i = 255; } else err = E_IAP_FATAL_CMD; if(M_IS_IAP_ERROR(err)) DBG_REPORT_ERROR(err); return err;}#define IAP_TEST_COLOR#ifdef IAP_TEST_COLOR#define C_IAP_TEST_IMAGE_PIXELS_IN_ROW 166#define C_IAP_TEST_IMAGE_BITS_FOR_PIXEL 16#define C_IAP_TEST_IMAGE_BYTES_IN_ROW (C_IAP_TEST_IMAGE_PIXELS_IN_ROW*C_IAP_TEST_IMAGE_BITS_FOR_PIXEL/8)#define C_IAP_TEST_IMAGE_1ST_CHUNK_LEN (11+C_IAP_TEST_IMAGE_BYTES_IN_ROW)#define C_IAP_TEST_IMAGE_CHUNK_LEN (2+C_IAP_TEST_IMAGE_BYTES_IN_ROW)#define C_IAP_TEST_IMAGE_CHUNKS_NUM (76-1)uint8 gaIapTestIMAGEInit[11] ={ //header 00, 00, //desc. telegram index 0x02, //display format code ((C_IAP_TEST_IMAGE_PIXELS_IN_ROW>>8)&0xFF), (C_IAP_TEST_IMAGE_PIXELS_IN_ROW&0xFF), //image width 00, (C_IAP_TEST_IMAGE_CHUNKS_NUM+1), //image height 00, 00, 01, 0x4C, //row size[B] //no data here};#else /*IAP_TEST_COLOR*/#define C_IAP_TEST_IMAGE_PIXELS_IN_ROW 144#define C_IAP_TEST_IMAGE_BITS_FOR_PIXEL 2#define C_IAP_TEST_IMAGE_BYTES_IN_ROW (C_IAP_TEST_IMAGE_PIXELS_IN_ROW*C_IAP_TEST_IMAGE_BITS_FOR_PIXEL/8)#define C_IAP_TEST_IMAGE_1ST_CHUNK_LEN (11+C_IAP_TEST_IMAGE_BYTES_IN_ROW)#define C_IAP_TEST_IMAGE_CHUNK_LEN (2+C_IAP_TEST_IMAGE_BYTES_IN_ROW)#define C_IAP_TEST_IMAGE_CHUNKS_NUM 10 //53typedef struct{ uint8 IapTestImageChunk[C_IAP_TEST_IMAGE_CHUNK_LEN];} tIapTestIMAGEChunk;typedef struct{ //tIapTestIMAGEChunk tIapTestImage[C_IAP_TEST_IMAGE_CHUNKS_NUM]; tIapTestIMAGEChunk IapTestImage[C_IAP_TEST_IMAGE_CHUNKS_NUM]; } tIapTestIMAGE;uint8 gaIapTestIMAGEInit[C_IAP_TEST_IMAGE_1ST_CHUNK_LEN] ={ //header 00, 00, //desc. telegram index 0x01, //display format code ((C_IAP_TEST_IMAGE_PIXELS_IN_ROW>>8)&0xFF), (C_IAP_TEST_IMAGE_PIXELS_IN_ROW&0xFF), //image width 00, (C_IAP_TEST_IMAGE_CHUNKS_NUM+1), //image height 00, 00, 00, 0x24, //row size[B] //data 00, 0x32, 00, 0x01, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 //- };tIapTestIMAGE gaIapTestIMAGE = { 00, 0x01, 00, 0x32, 00, 0x02, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, //0 00, 0x02, 00, 0x32, 00, 0x03, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0x02, 0x95, 0x56, 0x80, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, //1 00, 0x03, 00, 0x32, 00, 0x04, 0x1F, 0xFF, 0xFF, 0xF5, 0xA0, 00, 00, 00, 0x02, 0x7F, 0xFF, 0xFF, 0xF4, 0x2F, 0xF8, 00, 00, 00, 0x9F, 0xFF, 0xFF, 0xD6, 00, 0x0B, 0xFD, 0x80, 00, 00, 0x1F, 0xD0, 0x9F, 0xD0, //2 00, 0x04, 00, 0x32, 00, 0x05, 0x1F, 0xFF, 0xFF, 0xFF, 0xFD, 0x80, 00, 00, 0x9F, 0xFF, 0xFF, 0xFF, 0xF8, 0x1F, 0xF8, 00, 00, 00, 0xBF, 0xFF, 0xFF, 0xFF, 0xD8, 0x01, 0xFD, 00, 00, 00, 0x3F, 0xD0, 0xBF, 0xD0, //3 00, 0x05, 00, 0x32, 00, 0x06, 0x1F, 0xF5, 0x55, 0x5F, 0xFF, 0xF8, 00, 0x09, 0xFF, 0xF5, 0xAA, 0x0A, 0x58, 0x2F, 0xF8, 00, 00, 00, 0xBF, 0xF5, 0x55, 0x7F, 0xFD, 0x03, 0xFD, 00, 00, 00, 0x3F, 0xD0, 0xBF, 0xD0, //4 00, 0x06, 00, 0x32, 00, 0x07, 0x1F, 0xF8, 00, 00, 0x97, 0xFF, 0x80, 0x27, 0xFF, 0x80, 00, 00, 00, 0x2F, 0xF8, 00, 00, 00, 0xBF, 0xD0, 00, 0x09, 0xFF, 0x81, 0xFD, 00, 00, 00, 0x3F, 0xD0, 0xBF, 0xD0, //5 00, 0x07, 00, 0x32, 00, 0x08, 0x1F, 0xF8, 00, 00, 0x09, 0xFF, 0x40, 0x9F, 0xF6, 00, 00, 00, 00, 0x2F, 0xF8, 00, 00, 00, 0xBF, 0xD0, 00, 0x02, 0xFF, 0x89, 0xFD, 00, 00, 00, 0x3F, 0xD0, 0xBF, 0xD0, //6 00, 0x08, 00, 0x32, 00, 0x09, 0x1F, 0xF8, 00, 00, 0x02, 0xBF, 0xD0, 0x7F, 0xF4, 00, 00, 00, 00, 0x2F, 0xF8, 00, 00, 00, 0xBF, 0xD0, 00, 0x01, 0xFF, 0x89, 0xFD, 0x80, 00, 00, 0xBF, 0xD0, 0xBF, 0xD0, //7 00, 0x09, 00, 0x32, 00, 0x0A, 0x1F, 0xF8, 00, 00, 00, 0x3F, 0xF8, 0x7F, 0xF5, 0xF7, 0x55, 0x60, 00, 0x2F, 0xF8, 00, 00, 00, 0xBF, 0xDA, 0xAA, 0x57, 0xFD, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xD0, 0xBF, 0xD0, //8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -