📄 cvmcon.cpp
字号:
break;
case 'I': // intercom service call hook off
BUSM_SendMailP1(0, USER_TASK, API_PP_SETUP_REQ, 2/*callclass=SERVICE*/);
MmiCallClass = 2;/*callclass=SERVICE*/ // store callclass for later switching
MmiState = MMI_WAIT_SETUP;
printf("<-MMI_WAIT_SETUP(SERVICE)\nMmiState = MMI_WAIT_SETUP\n");
break;
case 'H':
MmiCallClass = 5;/*callclass=EXT_DATA*/ // store callclass for later switching
BUSM_SendMailP2(0, USER_TASK, API_PP_SETUP_REQ, MmiCallClass, 0);
MmiState = MMI_WAIT_SETUP;
printf("<-MMI_WAIT_SETUP(CALLCLASS_EXT_DATA)\nMmiState = MMI_WAIT_SETUP\n");
break;
case '.': // start PP local un-subscription
{
BUSM_SendMailP1(0, USER_TASK, API_PP_DELETE_SUBS_REQ, 0x01/*PpNo1*/);
printf("<-API_PP_DELETE_SUBS_REQ (PpNo#1)\n");
}
break;
}
break;
case API_PP_ALERT_BROADCAST_IND:
/********************************************************
* uint8 bRingPattern:
* CBI__ALERTING_ON__PATTERN_0 = 0x00, // INT
* CBI__ALERTING_ON__PATTERN_1 = 0x01, // EXT
* CBI__ALERTING_ON__PATTERN_2 = 0x02,
* CBI__ALERTING_ON__PATTERN_3 = 0x03,
* CBI__ALERTING_ON__PATTERN_4 = 0x04,
* CBI__ALERTING_ON__PATTERN_5 = 0x05,
* CBI__ALERTING_ON__PATTERN_6 = 0x06, // BASEPAGE
* CBI__ALERTING_ON__PATTERN_7 = 0x07,
* CBI__ALERTING_ON__CONTINUOUS = 0x08,
* CBI__INCOMMING_CALL_RELEASED_BY_THE_FP = 0x0A,
* CBI__INCOMMING_CALL_HAS_BEEN_ANSWERED = 0x0B,
* CBI__ALERTING_OFF = 0x0F
*********************************************************/
switch(((recDataType*) MailPtr)->bData[0])
{
// alert off
case 0x0A: //CBI__INCOMMING_CALL_RELEASED_BY_THE_FP:
case 0x0B: //CBI__INCOMMING_CALL_HAS_BEEN_ANSWERED:
case 0x0F: //CBI__ALERTING_OFF:
printf("->ALERT_BROADCAST: API_PP_ALERT_ON_IND (OFF): %x\n", ((recDataType*) MailPtr)->bData[0]);
break;
// alert on
default:
printf("->ALERT_BROADCAST: API_PP_ALERT_ON_IND (ON): %x\n", ((recDataType*) MailPtr)->bData[0]);
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_KEY_BEEP_REQ, 9); // use keybeep tone for page-beep
break;
}
break;
case API_PP_SETUP_IND:
MmiCallClass = (((ApiPpSetupIndType*) MailPtr)->bCallClass); // store callclass for later switching
BUSM_SendMailP0(0, USER_TASK, API_PP_ALERT_REQ);
MmiState = MMI_ALERTING;
if(MmiCallClass != 2/*callclass=SERVICE*/ && MmiCallClass != 5/*callclass=EXT_DATA*/)
{
BUSM_SendMailP3(0, USER_TASK, CVM_PP_AUDIO_START_MELODY_REQ, 1, 9, 0);
}
printf("->API_PP_SETUP_IND: %x, %x\nMmiState = MMI_ALERTING\n",
(((ApiPpSetupIndType*) MailPtr)->bCallClass),
(((ApiPpSetupIndType*) MailPtr)->bSignal) );
break;
}
break;
/**************************************************************
* MMI_WAIT_SETUP
**************************************************************/
case MMI_WAIT_SETUP:
switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
{
case KEY_MESSAGE:
switch(((recDataType*) MailPtr)->bData[0])
{
case 'o': // PP MMI rejects incoming call
BUSM_SendMailP1(0, USER_TASK, API_PP_RELEASE_REQ, 0); // no reason
MmiState = MMI_WAIT_RELEASE;
printf("<-API_PP_RELEASE_REQ\nMmiState = MMI_WAIT_RELEASE\n");
break;
}
break;
case API_PP_CONNECT_IND:
if(MmiCallClass == 2/*callclass=SERVICE*/)
{
MmiState = MMI_SERVICE_CALL;
printf("->API_PP_CONNECT_IND\nMmiState = MMI_SERVICE_CALL\n");
}
else if (MmiCallClass == 5/*callclass=EXT_DATA*/)
{
printf("->API_PP_CONNECT_IND\nMmiState = MMI_EXT_DATA\n");
MmiState = MMI_EXT_DATA;
DataInit();
}
else
{
MmiState = MMI_CONVERSATION;
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_REQ);
printf("->API_PP_CONNECT_IND\nMmiState = MMI_CONVERSATION\n");
}
break;
case API_PP_SETUP_ACK_IND:
if(MmiCallClass == 2/*callclass=SERVICE*/)
{
MmiState = MMI_SERVICE_CALL;
printf("->API_PP_SETUP_ACK_IND\nMmiState = MMI_SERVICE_CALL (IntCall)\n");
}
else if (MmiCallClass == 5/*callclass=EXT_DATA*/)
{
MmiState = MMI_EXT_DATA;
printf("->API_PP_SETUP_ACK_IND\nMmiState = MMI_EXT_DATA\n");
DataInit();
}
else
{
MmiState = MMI_CONVERSATION;
// BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_REQ);
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_ADPCM_OFF_REQ);
printf("->API_PP_SETUP_ACK_IND\nMmiState = MMI_CONVERSATION (IntCall)\n");
}
break;
case API_PP_RELEASE_IND:
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
BUSM_SendMailP0(0, USER_TASK, API_PP_RELEASE_RES);
MmiState = MMI_STANDBY;
printf("->API_PP_RELEASE_IND\nMmiState = MMI_STANDBY\n");
break;
case API_PP_REJECT_IND:
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
MmiState = MMI_STANDBY;
printf("->API_PP_REJECT_IND\nMmiState = MMI_STANDBY\n");
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
BUSM_SendMailP0(0, USER_TASK, API_PP_CONNECT_REQ);
printf("<-API_PP_CONNECT_REQ\n");
break;
case 'o': // PP MMI rejects incoming call
BUSM_SendMailP1(0, USER_TASK, API_PP_REJECT_REQ, 0); // no reason
MmiState = MMI_STANDBY;
printf("->API_PP_REJECT_REQ\nMmiState = MMI_STANDBY\n");
break;
}
break;
case API_PP_ALERT_ON_IND:
printf("->API_PP_ALERT_ON_IND: %x\n", ((recDataType*) MailPtr)->bData[0]);
BUSM_SendMailP3(0, USER_TASK, CVM_PP_AUDIO_START_MELODY_REQ, 1, 9, 0);
break;
case API_PP_ALERT_OFF_IND:
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_MELODY_REQ, 0);
printf("->API_PP_ALERT_OFF_IND: %x\n", ((recDataType*) MailPtr)->bData[0]);
break;
case API_PP_CONNECT_CFM:
if (MmiCallClass == 5/*callclass=EXT_DATA*/)
{
MmiState = MMI_EXT_DATA;
printf("->API_PP_CONNECT_CFM\nMmiState = MMI_EXT_DATA\n");
DataInit();
}
else
{
MmiState = MMI_CONVERSATION;
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_MELODY_REQ, 0);
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_REQ);
printf("->API_PP_CONNECT_CFM\nMmiState = MMI_CONVERSATION\n");
}
break;
case API_PP_RELEASE_IND:
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_MELODY_REQ, 0);
BUSM_SendMailP0(0, USER_TASK, API_PP_RELEASE_RES);
MmiState = MMI_STANDBY;
printf("->API_PP_RELEASE_IND\nMmiState = MMI_STANDBY\n");
break;
case API_PP_REJECT_IND:
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_MELODY_REQ, 0);
MmiState = MMI_STANDBY;
printf("->API_PP_REJECT_IND\nMmiState = MMI_STANDBY\n");
break;
}
break;
/**************************************************************
* MMI_CONVERSATION
**************************************************************/
case MMI_CONVERSATION:
switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
{
case KEY_MESSAGE:
switch(((recDataType*) MailPtr)->bData[0])
{
case 'o': // hook on
MmiState = MMI_WAIT_RELEASE;
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
BUSM_SendMailP1(0, USER_TASK, API_PP_RELEASE_REQ, 0); // no reason
printf("<-API_PP_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_SendMailP2(0, USER_TASK, API_PP_KEYPAD_REQ, 1, ((recDataType*) MailPtr)->bData[0]);
printf("<-API_PP_KEYPAD_REQ (%c)\n", ((recDataType*) MailPtr)->bData[0]);
break;
case 'r':
BUSM_SendMailP2(0, USER_TASK, API_PP_KEYPAD_REQ, 1, 0x15);
printf("<-API_PP_KEYPAD_REQ (Flash)\n");
break;
case 'R':
BUSM_SendMailP2(0, USER_TASK, API_PP_KEYPAD_REQ, 1, 0x05);
printf("<-API_PP_KEYPAD_REQ (KEYPAD_PAUSE)\n");
break;
case '_':
BUSM_SendMailP2(0, USER_TASK, API_PP_KEYPAD_REQ, 1, 0x16);
printf("<-API_PP_KEYPAD_REQ (KEYPAD_GOTO_INFINTE_DTMF)\n");
break;
case '-':
BUSM_SendMailP2(0, USER_TASK, API_PP_KEYPAD_REQ, 1, 0x14);
printf("<-API_PP_KEYPAD_REQ (KEYPAD_GOTO_DTMF)\n");
break;
case 'i':
BUSM_SendMailP2(0, USER_TASK, API_PP_KEYPAD_REQ, 1, 0x17);
printf("<-API_PP_KEYPAD_REQ (Int)\n");
break;
case 'v':
if(AudioVol< DSP_NUMBER_OF_VOL_STEPS-1)
{
AudioVol++;
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_SET_VOLUME_REQ, AudioVol);
printf("<-CVM_PP_AUDIO_SET_VOLUME_REQ: (+)%x\n", AudioVol);
}
break;
case 'V':
if(AudioVol)
{
AudioVol--;
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_SET_VOLUME_REQ, AudioVol);
printf("<-CVM_PP_AUDIO_SET_VOLUME_REQ: (-)%x\n", AudioVol);
}
break;
case 'p': // enable headset
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_HS_PLUG_IND, 1);
break;
case 'P': // disable headset
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_HS_PLUG_IND, 0);
break;
case 'f': // enable handsfree mode
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_HANDSFREE_REQ);
break;
case 'F': // disable handsfree mode
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_HANDSFREE_REQ);
break;
case 'j': // mute mic
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_MUTE_MIC_REQ);
break;
case 'J': // unmute mic
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_UNMUTE_MIC_REQ);
break;
case 'd': // data send test iwu to FP (12 34 56 78)
{
ApiPpIwuDataReqType * NewMailPtr;
NewMailPtr = (ApiPpIwuDataReqType*) BUSM_AllocateMail(0, USER_TASK, (sizeof(ApiPpIwuDataReqType)+3));
if(NewMailPtr != NULL)
{
NewMailPtr->PrimitiveIdentifier = API_PP_IWU_DATA_REQ;
NewMailPtr->bDataLength = 4;
NewMailPtr->bData[0] = 0x11;
NewMailPtr->bData[1] = 0x22;
NewMailPtr->bData[2] = 0x33;
NewMailPtr->bData[3] = 0x44;
BUSM_DeliverMail((uint8*) NewMailPtr);
printf("<-API_PP_IWU_DATA_REQ (IWU_IWU_USER_DEFINED)\n");
}
}
break;
case ':': // start FP remote un-subscription
case '/': // start FP remote un-subscription
{
BUSM_SendMailP1(0, USER_TASK, API_PP_REMOTE_DELETE_SUBS_REQ, 0x01/*PpNo1*/);
printf("<-API_PP_REMOTE_DELETE_SUBS_REQ (PpNo#1)\n");
}
break;
case '(': // start FP remote un-subscription
{
BUSM_SendMailP1(0, USER_TASK, API_PP_REMOTE_DELETE_SUBS_REQ, 0x02/*PpNo2*/);
printf("<-API_PP_REMOTE_DELETE_SUBS_REQ (PpNo#2)\n");
}
break;
case ')': // start FP remote un-subscription
{
BUSM_SendMailP1(0, USER_TASK, API_PP_REMOTE_DELETE_SUBS_REQ, 0x03/*PpNo3*/);
printf("<-API_PP_REMOTE_DELETE_SUBS_REQ (PpNo#3)\n");
}
break;
case '=': // start FP remote un-subscription
{
BUSM_SendMailP1(0, USER_TASK, API_PP_REMOTE_DELETE_SUBS_REQ, 0x04/*PpNo4*/);
printf("<-API_PP_REMOTE_DELETE_SUBS_REQ (PpNo#4\n");
}
break;
case KEY_CTRL_A:
SendSwCtrlCmdP0( CVM_SW_CMD_HOLD_ANSWER);
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -