File: PsLampInfo.h

package info (click to toggle)
sipxtapi 3.3.0~test18%2Bdfsg.1-0.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 55,892 kB
  • sloc: cpp: 435,979; ansic: 14,207; makefile: 2,491; java: 2,264; sh: 1,310; perl: 844; xml: 225; awk: 5
file content (108 lines) | stat: -rw-r--r-- 3,003 bytes parent folder | download | duplicates (5)
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
//  
// Copyright (C) 2006 SIPez LLC. 
// Licensed to SIPfoundry under a Contributor Agreement. 
//
// 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 _PsLampInfo_h_
#define _PsLampInfo_h_

// SYSTEM INCLUDES
// APPLICATION INCLUDES
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
class PsLampTask;

//:Phone set button information
class PsLampInfo
{

friend class PsLampTask;

/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:

   enum LampMode
   {
      OFF            = 0x00,
      STEADY         = 0x01,
      FLASH          = 0x02,     // slow on and off
      FLUTTER        = 0x04,     // fast on and off
      BROKEN_FLUTTER = 0x08,     // superposition of flash and flutter
      WINK           = 0x10
   };

/* ============================ CREATORS ================================== */

   PsLampInfo(int         lampId=0, 
              const char* pName="",
              LampMode    mode=OFF);
     //:Constructor
     // Default values are provided for all of the arguments so that it is
     // possible to allocate an array of PsLampInfo objects.

   PsLampInfo(const PsLampInfo& rPsLampInfo);
     //:Copy constructor

   virtual
   ~PsLampInfo();
     //:Destructor

/* ============================ MANIPULATORS ============================== */

   PsLampInfo& operator=(const PsLampInfo& rhs);
     //:Assignment operator

/* ============================ ACCESSORS ================================= */

   int getId(void) const;
     //:Returns the lamp ID

   const char* getName(void) const;
     //:Returns the lamp name

/* ============================ INQUIRY =================================== */

/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:

/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:

   int      mLampId;     // lamp identifier
   LampMode mLampMode;   // current lamp mode
   char*    mpLampName;  // name for this lamp

   // Access to the mode information for lamp objects needs to be
   // synchronized.  The following methods: setInfo(), setMode() and getMode()
   // are intended to be called indirectly via methods associated with the
   // PsLampTask (which ensures that access to the data is synchronized
   // appropriately.

   void setInfo(int lampId, LampMode mode, char* pLampName);
     //:Set all of the properties for the PsLampInfo object

   void setMode(LampMode mode);
     //:Set the lamp mode

   PsLampInfo::LampMode getMode(void) const;
     //:Returns the lamp mode

};

/* ============================ INLINE METHODS ============================ */

#endif  // _PsLampInfo_h_