void CCorpChannelDx::OnRecdPacket(IRecdPacket* pPacket) { if ( ! _tcscmp(pPacket->PakParam, "STOP") ) { CChannel::OnRecdPacket( pPacket ); return; } //CString xNewFile = Settings.Meeting.RecFile; CString xNewFile = "<DATE>\\<REMOTE>-<TIME>.PCM"; if ( xNewFile.Find( "<DATE>" ) >= 0 ) { SYSTEMTIME pTime; GetLocalTime( &pTime ); CString strValue; strValue.Format( "%04i年%02i月%02i日", pTime.wYear, pTime.wMonth, pTime.wDay ); Replace( xNewFile, "<DATE>", strValue ); } if ( xNewFile.Find( "<TIME>" ) >= 0 ) { SYSTEMTIME pTime; GetLocalTime( &pTime ); CString strValue; strValue.Format( "%02i时%02i分%02i秒%03i", pTime.wHour, pTime.wMinute, pTime.wSecond, pTime.wMilliseconds ); Replace( xNewFile, "<TIME>", strValue ); } if ( xNewFile.Find( "<REMOTE>" ) >= 0 ) { CString strValue; Replace( xNewFile, "<REMOTE>", RemoteId ); } for ( LPCTSTR xPath = xNewFile, xPathExt = NULL; xPathExt = _tcsistr(xPath, "\\"); xPath = xPathExt + 1 ) { CString strValue = xNewFile.Left(xPathExt - (LPCTSTR)xNewFile); CreateDirectory( "中国电信\\" + strValue, NULL ); } SsmSetRecMixer( m_nChan, TRUE, 0 ); if ( RecordFile(xNewFile, "中国电信") ) { CHAR sError[1024]; SsmGetLastErrMsg( sError ); throw sError; } theApp.Message( MSG_TEMP,"Record[%i] -> %s", m_nChan, xNewFile ); }
struct state* CInfoChannel::RcvLvWord_cmplt(EVTBLK *evtblk) { int nChan = evtblk->nReference; if ( evtblk->wEventCode == E_PROC_PlayEnd ) { if ( (Reserved &= 0x07) == 0x01 ) // 提示语播放完毕 { UsrLvFile = MakeUsrLvFile( "pcm" ); RecordFile( UsrLvFile, NULL, _T("#") ); } if ( (Reserved & 0x04) == 0x04 ) // 短信录制完毕 { BjPlaying = FALSE; } else return &RcvLvWord; // 循环播放背景音乐 } if ( evtblk->wEventCode == E_PROC_RecordEnd ) { Reserved |= 0x04; // 记录播放完毕标志 if ( SsmStopPlayFile( nChan ) ) BjPlaying = FALSE; } //if ( (Reserved & 0x04) == 0x04 ) // 短信录制完毕 if ( (Reserved & 0x04) == 0x04 && ! BjPlaying ) // 短信录制完毕 { PutUsrRecord( UsrLvFile ); SetEvent( Traffic.m_pWakeup ); Reserved &= 0x00; return &RcvFnOper; } if ( (Reserved & 0x07) == 0x02 && evtblk->wEventCode == E_CHG_ChState && ((evtblk->dwParam & 0xFFFF) == S_CALL_STANDBY || (evtblk->dwParam & 0xFFFF) == S_CALL_PENDING) ) { PutUsrRecord( UsrLvFile ); SetEvent( Traffic.m_pWakeup ); } return ChkDTSignal( evtblk, &RcvLvWord ); }
void CDlgMain::OnDropFiles(HDROP hDropInfo) { // TODO: 在此添加消息处理程序代码和/或调用默认值 int DropCount = DragQueryFile(hDropInfo, -1, NULL, 0);//取得被拖动文件的数目 for (int i = 0; i < DropCount; i++) { char wcStr[MAX_PATH]; DragQueryFile(hDropInfo, i, wcStr, MAX_PATH);//获得拖曳的第i个文件的文件名 CString str_Filename; str_Filename.Format("%s", wcStr); //处理文件名,写入数据库,待开发 //加入对文件格式的筛选,同时文件存入数据表,以便程序再次运行时重新显示列表 //此处写入数据库,应当包含文件名、文件存储路径、文件格式 str_Filename = RecordFile(str_Filename); m_ListIndex.AddString(str_Filename); } DragFinish(hDropInfo); //拖放结束后,释放内存 CDialogEx::OnDropFiles(hDropInfo); }
void VOIPWork ( VOIP_STRUCT *pOneVOIP, Acs_Evt_t *pAcsEvt ) { Acs_CallControl_Data *pCallControl = NULL; VoIPCallPrivate_t *voipCallPrivate = NULL; DeviceID_t FreeVocDeviceID; char FileName[256]; char chTmpFilePath[256] = ""; if (pOneVOIP == NULL || pAcsEvt == NULL) return; if ( pAcsEvt->m_s32EventType == XMS_EVT_CLEARCALL ) /*拆线事件*/ { if (cfg_iVoiceCheck == 1) { StopPlayFile(&pOneVOIP->VocDevID); //删除录音文件 GetFilePathName(pOneVOIP, chTmpFilePath); sprintf(FileName, "%s\\DemoRec.%0003d", chTmpFilePath, pOneVOIP->iSeqID); DeleteFile(FileName); } ResetVOIP ( pOneVOIP, pAcsEvt ); Change_State(pOneVOIP, VOIP_FREE); return ; } switch(pOneVOIP->State) { case VOIP_FREE: if ( pAcsEvt->m_s32EventType == XMS_EVT_CALLIN ) /*呼入事件*/ { pCallControl = (Acs_CallControl_Data *)FetchEventData(pAcsEvt); ASSERT(pCallControl->m_PrivData.m_u32DataSize == sizeof(VoIPCallPrivate_t)); voipCallPrivate = (VoIPCallPrivate_t *)&(pCallControl->m_PrivData); XMS_ctsAlertCall ( g_acsHandle, &pOneVOIP->deviceID, NULL ); XMS_ctsAnswerCallIn ( g_acsHandle, &pOneVOIP->deviceID, NULL ); pOneVOIP->iProtocol = voipCallPrivate->m_s32Protocol; //Caller Info strncpy(pOneVOIP->CallerAddr, voipCallPrivate->m_s8CallerAddress, sizeof(pOneVOIP->CallerAddr)); strncpy(pOneVOIP->CallerUserID, voipCallPrivate->m_s8CallerUserID, sizeof(pOneVOIP->CallerUserID)); strncpy ( pOneVOIP->CallerNum, pCallControl->m_s8CallingNum, sizeof(pOneVOIP->CallerNum)); pOneVOIP->iCallerPort = (unsigned short)voipCallPrivate->m_s32CallerPort; // //Callee Info strncpy(pOneVOIP->CalleeAddr, voipCallPrivate->m_s8CalleeAddress, sizeof(pOneVOIP->CalleeAddr)); strncpy(pOneVOIP->CalleeUserID, voipCallPrivate->m_s8CalleeUserID, sizeof(pOneVOIP->CalleeUserID)); strncpy ( pOneVOIP->CalleeNum, pCallControl->m_s8CalledNum, sizeof(pOneVOIP->CalleeNum)); pOneVOIP->iCalleePort = (unsigned short)voipCallPrivate->m_s32CalleePort; // DrawMain_CallInfo( pOneVOIP ); Change_State ( pOneVOIP, VOIP_WAIT_ANSWERCALL ); } break; case VOIP_WAIT_ANSWERCALL: if ( pAcsEvt->m_s32EventType == XMS_EVT_ANSWERCALL ) /*应答呼入完成事件*/ { pCallControl = (Acs_CallControl_Data *)FetchEventData(pAcsEvt); if (cfg_iVoiceCheck == 1) { if ( SearchOneFreeVoice ( pOneVOIP, &FreeVocDeviceID ) >= 0 ) { pOneVOIP->u8PlayTag = 16; pOneVOIP->VocDevID = FreeVocDeviceID; M_OneVoice(FreeVocDeviceID).UsedDevID = pOneVOIP->deviceID; DrawMain_VocInfo ( pOneVOIP ); GetFilePathName(pOneVOIP, chTmpFilePath); sprintf(FileName, "%s\\DemoRec.%0003d", chTmpFilePath, pOneVOIP->iSeqID); RecordFile ( pOneVOIP, FileName, 8000L*10, false); Change_State ( pOneVOIP, VOIP_RECORDFILE ); } } else { Change_State ( pOneVOIP, VOIP_WAITHANGUP ); } } break; case VOIP_RECORDFILE: if ( CheckRecordEnd ( pOneVOIP, pAcsEvt) ) /*record完成事件*/ { BindOneFreeVoice(pOneVOIP, pOneVOIP->VocDevID); Change_State ( pOneVOIP, VOIP_WAITBINDOK); } break; case VOIP_WAITBINDOK: if (pAcsEvt->m_s32EventType == XMS_EVT_SETPARAM) { GetFilePathName(pOneVOIP, chTmpFilePath); sprintf(FileName, "%s\\DemoRec.%0003d", chTmpFilePath, pOneVOIP->iSeqID); pOneVOIP->u8PlayTag ++; PlayFile ( &pOneVOIP->VocDevID, FileName, pOneVOIP->u8PlayTag, true ); Change_State (pOneVOIP, VOIP_PLAYRECORD); } break; case VOIP_PLAYRECORD: if ( CheckPlayEnd ( pOneVOIP, pAcsEvt) ) /*play完成事件*/ { // 主动挂机 UnBindOneVoice(pOneVOIP); XMS_ctsClearCall ( g_acsHandle, &pOneVOIP->deviceID, 0, NULL ); Change_State ( pOneVOIP, VOIP_WAITHANGUP ); } break; } }