📄 cvmcon.cpp
字号:
{
DataInit(((ApiFpConnectIndType*)MailPtr)->bConnectionEI);
MmiState = MMI_EXT_DATA;
printf("MmiState = MMI_EXT_DATA\n");
}
else
{
MmiState = MMI_CONVERSATION;
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_OPEN_REQ, SPK_AEC_ENABLED);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_UNMUTE_REQ, 1);
printf("MmiState = MMI_CONVERSATION\n");
}
break;
case API_FP_SETUP_ACK_IND:
MmiState = MMI_CONVERSATION;
// BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_OPEN_REQ, SPK_AEC_ENABLED);
printf("->API_FP_SETUP_ACK_IND: %x\n", (((ApiFpSetupAckIndType*) MailPtr)->bConnectionEI) );
if (CallClass == CALLCLASS_EXT_DATA)
{
DataInit(((ApiFpSetupAckIndType*)MailPtr)->bConnectionEI);
MmiState = MMI_EXT_DATA;
printf("MmiState = MMI_EXT_DATA\n");
}
else
{
MmiState = MMI_CONVERSATION;
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_OPEN_REQ, SPK_AEC_ENABLED);
//SS BUSM_SendMailP2(0, USER_TASK, CVM_FP_AUDIO_START_TONE_REQ, 0x11/*TONE_DIAL_ID*/, 9);
printf("MmiState = MMI_CONVERSATION (IntCall)\n");
}
break;
case API_FP_ALERT_IND:
printf("->API_FP_ALERT_IND\n");
break;
case API_FP_RELEASE_IND:
BUSM_SendMailP1(0, USER_TASK, API_FP_RELEASE_RES, ConnectionEI);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_MELODY_REQ, 0);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_TONE_REQ, 0);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_CLOSE_REQ, SPK_AEC_ENABLED);
MmiState = MMI_STANDBY;
printf("->API_FP_RELEASE_IND: %x\n<-API_FP_RELEASE_RES\nMmiState = MMI_STANDBY\n", (((ApiFpReleaseIndType*) MailPtr)->bConnectionEI) );
break;
case API_FP_REJECT_IND:
MmiState = MMI_STANDBY;
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_MELODY_REQ, 0);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_TONE_REQ, 0);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_CLOSE_REQ, SPK_AEC_ENABLED);
printf("->API_FP_REJECT_IND: %x\nMmiState = MMI_STANDBY\n", (((ApiFpRejectIndType*) MailPtr)->bConnectionEI) );
break;
}
break;
/**************************************************************
* MMI_ALERTING
**************************************************************/
case MMI_ALERTING:
switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
{
case KEY_MESSAGE:
switch(((recDataType*) MailPtr)->bData[0])
{
case 'u': // hook key
case 'i': // int key
case 'H': // high speed data call
BUSM_SendMailP1(0, USER_TASK, API_FP_CONNECT_REQ, ConnectionEI);
printf("<-API_FP_CONNECT_REQ\n");
break;
case 'o': // PP MMI rejects incoming call
BUSM_SendMailP2(0, USER_TASK, API_FP_REJECT_REQ, ConnectionEI, 0);
printf("->API_FP_REJECT_IND\nMmiState = MMI_STANDBY\n");
MmiState = MMI_STANDBY;
break;
}
break;
case API_FP_ALERT_ON_IND:
BUSM_SendMailP3(0, USER_TASK, CVM_FP_AUDIO_START_MELODY_REQ, 1, 9, 0);
printf("->API_FP_ALERT_ON_IND: %x, %x\n",
(((ApiFpAlertOnOffType*) MailPtr)->bConnectionEI),
(((ApiFpAlertOnOffType*) MailPtr)->bSignal) );
break;
case API_FP_ALERT_OFF_IND:
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_MELODY_REQ, 0);
printf("->API_FP_ALERT_OFF_IND: %x\n",
(((ApiFpAlertOnOffType*) MailPtr)->bConnectionEI),
(((ApiFpAlertOnOffType*) MailPtr)->bSignal) );
break;
case API_FP_ALERT_IND:
printf("->API_FP_ALERT_IND\n");
break;
case API_FP_CONNECT_CFM: // SSNEW
printf("->API_FP_CONNECT_CFM: %x\n", (((ApiFpConnectCfmType*) MailPtr)->bConnectionEI) );
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_MELODY_REQ, 0);
switch(CallClass)
{
case CALLCLASS_EXT_DATA:
DataInit(((ApiFpConnectCfmType*)MailPtr)->bConnectionEI);
MmiState = MMI_EXT_DATA;
printf("MmiState = MMI_EXT_DATA\n");
break;
case CALLCLASS__EXT:
case CALLCLASS__INT:
case CALLCLASS_EMERGENCY:
case CALLCLASS_EXTHANDOVER:
MmiState = MMI_CONVERSATION;
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_OPEN_REQ, SPK_AEC_ENABLED);
printf("MmiState = MMI_CONVERSATION\n");
break;
default: // CALLCLASS_SERVICE, CALLCLASS_INT_DATA
break;
}
break;
case API_FP_RELEASE_IND:
BUSM_SendMailP1(0, USER_TASK, API_FP_RELEASE_RES, ConnectionEI);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_MELODY_REQ, 0);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_TONE_REQ, 0);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_CLOSE_REQ, SPK_AEC_ENABLED);
MmiState = MMI_STANDBY;
printf("->API_FP_RELEASE_IND: %x\n<-API_FP_RELEASE_RES\nMmiState = MMI_STANDBY\n", (((ApiFpReleaseIndType*) MailPtr)->bConnectionEI) );
break;
case API_FP_REJECT_IND:
MmiState = MMI_STANDBY;
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_MELODY_REQ, 0);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_TONE_REQ, 0);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_CLOSE_REQ, SPK_AEC_ENABLED);
printf("->API_FP_REJECT_IND: %x\nMmiState = MMI_STANDBY\n", (((ApiFpRejectIndType*) MailPtr)->bConnectionEI) );
break;
}
break;
/**************************************************************
* MMI_CONVERSATION
**************************************************************/
case MMI_CONVERSATION:
switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
{
case KEY_MESSAGE:
switch(((recDataType*) MailPtr)->bData[0])
{
case 'o': // hook on
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_CLOSE_REQ, SPK_AEC_ENABLED);
BUSM_SendMailP2(0, USER_TASK, API_FP_RELEASE_REQ, ConnectionEI, 0); // no reason
MmiState = MMI_WAIT_RELEASE;
printf("<-API_FP_RELEASE_REQ\nMmiState = MMI_WAIT_RELEASE\n");
break;
case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9': case '0':
case '*': case '#':
BUSM_SendMailP3(0, USER_TASK, API_FP_KEYPAD_REQ, ConnectionEI, 1, ((recDataType*) MailPtr)->bData[0]);
printf("<-API_FP_MULTIKEYPAD_REQ (%c)\n", ((recDataType*) MailPtr)->bData[0]);
break;
case 'r':
BUSM_SendMailP3(0, USER_TASK, API_FP_KEYPAD_REQ, ConnectionEI, 1, 0x15);
printf("<-API_FP_KEYPAD_REQ (Flash)\n");
break;
case 'i':
BUSM_SendMailP3(0, USER_TASK, API_FP_KEYPAD_REQ, ConnectionEI, 1, 0x17);
printf("<-API_FP_KEYPAD_REQ (Int)\n");
break;
case 'v':
if(AudioVol< DSP_NUMBER_OF_VOL_STEPS-1)
{
AudioVol++;
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_SET_VOLUME_REQ, AudioVol);
printf("<-CVM_FP_AUDIO_SET_VOLUME_REQ: (+)%x\n", AudioVol);
}
break;
case 'V':
if(AudioVol)
{
AudioVol--;
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_SET_VOLUME_REQ, AudioVol);
printf("<-CVM_FP_AUDIO_SET_VOLUME_REQ: (-)%x\n", AudioVol);
}
break;
case 'd': // data send test iwu to PP
{
ApiFpIwuDataReqType * NewMailPtr;
NewMailPtr = (ApiFpIwuDataReqType*) BUSM_AllocateMail(0, USER_TASK, (sizeof(ApiFpIwuDataReqType)+3));
if(NewMailPtr != NULL)
{
NewMailPtr->PrimitiveIdentifier = API_FP_IWU_DATA_REQ;
NewMailPtr->bConnectionEI = ConnectionEI;
NewMailPtr->bDataLength = 4; // NoOfBytes to send
NewMailPtr->bData[0] = 0x55;
NewMailPtr->bData[1] = 0x66;
NewMailPtr->bData[2] = 0x77;
NewMailPtr->bData[3] = 0x88;
BUSM_DeliverMail((uint8*) NewMailPtr);
printf("<-API_FP_IWU_DATA_REQ (IWU_IWU_USER_DEFINED)\n");
}
}
break;
case 'j': // mute mic
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_MUTE_REQ, 0);
break;
case 'J': // unmute mic
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_UNMUTE_REQ, 0);
break;
case 'n': // StartTone
BUSM_SendMailP2(0, USER_TASK, CVM_FP_AUDIO_START_TONE_REQ, 13, 9);
break;
case 'N': // StopTone
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_TONE_REQ, 0);
break;
// case KEY_CTRL_A:
// SendSwCtrlCmdP0( CVM_SW_CMD_HOLD_ANSWER);
// break;
// case KEY_CTRL_S:
// SendSwCtrlCmdP0( CVM_SW_CMD_SWAP_HOLD);
// break;
// case KEY_CTRL_C:
// SendSwCtrlCmdP0( CVM_SW_CMD_CONF_WITH_HOLD);
// break;
// case KEY_CTRL_R:
// SendSwCtrlCmdP0( CVM_SW_CMD_RESUME_HOLD);
// break;
}
break;
case API_FP_CONNECT_IND:
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_UNMUTE_REQ, 1);
break;
case API_FP_SIGNAL_ON_IND:
/**************************************
* DIAL_TONE_ON = 0x00,
* RINGBACK_TONE_ON = 0x01,
* INTERCEPT_TONE_ON = 0x02,
* NETWORK_CONGESTION_TONE_ON = 0x03,
* BUSY_TONE_ON = 0x04,
* CONFIRM_TONE_ON = 0x05,
* ANSWER_TONE_ON = 0x06,
* CALL_WAITING_TONE_ON = 0x07,
* TONES_OFF = 0x3F,
* ALERTING_ON_PATTERN0 = 0x40,
* ALERTING_ON_PATTERN1 = 0x41,
* ALERTING_ON_PATTERN2 = 0x42,
* ALERTING_ON_PATTERN3 = 0x43,
* ALERTING_ON_PATTERN4 = 0x44,
* ALERTING_ON_PATTERN5 = 0x45,
* ALERTING_ON_PATTERN6 = 0x46,
* ALERTING_ON_PATTERN7 = 0x47,
* ALERTING_ON_CONTINUOUS = 0x48,
* ALERTING_OFF = 0x4F
**************************************/
printf("->@API_FP_SIGNAL_ON_IND: %x\n", ((ApiFpSignalOnOffReqType*) MailPtr)->bSignal);
switch(((ApiFpSignalOnOffReqType*) MailPtr)->bSignal)
{
case 0x00: // DIAL_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_FP_AUDIO_START_TONE_REQ, 0x11/*TONE_DIAL_ID*/, 9);
break;
case 0x01: // RINGBACK_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_FP_AUDIO_START_TONE_REQ, 0x0F/*TONE_RING_BACK_ID*/, 9);
break;
case 0x02: // INTERCEPT_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_FP_AUDIO_START_TONE_REQ, 0x13/*TONE_CALL_WAITING_ID*/, 9);
break;
case 0x03: // NETWORK_CONGESTION_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_FP_AUDIO_START_TONE_REQ, 0x10/*TONE_NETWORD_CONGESTIONS_ID*/, 9);
break;
case 0x04: // BUSY_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_FP_AUDIO_START_TONE_REQ, 0x12/*TONE_BUSY_ID*/, 9);
break;
case 0x07: // CALL_WAITING_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_FP_AUDIO_START_TONE_REQ, 0x13/*TONE_CALL_WAITING_ID*/, 9);
break;
}
break;
case API_FP_SIGNAL_OFF_IND:
printf("->API_FP_SIGNAL_OFF_IND: %x\n", ((recDataType*) MailPtr)->bData[0]);
BUSM_SendMailP1(0, USER_TASK, CVM_FP_AUDIO_STOP_TONE_REQ, 0);
break;
// case API_FP_CALL_PROCEEDING_IND:
// printf("->API_FP_CALL_PROCEEDING_IND\n");
// break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -