⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callengine.h

📁 symbian 2rd下可以获取并显示来电号码
💻 H
字号:
#ifndef __CALLENGINE_H__
#define __CALLENGINE_H__

#include "InCallWatcher.h"
#include "OutCallWatcher.h"

class CInCallView;
class COutCallView;

_LIT(KCallEngine, "CCallEngine");

class MCallEngineObserver
    {
    public:
        virtual void HandleCallChangeL(const RCall::TStatus& aStatus) = 0;
        virtual void ShowPhoneNumber(HBufC* aPhoneNumber) = 0;
    };

class CCallEngine : public CBase,
                                         public MInCallWatcherObserver, public MOutCallWatcherObserver 
    {
    public:
        static CCallEngine* NewL();
        ~CCallEngine();
        // Method from MInCallWatcherObserver
        virtual void HandleInCallChangeL(const RCall::TStatus& aStatus);
        virtual void ShowPhoneNumber(HBufC * aPhoneNumber);
        
        // Method from MOutCallWatcherObserver
        virtual void HandleOutCallHungUpL();
        
        //
        void StartEngineL();
        void StopEngine();

        // For the out call
        void MakeCallL(const TDesC& aNumber);
        inline void SetCallEngineObserver(CInCallView* iObserver);
        inline void SetOutCallView(COutCallView* aOutCallView);

    private:
        // Construction 
        CCallEngine();
        void ConstructL();
        //
        void TelStartL();
        void TelephonyCleanup();
        // Panic code
        enum TPanicCode { EWrongState, ERecordInitError, EPlayInitError, EPlayError };
        inline void Panic(TPanicCode aReason) const;
        
        // Attributes
        // MCallEngineObserver* iObserver;
        CInCallView* iObserver;
        COutCallView* iOutCallView;
        RTelServer iTelServer;
        RPhone iPhone;
        RLine iLine;
        
        CInCallWatcher* iInCallWatcher;
        COutCallWatcher* iOutCallWatcher;
    };

void CCallEngine::Panic(TPanicCode aReason) const { User::Panic(KCallEngine, aReason); };

void CCallEngine::SetCallEngineObserver(CInCallView* aObserver) { iObserver = aObserver; }

void CCallEngine::SetOutCallView(COutCallView * aOutCallView) { iOutCallView = aOutCallView; }
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -