亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mp3_atj2180.c

?? 完全采用C編寫的完整MP3解決方案源代碼!
?? C
?? 第 1 頁 / 共 5 頁
字號:
//record command
static struct 					  	
{
       UCHAR    CMD_RECORD_SET_DATE;
	UCHAR    CMD_RECORD_INITIAL;	
	UCHAR    CMD_RECORD_BASIC_INF;
	UCHAR    CMD_RECORD_PLAY;
	
       UCHAR    CMD_RECORD_PLAY_PAUSE;
	UCHAR    CMD_RECORD_SAVE;
	UCHAR    CMD_RECORD_CANCEL;
	
}const ATJ2180_set_RECORD  =
{
	0x51,
	0x52,
	0x53,
	0x54,
	0x55,
	0x56,
	0x57
};
ATj2180_GPIO GPIO_set;


#define ATJ2180_LENGTH_DTYPE		0x01
#define ATJ2180_LENGTH_CMD		0x01
//#define ATJ2180_LENGTH_DATA		0x05
#define ATJ2180_LENGTH_LEN			0x01
#define ATJ2180_LENGTH_CHECK		0x01

/****************************************************************************************/
/*   Module handler <->	 Module interruption handler interface                          */
/****************************************************************************************/


/*======================================================================================*/
/* Global  VARIABLES																	*/
/*======================================================================================*/
ATj2180_STATE_STRUCT atj2180_current_state;

ATj2180_Current_volume_STRUCT atj2180_current_volume;

ATj2180_Current_loopmode_STRUCT atj2180_current_loopmode;

ATj2180_music_init_STRUCT atj2180_music_init_Inf;

ATj2180_music_Inf_basic_STRUCT  atj2180_music_basic_Inf[5];

ATj2180_music_ID3_STRUCT  atj2180_music_Inf_ID3;

ATj2180_Current_EQ_STRUCT atj2180_current_eq;

ATj2180_Ring_init_inf_STRUCT atj2180_ring_init_inf;

ATj2180_music_Inf_basic_STRUCT  atj2180_ring_Inf[5];

ATj2180_music_init_STRUCT atj2180_voice_init_inf;

ATj2180_Voice_Inf_basic_STRUCT atj2180_voice_basic_Inf[5];

ATj2180_record_Inf_STRUCT atj2180_record_Inf;

ATj2180_record_save_STRUCT  atj2180_record_save;

MP3_ATJ2180_STATE mpi_data_type=0;


static unsigned char atj2180_frame_cmd_old;


static FRAME_DOWNLINK Fr_downlink;
static physical_layer_down_struct databuffer;
static UCHAR acknowledge=0;


/****************************************************************************************/
/*Project name  : Ginwave mp3 development                                           */
/*Process name  : Mp3 API		    	                                            	*/
/*Function name : Mp3 Stop				 			                    	        */
/*Outline	    : 			*/
/*Function      : Upon completion, the mp3 stop      */
/*Returned value: nil                                                                   */
/*Argument      : nil					                                                */
/*Input-output  : nil                                                                   */
/*Version     : v00.00 2004/12/8 1st edition by Terry.yuan                               */
/*   Copyright (C) 2004 Development Division of Ginwave company Ltd.                        */
/****************************************************************************************/
static void deal_state_inf(FRAME_UPLINK  *uplinkdatas2)
{
	memset(&atj2180_current_state, 0, sizeof(atj2180_current_state));

	atj2180_current_state.USB_Cable_status 		=uplinkdatas2->FRAME_DATAS[0];
	atj2180_current_state.Current_state	   		=uplinkdatas2->FRAME_DATAS[1];
	atj2180_current_state.PLAY_Inf_current_ID 		=uplinkdatas2->FRAME_DATAS[2];
	atj2180_current_state.PLAY_Inf_play_time[0] 	=uplinkdatas2->FRAME_DATAS[3];
	atj2180_current_state.PLAY_Inf_play_time[1] 	=uplinkdatas2->FRAME_DATAS[4];
	atj2180_current_state.PLAY_Inf_play_time[2] 	=uplinkdatas2->FRAME_DATAS[5];

}

/****************************************************************************************/
/*Project name  : Ginwave mp3 development                                           */
/*Process name  : Mp3 API		    	                                            	*/
/*Function name : Mp3 Stop				 			                    	        */
/*Outline	    : 			*/
/*Function      : Upon completion, the mp3 stop      */
/*Returned value: nil                                                                   */
/*Argument      : nil					                                                */
/*Input-output  : nil                                                                   */
/*Version     : v00.00 2004/12/8 1st edition by Terry.yuan                               */
/*   Copyright (C) 2004 Development Division of Ginwave company Ltd.                        */
/****************************************************************************************/
static void deal_volume_inf(FRAME_UPLINK  *uplinkdatas2)
{
	memset(&atj2180_current_volume, 0, sizeof(atj2180_current_volume));
	  atj2180_current_volume.Current_volume = uplinkdatas2->FRAME_DATAS[0];
}


/****************************************************************************************/
/*Project name  : Ginwave mp3 development                                           */
/*Process name  : Mp3 API		    	                                            	*/
/*Function name : Mp3 Stop				 			                    	        */
/*Outline	    : 			*/
/*Function      : Upon completion, the mp3 stop      */
/*Returned value: nil                                                                   */
/*Argument      : nil					                                                */
/*Input-output  : nil                                                                   */
/*Version     : v00.00 2004/12/8 1st edition by Terry.yuan                               */
/*   Copyright (C) 2004 Development Division of Ginwave company Ltd.                        */
/****************************************************************************************/
static void deal_circle_mode_inf(FRAME_UPLINK  *uplinkdatas2)
{
	memset(&atj2180_current_loopmode, 0, sizeof(atj2180_current_loopmode));
	  atj2180_current_loopmode.Current_loopmode = uplinkdatas2->FRAME_DATAS[0];
}

/****************************************************************************************/
/*Project name  : Ginwave mp3 development                                           */
/*Process name  : Mp3 API		    	                                            	*/
/*Function name : Mp3 Stop				 			                    	        */
/*Outline	    : 			*/
/*Function      : Upon completion, the mp3 stop      */
/*Returned value: nil                                                                   */
/*Argument      : nil					                                                */
/*Input-output  : nil                                                                   */
/*Version     : v00.00 2004/12/8 1st edition by Terry.yuan                               */
/*   Copyright (C) 2004 Development Division of Ginwave company Ltd.                        */
/****************************************************************************************/
static void deal_music_init_inf(FRAME_UPLINK  *uplinkdatas2)
{
	memset(&atj2180_music_init_Inf, 0, sizeof(atj2180_music_init_Inf));
	atj2180_music_init_Inf.Total_files		=uplinkdatas2->FRAME_DATAS[0];
	atj2180_music_init_Inf.Current_ID		=uplinkdatas2->FRAME_DATAS[1];
	atj2180_music_init_Inf.Breaktime[0]	=uplinkdatas2->FRAME_DATAS[2];
	atj2180_music_init_Inf.Breaktime[1]	=uplinkdatas2->FRAME_DATAS[3];
	atj2180_music_init_Inf.Breaktime[2]	=uplinkdatas2->FRAME_DATAS[4];
}
/****************************************************************************************/
/*Project name  : Ginwave mp3 development                                           */
/*Process name  : Mp3 API		    	                                            	*/
/*Function name : Mp3 Stop				 			                    	        */
/*Outline	    : 			*/
/*Function      : Upon completion, the mp3 stop      */
/*Returned value: nil                                                                   */
/*Argument      : nil					                                                */
/*Input-output  : nil                                                                   */
/*Version     : v00.00 2004/12/8 1st edition by Terry.yuan                               */
/*   Copyright (C) 2004 Development Division of Ginwave company Ltd.                        */
/****************************************************************************************/
static void deal_music_basic_inf(FRAME_UPLINK  *uplinkdatas2)
{


	UCHAR data_len;
	UCHAR count;
	UCHAR file_num;
	UCHAR file_data_len;

	memset(&atj2180_music_basic_Inf, 0, sizeof(atj2180_music_basic_Inf));
	data_len=uplinkdatas2->FRAME_LEN-ATJ2180_LENGTH_DTYPE-ATJ2180_LENGTH_CMD;

	for(count=0, file_num=0; count<data_len && file_num<5; file_num++)
	{
		file_data_len=uplinkdatas2->FRAME_DATAS[count++];
		assert(file_data_len>=0x08);

		atj2180_music_basic_Inf[file_num].File_ID 		= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_music_basic_Inf[file_num].Bit_Rate[0]	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_music_basic_Inf[file_num].Bit_Rate[1]	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_music_basic_Inf[file_num].Bit_Rate[3] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_music_basic_Inf[file_num].Play_Time[0] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_music_basic_Inf[file_num].Play_Time[1] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_music_basic_Inf[file_num].Play_Time[2] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_music_basic_Inf[file_num].File_Type 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_music_basic_Inf[file_num].File_Name_len= file_data_len -0x08;
		memcpy(atj2180_music_basic_Inf[file_num].File_Name, &(uplinkdatas2->FRAME_DATAS[count]), file_data_len -0x08);
		count += file_data_len -0x08;
	}
	assert(count<=data_len);

}

 /****************************************************************************************/
/*Project name  : Ginwave mp3 development                                           */
/*Process name  : Mp3 API		    	                                            	*/
/*Function name : Mp3 Stop				 			                    	        */
/*Outline	    : 			*/
/*Function      : Upon completion, the mp3 stop      */
/*Returned value: nil                                                                   */
/*Argument      : nil					                                                */
/*Input-output  : nil                                                                   */
/*Version     : v00.00 2004/12/8 1st edition by Terry.yuan                               */
/*   Copyright (C) 2004 Development Division of Ginwave company Ltd.                        */
/****************************************************************************************/
static void deal_music_ID3(FRAME_UPLINK  *uplinkdatas2)
{
	UCHAR data_len;
	UCHAR count=0;

	memset(&atj2180_music_Inf_ID3, 0, sizeof(atj2180_music_Inf_ID3));
	data_len=uplinkdatas2->FRAME_LEN-ATJ2180_LENGTH_DTYPE-ATJ2180_LENGTH_CMD;

	atj2180_music_Inf_ID3.File_ID = uplinkdatas2->FRAME_DATAS[count++];

	//song's title
	atj2180_music_Inf_ID3.Til2_len = uplinkdatas2->FRAME_DATAS[count++];
	memcpy(atj2180_music_Inf_ID3.Til2, &(uplinkdatas2->FRAME_DATAS[count]), atj2180_music_Inf_ID3.Til2_len);
	count += atj2180_music_Inf_ID3.Til2_len;
	if(count>=data_len) return;

	//Song's singer
	atj2180_music_Inf_ID3.Tpe_len = uplinkdatas2->FRAME_DATAS[count];	
	memcpy(atj2180_music_Inf_ID3.Tpe, &(uplinkdatas2->FRAME_DATAS[count]), atj2180_music_Inf_ID3.Tpe_len);
	count += atj2180_music_Inf_ID3.Tpe_len;
	if(count>=data_len) return;

	//Song's sing disk name
	atj2180_music_Inf_ID3.Talb_len = uplinkdatas2->FRAME_DATAS[count];	
	memcpy(atj2180_music_Inf_ID3.Talb, &(uplinkdatas2->FRAME_DATAS[count]), atj2180_music_Inf_ID3.Talb_len);
	count += atj2180_music_Inf_ID3.Talb_len;
	assert(count<=data_len);

}
/****************************************************************************************/
/*Project name  : Ginwave mp3 development                                           */
/*Process name  : Mp3 API		    	                                            	*/
/*Function name : Mp3 Stop				 			                    	        */
/*Outline	    : 			*/
/*Function      : Upon completion, the mp3 stop      */
/*Returned value: nil                                                                   */
/*Argument      : nil					                                                */
/*Input-output  : nil                                                                   */
/*Version     : v00.00 2004/12/8 1st edition by Terry.yuan                               */
/*   Copyright (C) 2004 Development Division of Ginwave company Ltd.                        */
/****************************************************************************************/
static void deal_music_Tune(FRAME_UPLINK  *uplinkdatas2)
{
	memset(&atj2180_current_eq, 0, sizeof(atj2180_current_eq));
	atj2180_current_eq.Current_EQ  = uplinkdatas2->FRAME_DATAS[0];
}

/****************************************************************************************/
/*Project name  : Ginwave mp3 development                                           */
/*Process name  : Mp3 API		    	                                            	*/
/*Function name : Mp3 Stop				 			                    	        */
/*Outline	    : 			*/
/*Function      : Upon completion, the mp3 stop      */
/*Returned value: nil                                                                   */
/*Argument      : nil					                                                */
/*Input-output  : nil                                                                   */
/*Version     : v00.00 2004/12/8 1st edition by Terry.yuan                               */
/*   Copyright (C) 2004 Development Division of Ginwave company Ltd.                        */
/****************************************************************************************/
static void deal_ring_init_inf(FRAME_UPLINK  *uplinkdatas2)
{
	memset(&atj2180_ring_init_inf, 0, sizeof(atj2180_ring_init_inf));
	atj2180_ring_init_inf.Totalfiles   = uplinkdatas2->FRAME_DATAS[0];
	atj2180_ring_init_inf.CallingID   = uplinkdatas2->FRAME_DATAS[1];
}
/****************************************************************************************/
/*Project name  : Ginwave mp3 development                                           */
/*Process name  : Mp3 API		    	                                            	*/
/*Function name : Mp3 Stop				 			                    	        */
/*Outline	    : 			*/
/*Function      : Upon completion, the mp3 stop      */
/*Returned value: nil                                                                   */
/*Argument      : nil					                                                */
/*Input-output  : nil                                                                   */
/*Version     : v00.00 2004/12/8 1st edition by Terry.yuan                               */
/*   Copyright (C) 2004 Development Division of Ginwave company Ltd.                        */
/****************************************************************************************/
static void deal_ring_basic_inf(FRAME_UPLINK  *uplinkdatas2)
{


	UCHAR data_len;
	UCHAR count;
	UCHAR file_num;
	UCHAR file_data_len;

	memset(&atj2180_ring_Inf, 0, sizeof(atj2180_ring_Inf));
	data_len=uplinkdatas2->FRAME_LEN-ATJ2180_LENGTH_DTYPE-ATJ2180_LENGTH_CMD;

	for(count=0, file_num=0; count<data_len && file_num<5; file_num++)
	{
		file_data_len=uplinkdatas2->FRAME_DATAS[count++];
		assert(file_data_len>=0x08);

		atj2180_ring_Inf[file_num].File_ID 			= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_ring_Inf[file_num].Bit_Rate[0]		= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_ring_Inf[file_num].Bit_Rate[1]		= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_ring_Inf[file_num].Bit_Rate[3] 		= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_ring_Inf[file_num].Play_Time[0] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_ring_Inf[file_num].Play_Time[1] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_ring_Inf[file_num].Play_Time[2] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_ring_Inf[file_num].File_Type 		= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_ring_Inf[file_num].File_Name_len	= file_data_len -0x08;
		memcpy(atj2180_ring_Inf[file_num].File_Name, &(uplinkdatas2->FRAME_DATAS[count]), file_data_len -0x08);
		count += file_data_len -0x08;
	}
	assert(count<=data_len);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女精品在线| 欧美国产日本韩| 91国内精品野花午夜精品| 国产白丝网站精品污在线入口| 蜜桃视频第一区免费观看| 欧美aaaaa成人免费观看视频| 午夜一区二区三区视频| 日本一区中文字幕| 美腿丝袜亚洲三区| 老司机免费视频一区二区 | 国产.欧美.日韩| 国产精品一区二区不卡| proumb性欧美在线观看| 色综合婷婷久久| 91国产成人在线| 欧美女孩性生活视频| 日韩一级完整毛片| 国产日韩精品久久久| 日韩伦理免费电影| 日本欧洲一区二区| 国产一区 二区 三区一级| 成人毛片老司机大片| 色婷婷精品久久二区二区蜜臀av| 一本久道久久综合中文字幕| 欧美片网站yy| 欧美精彩视频一区二区三区| 亚洲美女在线国产| 久久精品国产99久久6| 成人久久18免费网站麻豆 | 免费在线欧美视频| 国产大陆精品国产| 欧洲精品视频在线观看| 欧美zozo另类异族| 一区二区三区91| 国产精品一区二区在线观看不卡 | 亚洲成人黄色小说| 国产高清不卡一区二区| 欧美色综合天天久久综合精品| 精品久久久久99| 亚洲精品欧美专区| 国产一区二区三区精品视频| 欧美无砖专区一中文字| 欧美极品少妇xxxxⅹ高跟鞋 | 成人免费va视频| 欧美一区二区播放| 一区二区三区在线免费观看| 久久99精品久久久久婷婷| 欧美性极品少妇| 国产精品丝袜黑色高跟| 久久不见久久见免费视频7| 在线观看亚洲专区| 中文字幕中文字幕在线一区| 精品一区二区日韩| 欧美一区二区三区免费在线看 | 欧美卡1卡2卡| 日韩一区欧美一区| 高清不卡一二三区| 精品免费视频.| 免费一级片91| 欧美日韩精品一区视频| 亚洲私人黄色宅男| 成人妖精视频yjsp地址| 久久久久高清精品| 久久aⅴ国产欧美74aaa| 91精品一区二区三区久久久久久| 亚洲视频1区2区| 99久久综合色| 中文字幕一区二区三区在线不卡 | 久久综合资源网| 美国三级日本三级久久99| 欧美日韩电影在线播放| 亚洲一级电影视频| 欧美日韩亚洲综合一区| 亚洲成人激情自拍| 在线不卡一区二区| 免费在线视频一区| 2014亚洲片线观看视频免费| 国产美女娇喘av呻吟久久| www久久精品| 国产盗摄一区二区| 欧美国产乱子伦| 91丨porny丨最新| 亚洲午夜电影网| 在线不卡一区二区| 国产一区二区三区免费| 国产女同互慰高潮91漫画| 成人小视频免费在线观看| 国产精品福利在线播放| av资源站一区| 一区二区日韩电影| 91精品国产综合久久国产大片| 麻豆91在线观看| 国产欧美日韩另类视频免费观看| 成人av在线网| 亚洲午夜免费福利视频| 日韩欧美一级精品久久| 国产精品1024| 亚洲第一电影网| 国产精品私人影院| 在线观看日韩电影| 蜜桃视频一区二区三区| 中文字幕乱码久久午夜不卡| 91原创在线视频| 免费成人av资源网| 欧美国产精品专区| 欧美日韩一区在线| 国产精品综合视频| 亚洲免费观看高清完整| 日韩一区国产二区欧美三区| 国产一区二区三区不卡在线观看 | 日韩和欧美的一区| 久久久精品日韩欧美| 在线视频综合导航| 国内外成人在线| 亚洲在线观看免费视频| 26uuu欧美| 这里是久久伊人| 91网址在线看| 国产精品一级二级三级| 亚洲综合小说图片| 国产精品女上位| 欧美成人精品福利| 在线视频欧美精品| 成人天堂资源www在线| 午夜电影久久久| 亚洲色图.com| 国产亚洲人成网站| 日韩视频一区在线观看| 欧美中文字幕一区| 91丨九色丨蝌蚪丨老版| 国产精品69久久久久水密桃| 日韩高清在线电影| 一区二区三区精品| 亚洲另类中文字| 国产精品久久久久久久久免费桃花| 日韩午夜激情电影| 欧美日韩日日骚| 欧美午夜电影网| 在线免费观看日本一区| 色综合网站在线| 99久久99久久精品免费观看| 色94色欧美sute亚洲13| 懂色av中文一区二区三区| 久久精品99国产精品| 日本最新不卡在线| 日韩vs国产vs欧美| 日韩激情视频网站| 天天做天天摸天天爽国产一区| 亚洲麻豆国产自偷在线| 亚洲欧美日韩电影| 亚洲综合男人的天堂| 亚洲图片另类小说| 一级女性全黄久久生活片免费| **欧美大码日韩| 亚洲精品日产精品乱码不卡| 亚洲乱码国产乱码精品精可以看 | 欧洲精品在线观看| 欧美日韩久久不卡| 日韩一区二区视频在线观看| 日韩一区二区在线看| 日韩女优制服丝袜电影| 欧美精品一区二区三区久久久| 精品国产乱码久久久久久久久 | 亚洲裸体在线观看| 一区二区三区日韩| 天天色天天操综合| 日本欧美一区二区三区乱码| 久久精品国产网站| 成熟亚洲日本毛茸茸凸凹| 99国产精品久久| 欧美日韩亚洲综合| 久久婷婷国产综合精品青草| 欧美经典一区二区| 亚洲高清中文字幕| 久久99精品国产麻豆不卡| 精久久久久久久久久久| 不卡的电视剧免费网站有什么| 色视频一区二区| 3atv一区二区三区| 国产午夜亚洲精品不卡| ㊣最新国产の精品bt伙计久久| 亚洲国产中文字幕在线视频综合| 三级在线观看一区二区| 国产激情视频一区二区在线观看| 色女孩综合影院| 欧美一区二区三区影视| 国产精品日日摸夜夜摸av| 亚洲中国最大av网站| 国产一区二区三区免费看| 91福利国产成人精品照片| 日韩一区国产二区欧美三区| 国产精品色在线观看| 日韩成人一区二区三区在线观看| 国产精品一线二线三线| 欧美午夜一区二区三区| 国产拍欧美日韩视频二区 | 精品久久久久久久久久久久包黑料| 国产精品三级久久久久三级| 全国精品久久少妇| 色综合久久综合网欧美综合网|