/************************************************************************* 【文件名】 Mixer.h 【功能模块和目的】 呼叫通道混音器类头文件 【开发者及日期】 郑石诺 2015/05/15 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once #include "IMixerHost.h" class CDspChannel; class CChannelResource; /************************************************************************* 【类名】 CMixer 【功能】 【接口说明】 呼叫通道混音器类 【开发者及日期】 郑石诺 2015/05/15 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CMixer { public: CMixer(IMixerHost& Host); ~CMixer(void); bool allowedMonitor(void) const { return m_pMonitorChan == NULL; } //{ return m_pRecordDsp == NULL && m_pMonitorChan == NULL; } // 操作接口 bool playSound(PlayVoiceContent* pContent); // 放音收号 bool playTone(int Type); // 播放信号音 bool playStop(void); // 停止放音 bool startRecord(RecordContent* pContent); // 开始录音 bool stopRecord(void); // 停止录音 void release(void); // 释放所有资源 bool setupMonitor(CChannelResource* pMonitorParty); // 建立监听 bool undoMonitor(CChannelResource* pMonitorParty); // 撤销监听 // voice处理接口 void onPlayEnd(LPCTSTR lpDtmf); void onRecEnd(UINT TaskId); void onToneEnd(int ToneTp); private: bool __attachPlayDsp(void); void __detachPlayDsp(void); bool __attachRecordDsp(void); void __detachRecordDsp(void); private: IMixerHost& m_Host; CDspChannel* m_pPlayDsp; CDspChannel* m_pRecordDsp; CChannelResource* m_pMonitorChan; };