?? mp3_atj2180.c
字號(hào):
/****************************************************************************************/
/*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;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -