#include "StdAfx.h" #include "LineRecordIpra.h" #include "IprControl.h" CLineRecordIpra::CLineRecordIpra(int LineId) : CLine(LineId), m_StationId(CONST_IPR_STATION_INVALID), m_SessionId(CONST_IPR_SESSION_INVALID) { } CLineRecordIpra::~CLineRecordIpra(void) { } /***************************************************************** **【函数名称】 getState **【函数功能】 获取状态字符串 **【参数】 **【返回值】 ****************************************************************/ LPCTSTR CLineRecordIpra::getState( void ) const { switch(m_State) { case S_CALL_STANDBY: return _T("空闲"); case S_CALL_UNAVAILABLE: return _T("不可用"); case S_IPR_COMMUNICATING: return _T("协商中"); case S_IPR_USING: return _T("录音中"); default: return _T("未知状态"); } } /***************************************************************** **【函数名称】 procDevMsg **【函数功能】 底层事件响应处理 **【参数】 pEvent 事件信息结构体 **【返回值】 ****************************************************************/ void CLineRecordIpra::procDevMsg( PSSM_EVENT pEvent ) { switch(pEvent->wEventCode) { case E_CHG_ChState: // 模拟录音线路状态事件 CIprControl::GetInstance().onEventIpaState(this, SsmGetChState(pEvent->nReference)); break; case E_RCV_IPR_MEDIA_SESSION_STARTED: case E_RCV_IPR_AUX_MEDIA_SESSION_STARTED: CIprControl::GetInstance().onEventMediaSessionStarted(this, pEvent); break; case E_RCV_IPR_MEDIA_SESSION_STOPED: case E_RCV_IPR_AUX_MEDIA_SESSION_STOPED: CIprControl::GetInstance().onEventMediaSessionStoped(this, pEvent); break; } } /***************************************************************** **【函数名称】 procCmd **【函数功能】 线路命令处理 **【参数】 pPduEntity 线路命令指针 **【返回值】 ****************************************************************/ void CLineRecordIpra::procCmd( CPduEntity * pPduEntity ) { } /***************************************************************** **【函数名称】 resetRecContext **【函数功能】 重置录音环境 **【参数】 **【返回值】 ****************************************************************/ void CLineRecordIpra::resetRecContext( void ) { m_StationId = CONST_IPR_STATION_INVALID; m_SessionId = CONST_IPR_SESSION_INVALID; }