/usr/include/sipxtapi/ps/PsButtonTask.h is in libsipxtapi-dev 3.3.0~test17-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | //
// Copyright (C) 2004-2006 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// $$
///////////////////////////////////////////////////////////////////////////////
#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 DECLARATIONS
class OsEventMsg;
class OsTimer;
class PsButtonInfo;
//:Task responsible for managing the phone set buttons
class 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_
|