⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cvmcon.cpp

📁 SITEL的2.4G无线分机CVM的基站端FP参考程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
           {
             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 + -