callengine.h

来自「symbian 2rd下可以获取并显示来电号码」· C头文件 代码 · 共 70 行

H
70
字号
#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 + =
减小字号Ctrl + -
显示快捷键?