static void OpenAllDevice_Dsp(DJ_S8 s8DspModID) { int i; RetCode_t ret; DeviceID_t dev; list *current = NULL; /*add lock lock pcmlist*/ current = g_pPcmFirst; if (current == NULL) if (ldebug_flag) printstr(NULL,"g_pPcmFirst=NULL\n"); while(current != NULL) { for (i = 0; i < current->m_lDevNum; i++) { dev = current->entry[i].m_dev; if (ldebug_flag) printstr(NULL,"open dev(main=%d,sub=%d,%d, %d)\n", dev.m_s16DeviceMain, dev.m_s16DeviceSub, dev.m_s8ModuleID, dev.m_s16ChannelID); ret = XMS_ctsOpenDevice(g_acsHandle, &dev, NULL ); if (ret < 0) { if (ldebug_flag) { printstr(NULL,"open devType(%d,%d) dev(%d %d) callID(%d,%d)\n ", dev.m_s16DeviceMain, dev.m_s16DeviceSub, dev.m_s8ModuleID, dev.m_s16ChannelID); printstr(NULL,"pcm XMS_ctsOpenDevice Fail. ret=%d\n", ret); } } } current = current->next; } /*leave lock*/ /*add lock lock Linklist*/ current = g_pLinkFirst; while(current != NULL) { for (i = 0; i < current->m_lDevNum; i++) { dev = current->entry[i].m_dev; ret = XMS_ctsOpenDevice(g_acsHandle, &dev, NULL); if (ret < 0) { if (ldebug_flag) { printstr(NULL,"open devType(%d,%d) dev(%d %d) callID(%d,%d): ", dev.m_s16DeviceMain, dev.m_s16DeviceSub, dev.m_s8ModuleID, dev.m_s16ChannelID); printstr(NULL,"XMS_ctsOpenDevice Fail. ret=%d\n", ret); } } } current = current->next; } /*leave lock*/ }
//***************************************************************************** //Name : OpenDevice //Author : None //Description : Open all HiZ device, close these device in function:CloseDevice //Input : None //Output : None //Return : None //***************************************************************************** DJ_Void OpenDevice() { for (int i = 0; i < g_TotalDevRes; i++) { if (IsHizDevice(i)) { XMS_ctsOpenDevice(g_acsHandle, &g_pDevRes[i].DevID, NULL); } } }
void OpenInterfaceDevice(INTERFACE_STRUCT *pOneTrunk) { RetCode_t r; _ASSERT(pOneTrunk != NULL); r = XMS_ctsOpenDevice(g_acsHandle, &pOneTrunk->deviceID, NULL); if (r<0) { //AddMsg } return; }
void OpenPcmDevice ( PCM_STRUCT *pOnePcm ) { RetCode_t r; char TmpStr[500] = {0}; r = XMS_ctsOpenDevice ( g_acsHandle, &pOnePcm->deviceID, NULL ); if ( r < 0 ) { sprintf(TmpStr, "XMS_ctsOpenDevice Fail in OpenPcmDevice()! ret=%d", r); AddMsg ( TmpStr ); WriteMsgLog(TmpStr); } }
void OpenBoardDevice ( DeviceID_t *pBoardDevID ) { RetCode_t r; char TmpStr[500] = {0}; r = XMS_ctsOpenDevice ( g_acsHandle, pBoardDevID, NULL ); if ( r < 0 ) { sprintf(TmpStr, "XMS_ctsOpenDevice Fail in OpenBoardDevice()! ret=%d", r); AddMsg (TmpStr); WriteMsgLog(TmpStr); } }
void OpenVoiceDevice ( VOICE_STRUCT *pOneVoice ) { RetCode_t r; char TmpStr[500] = {0}; pOneVoice->State= VOC_WAITOPEN; r = XMS_ctsOpenDevice ( g_acsHandle, &pOneVoice->deviceID, NULL ); if ( r < 0 ) { sprintf(TmpStr, "XMS_ctsOpenDevice Fail in OpenVoiceDevice()! ret=%d", r); AddMsg (TmpStr); WriteMsgLog(TmpStr); } }
// -------------------------------------------------------------------------------- void OpenTrunkDevice ( TRUNK_STRUCT *pOneTrunk ) { RetCode_t r; char TmpStr[500] = {0}; pOneTrunk->State= TRK_WAITOPEN; r = XMS_ctsOpenDevice ( g_acsHandle, &pOneTrunk->deviceID, NULL ); if ( r < 0 ) { sprintf(TmpStr, "XMS_ctsOpenDevice Fail in OpenTrunkDevice()! ret=%d", r); AddMsg (TmpStr); WriteMsgLog(TmpStr); } }
DJ_Void EvtHandler(DJ_U32 esrParam){ Acs_Evt_t * pAcsEvt = NULL; Acs_Dev_List_Head_t * pAcsDevList = NULL; DJ_S8 s8DspModID; DJ_S32 s32Num; pAcsEvt = (Acs_Evt_t *) esrParam; VOICE_STRUCT * pOneVoice; TRUNK_STRUCT * pOneTrunk; char TmpStr[256]; Acs_GeneralProc_Data *pGeneralData = NULL; switch ( pAcsEvt->m_s32EventType ) { case XMS_EVT_QUERY_DEVICE: { pAcsDevList = ( Acs_Dev_List_Head_t *) FetchEventData(pAcsEvt); s8DspModID = (DJ_S8) pAcsDevList->m_s32ModuleID; s32Num = pAcsDevList->m_s32DeviceNum; if (s8DspModID == cfg_iPartWorkModuleID) { switch (pAcsDevList->m_s32DeviceMain) { case XMS_DEVMAIN_VOICE: if ( (AllDeviceRes[s8DspModID].lVocNum == 0) && (s32Num > 0) ) // the resources new added { AllDeviceRes[s8DspModID].pVoice = new VOICE_STRUCT[s32Num]; if( AllDeviceRes[s8DspModID].pVoice ) { AllDeviceRes[s8DspModID].lVocNum = s32Num; AllDeviceRes[s8DspModID].lVocOpened = 0; AllDeviceRes[s8DspModID].lVocFreeNum = 0; memset ( AllDeviceRes[s8DspModID].pVoice, 0, sizeof(VOICE_STRUCT)*s32Num ); DeviceID_t *pDev; pDev = (DeviceID_t *)((BYTE *)pAcsDevList + sizeof(Acs_Dev_List_Head_t)); for ( int i = 0; i < s32Num; i ++ ) { AllDeviceRes[s8DspModID].pVoice[i].deviceID = pDev[i]; AllDeviceRes[s8DspModID].pVoice[i].State = VOC_WAITOPEN; } } } break; case XMS_DEVMAIN_INTERFACE_CH: if ( (AllDeviceRes[s8DspModID].lTrunkNum == 0) && (s32Num > 0) ) // the resources new added { AllDeviceRes[s8DspModID].pTrunk = new TRUNK_STRUCT[s32Num]; if( AllDeviceRes[s8DspModID].pTrunk ) { AllDeviceRes[s8DspModID].lTrunkNum = s32Num; AllDeviceRes[s8DspModID].lTrunkOpened = 0; memset ( AllDeviceRes[s8DspModID].pTrunk, 0, sizeof(TRUNK_STRUCT)*s32Num ); DeviceID_t *pDev; pDev = (DeviceID_t *)((BYTE *)pAcsDevList + sizeof(Acs_Dev_List_Head_t)); for (int i = 0; i < s32Num; i ++ ) { AllDeviceRes[s8DspModID].pTrunk[i].deviceID = pDev[i]; AllDeviceRes[s8DspModID].pTrunk[i].State = TRK_WAITOPEN; } } } break; } } } break; case XMS_EVT_QUERY_ONE_DSP_END: //一个DSP上的资源搜索完毕,打开应用需要的设备 if (pAcsEvt->m_DeviceID.m_s8ModuleID == cfg_iPartWorkModuleID) { AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].lFlag = 1; // this DSP can use s8DspModID = (DJ_S8) pAcsEvt->m_DeviceID.m_s8ModuleID; // pVoice for ( int i = 0; i < AllDeviceRes[s8DspModID].lVocNum; i++ ) { pOneVoice = &AllDeviceRes[s8DspModID].pVoice[i]; if ( pOneVoice->State == VOC_WAITOPEN ) // not Open yet { if ( XMS_ctsOpenDevice ( g_acsHandle, &pOneVoice->deviceID, NULL ) < 0 ) { MessageBox(NULL, "Voice open fail!", "XMS_ctsOpenDevice", MB_OK ) ; } } } // pTrunk pdlg->m_ListTrunk.DeleteAllItems (); for ( int j = 0; j < AllDeviceRes[s8DspModID].lTrunkNum; j++ ) { pOneTrunk = &AllDeviceRes[s8DspModID].pTrunk[j]; pOneTrunk->iSeqID = j; if ( pOneTrunk->State == TRK_WAITOPEN ) // not Open yet { if ( XMS_ctsOpenDevice ( g_acsHandle, &pOneTrunk->deviceID, NULL ) < 0 ) { MessageBox(NULL, "Trunk open fail!", "XMS_ctsOpenDevice", MB_OK ) ; } } //界面显示中继信息 sprintf ( TmpStr, "%3d", j ); pdlg->m_ListTrunk.InsertItem ( j, TmpStr ); sprintf ( TmpStr, "%d,%d", pOneTrunk->deviceID.m_s8ModuleID, pOneTrunk->deviceID.m_s16ChannelID ); pdlg->m_ListTrunk.SetItemText ( j, 1, TmpStr ); pdlg->m_ListTrunk.SetItemText ( j, 2, GetString_DeviceSub( pOneTrunk->deviceID.m_s16DeviceSub) ); pdlg->m_ListTrunk.SetItemText ( j, 3, GetString_LineState(pOneTrunk->iLineState) ); } } break; case XMS_EVT_QUERY_REMOVE_ONE_DSP_END: break; case XMS_EVT_QUERY_DEVICE_END: // Query Device List End break; case XMS_EVT_OPEN_DEVICE: OpenDeviceOK(&pAcsEvt->m_DeviceID ); break; case XMS_EVT_CLOSE_DEVICE: // before Delete DSP, DSP send event CloseDevice to the APP; call XMS_ctsCloseDevicey() can generate this Event break; case XMS_EVT_DEVICESTATE: pGeneralData = (Acs_GeneralProc_Data *)FetchEventData(pAcsEvt); if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH ) { pOneTrunk = &AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].pTrunk[pAcsEvt->m_DeviceID.m_s16ChannelID]; pOneTrunk->iLineState = pGeneralData->m_s32DeviceState; pdlg->m_ListTrunk.SetItemText ( pOneTrunk->iSeqID, 3, GetString_LineState(pOneTrunk->iLineState) ); } break; case XMS_EVT_UNIFAILURE: break; default: if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH && pAcsEvt->m_DeviceID.m_s16DeviceSub == XMS_DEVSUB_ANALOG_USER) { pOneTrunk = &AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].pTrunk[pAcsEvt->m_DeviceID.m_s16ChannelID]; UserWork( pOneTrunk, pAcsEvt ); }else if (pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_VOICE) { DeviceID_t *pDevID; pOneVoice = &AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].pVoice[pAcsEvt->m_DeviceID.m_s16ChannelID]; pDevID = &pOneVoice->UsedDevID; if ( pDevID->m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH && pDevID->m_s16DeviceSub == XMS_DEVSUB_ANALOG_USER) { pOneTrunk = &AllDeviceRes[pDevID->m_s8ModuleID].pTrunk[pDevID->m_s16ChannelID]; UserWork ( pOneTrunk, pAcsEvt ); } } break; } }