?? mp3_atj2180.c
字號:
//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 + -