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

📄 psbuttontask.h

📁 基于sipfoundy 公司开发的sipx协议API
💻 H
字号:
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$//////////////////////////////////////////////////////////////////////////////#ifndef _PsButtonTask_h_#define _PsButtonTask_h_// SYSTEM INCLUDES// APPLICATION INCLUDES#include "os/OsBSem.h"#include "os/OsMsgQ.h"#include "os/OsRWMutex.h"#include "os/OsServerTask.h"#include "os/OsTime.h"#include "ps/PsKeybdDev.h"#include "ps/PsMsg.h"// DEFINES// MACROS// EXTERNAL FUNCTIONS// EXTERNAL VARIABLES// CONSTANTS// STRUCTS// TYPEDEFS// FORWARD DECLARATIONSclass OsEventMsg;class OsTimer;class PsButtonInfo;//:Task responsible for managing the phone set buttonsclass PsButtonTask : public OsServerTask{/* //////////////////////////// PUBLIC //////////////////////////////////// */public:/* ============================ CREATORS ================================== */   static PsButtonTask* getButtonTask(void);     //:Return a pointer to the Button task, creating it if necessary   virtual   ~PsButtonTask();     //:Destructor/* ============================ MANIPULATORS ============================== */   virtual OsStatus init(const int maxButtonIndex);     //:Cause the Button task to (re)initialize itself     // The task will allocate an array [0..maxButtonIndex] of PsButtonInfo     // objects to hold button state.   virtual OsStatus postEvent(const int msg, void* source,                              const int buttonIndex,                              const OsTime& rTimeout=OsTime::OS_INFINITY);     //:Create a button message and post it to the Button task     // Return the result of the message send operation.   virtual OsStatus setButtonInfo(const int index,                                  const int buttonId,                                  const char* buttonName,                                  const int eventMask,                                  const OsTime& repInterval=OsTime::OS_INFINITY);     //:Set the button information for the button designated by "index"/* ============================ ACCESSORS ================================= */   virtual const PsButtonInfo& getButtonInfo(const int index);     //:Return the button information for the button designated by "index"   virtual int getButtonIndex(int buttonId);     //:Return the button index for the given button ID value     // Returns -1 if the key was not found.        virtual int getButtonIndex(const char* buttonName);     //:Return the button index for the given button name value     // Returns -1 if the key was not found.   virtual int getMaxButtonIndex();     //:Return the bmax utton index/* ============================ INQUIRY =================================== *//* //////////////////////////// PROTECTED ///////////////////////////////// */protected:   PsButtonTask();     //:Constructor (called only indirectly via getButtonTask())     // We identify this as a protected (rather than a private) method so     // that gcc doesn't complain that the class only defines a private     // constructor and has no friends./* //////////////////////////// PRIVATE /////////////////////////////////// */private:   virtual UtlBoolean handleMessage(OsMsg& rMsg);     //:Handle an incoming message     // Return TRUE if the message was handled, otherwise FALSE.   virtual UtlBoolean handleEventMessage(const OsEventMsg& rMsg);     //:Handle an incoming event message (timer expiration)     // Return TRUE if the message was handled, otherwise FALSE.   virtual UtlBoolean handlePhoneMessage(PsMsg& rMsg);     //:Handle an incoming message from the keyboard controller.     // Return TRUE if the message was handled, otherwise FALSE.   virtual void disableTimer(int index);     //:Disable the repeat timer for the designated button     // Do nothing if there is no repeat timer in effect for the button.     // A write lock should be acquired before calling this method.   virtual void enableTimer(int index);     //:Enable the repeat timer for the designated button     // A write lock should be acquired before calling this method.   virtual void doCleanup(void);     //:Release dynamically allocated storage     // A write lock should be acquired before calling this method.   int           mMaxBtnIdx;        // max button index   OsRWMutex     mMutex;            // mutex for synchonizing access to data   PsButtonInfo* mpButtonInfo;      // ptr to an array of PsButtonInfo objects   PsKeybdDev*   mpKeybdDev;        // ptr to keyboard device   OsTimer**     mpRepTimers;       // ptr to an array of button repeat timers   // Static data members used to enforce Singleton behavior   static PsButtonTask* spInstance; // pointer to the single instance of                                    //  the PsButtonTask class   static OsBSem        sLock;      // semaphore used to ensure that there                                    //  is only one instance of this class   PsButtonTask(const PsButtonTask& rPsButtonTask);     //:Copy constructor (not implemented for this task)   PsButtonTask& operator=(const PsButtonTask& rhs);     //:Assignment operator (not implemented for this class)};/* ============================ INLINE METHODS ============================ */#endif  // _PsButtonTask_h_

⌨️ 快捷键说明

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