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

📄 m803xxint.c

📁 m80320 VoIP DSP驱动源码
💻 C
📖 第 1 页 / 共 5 页
字号:
                                if(PortPtr->rx_cmd_fifo[0] == 0)
                                {
                                    if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port %d Voice Channel Disable Ok!\n", PortNo);

                                    PortPtr->Active = LFXS_DOWN;
                                    PortPtr->VAD = PortPtr->ExpectServiceType;
                                    PortPtr->OldActiveStatus = LFXS_DOWN;
                                    PortPtr->OldServiceType = PortPtr->ExpectServiceType;
                                    if(PortPtr->status == WaitIdleStatus)
                                        PortPtr->status = IdleStatus;
                                    if(PortPtr->status == CIDWaitIdleStatus)
                                        PortPtr->status = CIDIdleStatus;
                                    PortPtr->callingFialedCnt = 0;

                                    #ifdef DEBUG
                                        totalDown ++;
                                        DownCount2 ++;
                                    #endif
                                    
                                    /*Added by ZhengQishan, 有时由于M80320的API接口不能正确返回命令执行状态,
                                    造成软件状态不能切换,所以呼叫结束时先将状态恢复到缺省值
                                    setPortDefaultArg(PortNo);
                                    InitOpenChanQueue(PortNo);*/
                                    
                                    ChannelOperateCount[PortNo].SelfDisablechannelSucceedCount++;
                                    ChannelWorkStatus[PortNo] = LFXS_DOWN;
                                }
                                else
                                {
                                    VoIP_CALL_PRINTF("Port %d Voice Channel Disable Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);

                                    #if M803xx_DEBUG
                                        ClosechannelFail ++;
                                    #endif

                                    ChannelOperateCount[PortNo].SelfDisablechannelFailureCount++;

                                    PortPtr->Active = PortPtr->OldActiveStatus;
                                    PortPtr->VAD = PortPtr->OldServiceType;

                                    ChannelWorkStatus[PortNo] = LFXS_DOWN;
                                }
                            }
                            #if 1 /*Added by ZhengQishan */
                            else if( (PortPtr->OldActiveStatus == LFXS_UP)&& (PortPtr->ExpectActiveStatus == LFXS_UP))
                            {
                                if(M80320_Debug[PortNo] == 1)
                                    M80320_PRINTF("up to up! FIFO Value = 0x%x\n", PortPtr->rx_cmd_fifo[0]);
                                if(PortPtr->rx_cmd_fifo[0] == 0)
                                {
                                    if(M803xx_Open_Channel_Flag[PortNo] == 1)
                                    {
                                        PortPtr->status = TalkStatus;
                                        if(M803xx_Stop_PciReq[PortNo] == 1)
                                        {
                                            M803xx_Stop_PciReq[PortNo] = 0;
                                            rxBufAddrH = ((UINT32)((UINT8 *)PciReadBuf[m_port[PortNo].Channel]+PACKET_START_SIZE)) >> 16;
                                            rxBufAddrL = ((UINT32)((UINT8 *)PciReadBuf[m_port[PortNo].Channel]+PACKET_START_SIZE)) & 0x0000ffff;
                                            
                                            QueueTxBoxMsg(CMD_PCIREQ, 0x400, rxBufAddrH, rxBufAddrL, PortNo);
                                        }
                                    }
                                    PortPtr->Active = LFXS_UP;
                                    PortPtr->OldActiveStatus = LFXS_UP;
                                    
                                    /*2006-3-22 11:06 modified by ZhengQishan*/
                                    PortPtr->VAD = PortPtr->ExpectServiceType;
                                    PortPtr->OldServiceType = PortPtr->ExpectServiceType;

                                    ChannelWorkStatus[PortNo] = LFXS_UP;
                                }

                                else
                                {
                                    if(M80320_Debug[PortNo] == 1)
                                        M80320_PRINTF("Port %d switch from Voice Channel to fax channel Failure, %d!\n",
                                    PortNo, PortPtr->rx_cmd_fifo[0]);

                                    PortPtr->Active = PortPtr->OldActiveStatus;
                                    PortPtr->VAD = PortPtr->OldServiceType;

                                    ChannelWorkStatus[PortNo] = LFXS_UP;
                                }

                            }

                            #else
                            else if( (PortPtr->OldActiveStatus == LFXS_UP)
                                    && (PortPtr->ExpectActiveStatus == LFXS_UP)
                                    && (PortPtr->OldServiceType == Voice)
                                    && (PortPtr->ExpectServiceType == Fax) )
                            {
                                if(PortPtr->rx_cmd_fifo[0] == 0)
                                {
                                    if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port %d Switch From Voice Channel To Fax Channel Ok!\n", PortNo);

                                    PortPtr->Active = LFXS_UP;
                                    PortPtr->VAD = Fax;
                                    PortPtr->OldActiveStatus = LFXS_UP;
                                    PortPtr->OldServiceType = Fax;

                                    ChannelWorkStatus[PortNo] = LFXS_UP;

                                    #ifdef DEBUG
                                    totalUp ++;
                                    UpCount2 ++;
                                    #endif
                                }
                                else
                                {
                                   if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port %d switch from Voice Channel to fax channel Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);

                                    PortPtr->Active = PortPtr->OldActiveStatus;
                                    PortPtr->VAD = PortPtr->OldServiceType;

                                    ChannelWorkStatus[PortNo] = LFXS_UP;
                                }
                            }
                            else if( (PortPtr->OldActiveStatus == LFXS_UP)
                                    && (PortPtr->ExpectActiveStatus == LFXS_UP)
                                    && (PortPtr->OldServiceType == Fax)
                                    && (PortPtr->ExpectServiceType == Voice) )
                            {
                                if(PortPtr->rx_cmd_fifo[0] == 0)
                                {
                                    if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port %d Switch From Fax Channel To Voice Channel Ok!\n", PortNo);

                                    PortPtr->Active = LFXS_UP;
                                    PortPtr->VAD = Voice;
                                    PortPtr->OldActiveStatus = LFXS_UP;
                                    PortPtr->OldServiceType = Voice;

                                    ChannelWorkStatus[PortNo] = LFXS_UP;

                                    #ifdef DEBUG
                                    totalUp ++;
                                    UpCount3 ++;
                                    #endif
                                }
                                else
                                {
                                    if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port %d switch from fax channel to Voice Channel Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);

                                    PortPtr->Active = PortPtr->OldActiveStatus;
                                    PortPtr->VAD = PortPtr->OldServiceType;

                                    ChannelWorkStatus[PortNo] = LFXS_UP;
                                }
                            }
                            #endif
                            else
                            {
                                PortPtr->Active = LFXS_DOWN;
                                PortPtr->VAD = Voice;
                                PortPtr->OldActiveStatus = LFXS_DOWN;
                                PortPtr->OldServiceType = Voice;

                                #ifdef DEBUG
                                    totalDown ++;
                                    DownCount2 ++;
                                #endif

                                ChannelOperateCount[PortNo].SelfDisablechannelSucceedCount++;
                                ChannelWorkStatus[PortNo] = LFXS_DOWN;
                            }
                            semGive(M803xxQueueSem[PortNo/8]);
