⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iap.c

📁 本程序为ST公司开发的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
{	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 + -