// ------------------------------------------------------- DJ_Void EvtHandler(DJ_U32 esrParam) { Acs_Evt_t * pAcsEvt = NULL; Acs_Dev_List_Head_t * pAcsDevList = NULL; Acs_GeneralProc_Data* pGeneral=NULL; char TmpStr[256]; char * pStr = NULL; pAcsEvt = (Acs_Evt_t *) esrParam; DispEventInfo ( pAcsEvt ); switch ( pAcsEvt->m_s32EventType ) { case XMS_EVT_OPEN_STREAM: printf(""); break; case XMS_EVT_QUERY_DEVICE: if ( !bStartWorkFlag ) { pAcsDevList = ( Acs_Dev_List_Head_t *) ( (DJ_S8 *)pAcsEvt + sizeof(Acs_Evt_t) ); //Add or modify device resource to pool when receive the device's event of the state changing AddDeviceRes ( pAcsDevList ); } break; case XMS_EVT_QUERY_DEVICE_END: //get device list completely if ( !bStartWorkFlag ) { pGeneral = (Acs_GeneralProc_Data*)FetchEventData(pAcsEvt); sprintf ( TmpStr, "Start work. DeviceNum = %d\n", TotalDevRes ); AddMsg ( MSG_TYPE_OTHER, TmpStr ); InitDeviceInfo(); bStartWorkFlag = true; } break; case XMS_EVT_OPEN_DEVICE: OpenDeviceOK ( &pAcsEvt->m_DeviceID ); break; case XMS_EVT_CLOSE_DEVICE: CloseDeviceOK ( &pAcsEvt->m_DeviceID ); pStr = GetString_DeviceAll(&pAcsEvt->m_DeviceID); sprintf(TmpStr,"Close devcie evt: %s",pStr); AfxMessageBox(TmpStr,NULL,MB_OK); break; case XMS_EVT_PLAYCSPREQ: { DJ_S32 r = 0; char MsgStr[100]={0}; CSPPlayDataInfo_t playCSP={0}; Acs_CSPDataReq_Data * pCspReq = NULL; if(g_cspPlay == 0) { break; } pCspReq = (Acs_CSPDataReq_Data *)FetchEventData(pAcsEvt); if(g_cspFp == NULL) { g_cspFp = fopen(g_szCSPFile,"rb"); } if(feof(g_cspFp)) { fseek(g_cspFp,SEEK_SET,0); TRACE("Seek to Set\n"); } playCSP.m_u16DataLen = pCspReq->m_u16ReqCspDataLen; playCSP.m_u8DataType = XMS_CSPPLAY_DATA_VOC; playCSP.m_u8TaskID = (DJ_U8)(GetTickCount() % 128); long rr = fread(g_szDataBuf,sizeof(char),playCSP.m_u16DataLen,g_cspFp); TRACE("ReqDataLen = %d,sentData=%d\n",pCspReq->m_u16ReqCspDataLen,rr); r = XMS_ctsSendCSPData(g_acsHandle, &DevOpened[iOpenedIndex1].DevID, &playCSP,g_szDataBuf,NULL); if ( r < 0 ) { sprintf ( MsgStr, "X(%d) XMS_ctsPlayCSP() FAIL! (%s)", r, GetString_DeviceAll (&DevOpened[iOpenedIndex1].DevID) ); AddMsg ( MSG_TYPE_FUNCTION, MsgStr); } else { sprintf ( MsgStr, "XMS_ctsPlayCSP() OK! (%s)", GetString_DeviceAll (&DevOpened[iOpenedIndex1].DevID)); AddMsg ( MSG_TYPE_FUNCTION, MsgStr ); } } break; case XMS_EVT_CONTROLPLAY: g_cspPlay = 0; break; case XMS_EVT_RECORDCSP: { Acs_MediaCSPProc_Data * pCSPData = NULL; pCSPData = (Acs_MediaCSPProc_Data *)FetchEventData(pAcsEvt); fwrite(pCSPData->m_u8StreamData,sizeof(char),pCSPData->m_u16DataLen,g_cspFp); } break; default: break; } }
DJ_Void EvtHandler(DJ_U32 esrParam) { Acs_Evt_t * pAcsEvt = NULL; Acs_Dev_List_Head_t * pAcsDevList = NULL; pAcsEvt = (Acs_Evt_t *) esrParam; DispEventInfo ( pAcsEvt ); switch ( pAcsEvt->m_s32EventType ) { case XMS_EVT_QUERY_DEVICE: if ( IsSysMod(pAcsEvt->m_DeviceID.m_s8ModuleID) ) { pAcsDevList = ( Acs_Dev_List_Head_t *) FetchEventData(pAcsEvt); //收到设备变化的事件,增加/调整 该设备资源 AddDeviceRes ( pAcsDevList ); } break; case XMS_EVT_QUERY_ONE_DSP_END: if ( IsSysMod(pAcsEvt->m_DeviceID.m_s8ModuleID) ) { AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].lFlag = 1; // 该DSP可以用了 OpenAllDevice_Dsp ( pAcsEvt->m_DeviceID.m_s8ModuleID ); RefreshMapTable ( ); ReDrawAll (); } break; case XMS_EVT_QUERY_DEVICE_END: // 获取设备列表结束 break; case XMS_EVT_OPEN_DEVICE: OpenDeviceOK ( &pAcsEvt->m_DeviceID ); break; case XMS_EVT_DEVICESTATE: HandleDevState ( pAcsEvt ); break; case XMS_EVT_UNIFAILURE: // must handle this event in your real System break; default: if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH ) { TrunkWork ( &M_OneTrunk(pAcsEvt->m_DeviceID), pAcsEvt ); } else if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_VOICE ) { DeviceID_t *pDevID; pDevID = &M_OneVoice(pAcsEvt->m_DeviceID).UsedDevID; if ( pDevID->m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH ) { TrunkWork ( &M_OneTrunk(*pDevID), pAcsEvt ); } } break; } }