#endif
                            break;

                        case FUN_ECHOCAN:
                            Command_Ack[PortNo] = 1;
                            if(PortPtr->rx_cmd_fifo[0] == 0)
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port(%d) ECHOCAN OK\n", PortNo);
                            }
                            else
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("*****************Port %d Echo Cancel Set Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);
                            }
                            break;

                        case FUN_DTMFOPT:
                            Command_Ack[PortNo] = 1;
                            if(PortPtr->rx_cmd_fifo[0] == 0)
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port(%d) DTMFOPT OK\n", PortNo);
                            }
                            else
                            {
                               if(M80320_Debug[PortNo] == 1) M80320_PRINTF("*****************Port %d DTMF Set Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);
                            }
                            break;

                        case FUN_FAXOPT:
                            Command_Ack[PortNo] = 1;
                            if(PortPtr->rx_cmd_fifo[0] == 0)
                            {
                            }
                            else
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("**************Port %d FAX Set Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);
                            }
                            break;

                        case FUN_RPPH:
                            Command_Ack[PortNo] = 1;
                            if(PortPtr->rx_cmd_fifo[0] == 0)
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port(%d) RPPH OK\n", PortNo);
                            }
                            else
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("******************Port %d FUN_RPPH Set Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);
                            }
                            break;

                         case FUN_VINFOTMR:
                            Command_Ack[PortNo] = 1;
                            if(PortPtr->rx_cmd_fifo[0] == 0)
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port(%d) VINFOTMR OK\n", PortNo);
                            }
                            else
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("****************Port %d FUN_VINFOTMR  timer Set Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);
                            }
                            break;

                        case FUN_DGAIN:
                            Command_Ack[PortNo] = 1;
                            if(PortPtr->rx_cmd_fifo[0] == 0)
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port(%d) DGAIN OK\n", PortNo);
                            }
                            else
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("***************Port %d DGAIN Set Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);
                            }
                            break;

                        case FUN_FINFOTMR:
                            Command_Ack[PortNo] = 1;
                            if(PortPtr->rx_cmd_fifo[0] == 0)
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port(%d) FINFORMR OK\n", PortNo);
                            }
                            else
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("*****************Port %d FUN_FINFOTMR timer Set Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);
                            }
                            break;

                        case FUN_PTSET:
                            Command_Ack[PortNo] = 1;
                            if(PortPtr->rx_cmd_fifo[0] == 0)
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port(%d) PTSET OK\n", PortNo);
                            }
                            else
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("*****************Port %d PTSET Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);
                            }
                            break;

                        case FUN_PTMNG:
                            Command_Ack[PortNo] = 1;
                            if(PortPtr->rx_cmd_fifo[0] == 0)
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port(%d) PTMNG OK\n", PortNo);
                            }
                            else
                            {
                                printf("Port %d PTMNG Failure, %d!\n",
                                        PortNo, PortPtr->rx_cmd_fifo[0]);
                            }
                            break;

                        case FUN_DTMFDPAR:
                            Command_Ack[PortNo] = 1;
                            if(PortPtr->rx_cmd_fifo[0] == 0)
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("Port(%d) DTMFDPAR OK\n", PortNo);
                            }
                            else
                            {
                                if(M80320_Debug[PortNo] == 1)M80320_PRINTF("*****************Port %d DTMFDPAR Failure, %d!\n",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -