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

📄 mp3_atj2180.c

📁 完全采用C编写的完整MP3解决方案源代码!
💻 C
📖 第 1 页 / 共 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_voice_init_inf(FRAME_UPLINK  *uplinkdatas2)
{
	memset(&atj2180_voice_init_inf, 0, sizeof(atj2180_voice_init_inf));
	atj2180_voice_init_inf.Total_files		=uplinkdatas2->FRAME_DATAS[0];
	atj2180_voice_init_inf.Current_ID	=uplinkdatas2->FRAME_DATAS[1];
	atj2180_voice_init_inf.Breaktime[0]	=uplinkdatas2->FRAME_DATAS[2];
	atj2180_voice_init_inf.Breaktime[1]	=uplinkdatas2->FRAME_DATAS[3];
	atj2180_voice_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_voice_basic_inf(FRAME_UPLINK  *uplinkdatas2)
{
	UCHAR data_len;
	UCHAR count;
	UCHAR file_num;
	UCHAR file_data_len;

	memset(&atj2180_voice_basic_Inf, 0, sizeof(atj2180_voice_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>=0x0e);

		atj2180_voice_basic_Inf[file_num].File_ID 		= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Bit_Rate[0]	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Bit_Rate[1]	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Bit_Rate[3] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Play_Time[0] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Play_Time[1] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Play_Time[2] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Modify_Time[0] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Modify_Time[1] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Modify_Time[2] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Modify_Time[3] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Modify_Time[4] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].Modify_Time[5] 	= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].File_Type 		= uplinkdatas2->FRAME_DATAS[count++];
		atj2180_voice_basic_Inf[file_num].File_Name_len	= file_data_len -0x0e;
		memcpy(atj2180_voice_basic_Inf[file_num].File_Name, &(uplinkdatas2->FRAME_DATAS[count]), file_data_len -0x0e);
		count += file_data_len -0x0e;
	}
	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_record_basic_inf(FRAME_UPLINK  *uplinkdatas2)
{

	UCHAR data_len;

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

	assert(data_len>=8);

	atj2180_record_Inf.Remaining_Time[0]	=uplinkdatas2->FRAME_DATAS[0];
	atj2180_record_Inf.Remaining_Time[1]	=uplinkdatas2->FRAME_DATAS[1];
	atj2180_record_Inf.Remaining_Time[2]	=uplinkdatas2->FRAME_DATAS[2];
	atj2180_record_Inf.Recorded_Files	    	=uplinkdatas2->FRAME_DATAS[3];
	atj2180_record_Inf.Bit_rate[0]	    	   	=uplinkdatas2->FRAME_DATAS[4];
	atj2180_record_Inf.Bit_rate[1]	    	   	=uplinkdatas2->FRAME_DATAS[5];
	atj2180_record_Inf.Bit_rate[2]	    	   	=uplinkdatas2->FRAME_DATAS[6];
	atj2180_record_Inf.File_Type   	   	=uplinkdatas2->FRAME_DATAS[7];

	atj2180_record_Inf.File_Name_len=data_len-8;

	memcpy(atj2180_record_Inf.File_Name, &(uplinkdatas2->FRAME_DATAS[8]), data_len-8);

}

/****************************************************************************************/
/*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_record_save(FRAME_UPLINK  *uplinkdatas2)
{
	memset(&atj2180_record_save, 0, sizeof(atj2180_record_save));
	atj2180_record_save.result=uplinkdatas2->FRAME_DATAS[0];
}


/****************************************************************************************/
/*Project name  : Ginwave mp3 development                                           */
/*Process name  : Mp3 API		    	                                            	*/
/*Function name : Mp3 Make_upFRAME				 			                    	        */
/*Outline	    :			*/
/*Function      : Upon completion, the mp3 Make_upFRAME      */
/*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 UCHAR Make_upFRAME(UCHAR Device_ID ,UCHAR *buffer_updata)
{
   unsigned char  acknowledge = 0;
  
   acknowledge= MP3_IIC_Readframe(Device_ID,buffer_updata);
   printf("MP3 R %x\n",acknowledge);
   return(acknowledge == IIC_FRAMEOK );
}




/****************************************************************************************/
/*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 UCHAR ATj2180_analyze_idle(FRAME_UPLINK  *uplinkdatas1)
{
	return(uplinkdatas1->FRAME_Dtype);
}



/****************************************************************************************/
/*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  ATj2180_analyze_datas(FRAME_UPLINK  *uplinkdatas1)
{

	assert(uplinkdatas1->FRAME_CMD == atj2180_frame_cmd_old);

	switch(uplinkdatas1->FRAME_CMD)
	{
	case QUERY_CMD_state : 
		deal_state_inf(uplinkdatas1);
		break;
	case QUERY_CMD_volume :
		deal_volume_inf(uplinkdatas1);
		break;
	case QUERY_CMD_circle_mode  :
		deal_circle_mode_inf(uplinkdatas1);
		break;
	case QUERY_music_init_inf:
		deal_music_init_inf(uplinkdatas1);
		break;
	case QUERY_music_basic_inf  :
		deal_music_basic_inf(uplinkdatas1);
		break;
	case QUERY_music_ID3  :
		deal_music_ID3(uplinkdatas1);
		break;
	case QUERY_music_Tune : 
		deal_music_Tune(uplinkdatas1);
		break;
	case QUERY_ring_init_Inf : 
		deal_ring_init_inf(uplinkdatas1);
		break;		
	case QUERY_ring_basic_Inf : 
		 deal_ring_basic_inf(uplinkdatas1);
		break;
	case QUERY_voice_init_inf : 
		deal_voice_init_inf(uplinkdatas1);
		break;		
	case QUERY_voice_basic_Inf : 
		 deal_voice_basic_inf(uplinkdatas1);
		break;
	case QUERY_record_basic_Inf : 
		 deal_record_basic_inf(uplinkdatas1);
		break;		
	case QUERY_record_save :
		 deal_record_save(uplinkdatas1);
		break;	 			
	default:	
		break;
	}
}

/****************************************************************************************/
/*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 UCHAR ATj2180_analyze_error(FRAME_UPLINK  *uplinkdatas1)
{
	return(uplinkdatas1->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 UCHAR ATj2180_analyze_busy(FRAME_UPLINK  *uplinkdatas1)
{
	return(uplinkdatas1->FRAME_Dtype);
}


/****************************************************************************************/
/*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 UCHAR ATj2180_analyze_physical_protocol (UCHAR *buffer_updata,FRAME_UPLINK  *uplinkdatas)
{
	unsigned char count=0;
	unsigned char data_len;
	uplinkdatas->FRAME_LEN =  * buffer_updata;
	data_len =  (* buffer_updata)-2;   //datas' number=frame length-cmd length-Dtype length
	buffer_updata++;

	uplinkdatas->FRAME_Dtype =  * buffer_updata;
	buffer_updata++;


	switch( uplinkdatas->FRAME_Dtype)
	{
		case ATJ2180_IDLE:
			break;
		case ATJ2180_DATA:
			uplinkdatas->FRAME_CMD =  * buffer_updata;
			buffer_updata++;

			for(count=0;count< data_len;count++)
			{
				uplinkdatas->FRAME_DATAS[count] = * buffer_updata;	
				buffer_updata++;
			}
			break;			
		case ATJ2180_ERROR:
			uplinkdatas->FRAME_CMD =  * buffer_updata;
			buffer_updata++;
			uplinkdatas->FRAME_DATAS[count] = * buffer_updata;	
			buffer_updata++;
			break;			
		case ATJ2180_BUSY:
			uplinkdatas->FRAME_CMD =  * buffer_updata;
			buffer_updata++;
			break;			
		default:
			break;
	}
	uplinkdatas->FRAME_CHECK= * buffer_updata;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -