#ifndef _CALL_MANAGER_H__ #define _CALL_MANAGER_H__ #include class Notification; class RSessVoice; class RSessVideo; class RSession; class RCallManager : public QObject { Q_OBJECT public: RCallManager(QObject *parent = 0); static RCallManager *Instance(); bool init(); int getSessId(); void setMicphone(const QString &id); QString getMicphone(); void setSpeaker(const QString &id); QString getSpeaker(); void setCamera(const QString &id); QString getCamera(); bool startSess(const QString &qsPhone, bool bVideo); void rmvSession(RSession * pSession); void endAllSess(); bool hasAudio(); bool hasVideo(); void showRefreshOk(); void showCallInComing(unsigned int dwSessId); void showCallOutgoing(unsigned int dwSessId); void showCallAlerted(unsigned int dwSessId); void showCallConnecting(unsigned int dwSessId); void showCallTalking(unsigned int dwSessId); void showCallTermed(unsigned int dwSessId); void showCallVideoSize(unsigned int dwSessId, unsigned int dwWidth, unsigned int dwHeight, unsigned int dwOrientation); void showCallCaptureSize(unsigned int dwSessId, unsigned int dwWidth, unsigned int dwHeight); static void MtcCallInComing(unsigned int dwSessId); static void MtcCallOutgoing(unsigned int dwSessId); static void MtcCallAlerted(unsigned int dwSessId, unsigned int dwAlertType); static void MtcCallConnecting(unsigned int dwSessId); static void MtcCallTalking(unsigned int dwSessId); static void MtcCallTermed(unsigned int dwSessId, unsigned int dwStatCode, const char *pcReason); signals: void CallIncoming(const QString name,const QString img);//来电信号 void CallOutgoing(QString);//挂掉信号 private Q_SLOTS: void onServiceEvent(const QString &name, size_t cookie, const Notification &info); private: void initCallback(); bool startAudioDevice(); void stopAudioDevice(); public: RSession *m_pRSession; private: RSessVoice *m_pSessVoice; RSessVideo *m_pSessVideo; static RCallManager *m_psRCallManager; QString m_qsMicphone; QString m_qsSpeaker; QString m_qsCamera; bool m_bAudioStarted; }; #endif /* _CALL_MANAGER_H__ */