📄 cvmcon.cpp
字号:
case KEY_CTRL_S:
printf("\nCTRL+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;
case KEY_CTRL_U:
// hold/release with timeout = 60s
SendSwCtrlCmdP2( CVM_SW_CMD_HOLD_RELEASE_SPECIAL , 0x00, 0x06);
break;
}
break;
case API_PP_CONNECT_IND:
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_REQ); // new
printf("->API_PP_CONNECT_IND\n");
break;
case API_PP_CALL_PROCEEDING_IND:
printf("->API_PP_CALL_PROCEEDING_IND\n");
// BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_REQ);
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
break;
case API_PP_ALERT_IND:
printf("->API_PP_ALERT_IND\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);
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
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);
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
MmiState = MMI_STANDBY;
printf("->API_PP_REJECT_IND\nMmiState = MMI_STANDBY\n");
break;
case API_PP_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_PP_SIGNAL_ON_IND: %x\n", ((recDataType*) MailPtr)->bData[0]);
switch(((recDataType*) MailPtr)->bData[0])
{
case 0x00: // DIAL_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x11/*TONE_DIAL_ID*/, 9);
break;
case 0x01: // RINGBACK_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x0F/*TONE_RING_BACK_ID*/, 9);
break;
case 0x02: // INTERCEPT_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x13/*TONE_CALL_WAITING_ID*/, 9);
break;
case 0x03: // NETWORK_CONGESTION_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x10/*TONE_NETWORD_CONGESTIONS_ID*/, 9);
break;
case 0x07: // CALL_WAITING_TONE_ON
BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x13/*TONE_CALL_WAITING_ID*/, 9);
break;
}
break;
case API_PP_SIGNAL_OFF_IND:
printf("->API_PP_SIGNAL_OFF_IND: %x\n", ((recDataType*) MailPtr)->bData[0]);
BUSM_SendMailP1(0, USER_TASK, CVM_PP_AUDIO_STOP_TONE_REQ, 0);
break;
}
break;
/**************************************************************
* MMI_WAIT_RELEASE
**************************************************************/
case MMI_WAIT_RELEASE:
lnClipTestCnt=0;
switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
{
case API_PP_RELEASE_CFM:
MmiState = MMI_STANDBY;
printf("->API_PP_RELEASE_CFM\nMmiState = MMI_STANDBY\n");
break;
}
break;
/**************************************************************
* MMI_BUSY
**************************************************************/
case MMI_BUSY:
switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
{
case KEY_MESSAGE:
switch(((recDataType*) MailPtr)->bData[0])
{
case 'x': // dummy
break;
}
break;
}
break;
/**************************************************************
* MMI_SERVICE_CALL
**************************************************************/
case MMI_SERVICE_CALL:
switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
{
case KEY_MESSAGE:
switch(((recDataType*) MailPtr)->bData[0])
{
case 'o': // hook on
BUSM_SendMailP1(0, USER_TASK, API_PP_RELEASE_REQ, 0); // no reason
MmiState = MMI_WAIT_RELEASE;
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
printf("<-API_PP_RELEASE_REQ\nMmiState = MMI_WAIT_RELEASE\n");
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;
}
break;
case API_PP_ALERT_IND:
printf("->API_PP_ALERT_IND\n");
break;
case API_PP_RELEASE_IND:
BUSM_SendMailP0(0, USER_TASK, API_PP_RELEASE_RES);
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
MmiState = MMI_STANDBY;
printf("->API_PP_RELEASE_IND\nMmiState = MMI_STANDBY\n");
break;
case API_PP_REJECT_IND:
MmiState = MMI_STANDBY;
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
printf("->API_PP_REJECT_IND\nMmiState = MMI_STANDBY\n");
break;
}
break;
/**************************************************************
* MMI_EXT_DATA
**************************************************************/
case MMI_EXT_DATA:
switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
{
case KEY_MESSAGE:
switch(((recDataType*) MailPtr)->bData[0])
{
case 'o': // hook on
BUSM_SendMailP1(0, USER_TASK, API_PP_RELEASE_REQ, 0); // no reason
MmiState = MMI_WAIT_RELEASE;
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_CLOSE_REQ);
printf("<-API_PP_RELEASE_REQ\nMmiState = MMI_WAIT_RELEASE\n");
break;
case '+':
printf("Setting HsDataTestLength to %u\n", ++HsDataTestLength);
break;
case '-':
printf("Setting HsDataTestLength to %u\n", --HsDataTestLength);
break;
case 'd': // data send test iwu to FP
DataSend(4);
break;
case 'T':
HsDataTestMode = !HsDataTestMode;
if (HsDataTestMode)
{
printf("Start data test\n");
HsDataTestTotalTxCount = 0;
HsDataTestStartTime = clock();
while (HsDataReadyIndCount)
{
DataSend(HsDataTestLength);
}
}
else
{
printf("Stop data test\n");
}
break;
}
break;
case API_PP_RELEASE_IND:
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:
MmiState = MMI_STANDBY;
printf("->API_PP_REJECT_IND\nMmiState = MMI_STANDBY\n");
break;
case API_PP_DATA_RECEIVE_IND:
HsDataTestTotalRxCount += ((ApiPpDataReceiveIndType*)MailPtr)->bLength;
printf("->API_PP_DATA_RECEIVE_IND (%u bytes %u total)\n", ((ApiPpDataReceiveIndType*)MailPtr)->bLength, HsDataTestTotalRxCount);
{
uint8 i;
for (i = 0; i < ((ApiPpDataReceiveIndType*)MailPtr)->bLength; i++)
{
if (((ApiPpDataReceiveIndType*)MailPtr)->bData[i] != HsDataTestRxCounter++)
{
printf("Data error (byte %u): Received %2.2x Expected %2.2x!\n", i,
((ApiPpDataReceiveIndType*)MailPtr)->bData[i], --HsDataTestRxCounter);
HsDataTestRxCounter = ((ApiPpDataReceiveIndType*)MailPtr)->bData[i] + 1;
}
}
}
BUSM_SendMailP0(0, USER_TASK, API_PP_DATA_RECEIVE_READY_REQ);
printf("<-API_PP_DATA_RECEIVE_READY_REQ\n");
break;
case API_PP_DATA_SEND_READY_IND:
printf("->API_PP_DATA_SEND_READY_IND\n");
HsDataReadyIndCount++;
if (HsDataTestMode)
{
DataSend(HsDataTestLength);
}
break;
}
break;
/**************************************************************
* MMI_WT_STANDBY
**************************************************************/
case MMI_WT_STANDBY:
switch(((recDataType*) MailPtr)->PrimitiveIdentifier)
{
case KEY_MESSAGE:
switch(((recDataType*) MailPtr)->bData[0])
{
case 'u': // Enter WT FP mode
case 'i': // Enter WT FP mode
printf("<-API_WT_ENTER_FP_MODE_REQ\n");
BUSM_SendMailP0(0, USER_TASK, API_WT_ENTER_FP_MODE_REQ);
break;
case 'q': // Exit WT mode
printf("<-API_WT_EXIT_REQ\n");
BUSM_SendMailP0(0, USER_TASK, API_WT_EXIT_REQ);
break;
}
break;
case API_WT_ENTER_FP_MODE_CFM:
printf("->API_WT_ENTER_FP_MODE_CFM\n");
printf("<-CVM_PP_AUDIO_OPEN_ADPCM_OFF_REQ\n");
BUSM_SendMailP0(0, USER_TASK, CVM_PP_AUDIO_OPEN_ADPCM_OFF_REQ);
printf("<-CVM_PP_AUDIO_START_TONE_REQ, 0x11 (dial tone), 9\n");
BUSM_SendMailP2(0, USER_TASK, CVM_PP_AUDIO_START_TONE_REQ, 0x11/*TONE_DIAL_ID*/, 9);
MmiState = MMI_WT_FP_MODE;
printf("MmiState = MMI_WT_FP_MODE\n");
break;
case API_WT_SETUP_IND:
printf("->API_WT_SETUP_IND, CallerID: %x\n", ((ApiWTSetupIndType*) MailPtr)->bCallerId);
printf("<-CVM_PP_AUDIO_START_MELODY_REQ, 2, 9, 0\n");
BU
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -