sipXcallLib home page


PsTaoComponentGroup.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2004-2006 SIPfoundry Inc.
3 // Licensed by SIPfoundry under the LGPL license.
4 //
5 // Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
6 // Licensed to SIPfoundry under a Contributor Agreement.
7 //
8 // $$
10 
11 #ifndef _PsTaoComponentGroup_h_
12 #define _PsTaoComponentGroup_h_
13 
14 // SYSTEM INCLUDES
15 
16 // APPLICATION INCLUDES
17 #include "os/OsDefs.h"
18 #include "os/OsStatus.h"
19 #include "utl/UtlDefs.h"
20 #include "utl/UtlString.h"
21 
22 // DEFINES
23 // MACROS
24 // EXTERNAL FUNCTIONS
25 // EXTERNAL VARIABLES
26 // CONSTANTS
27 // STRUCTS
28 // TYPEDEFS
29 // FORWARD DECLARATIONS
30 class PsTaoComponent;
31 
32 //:A grouping of PsTaoComponent objects.
33 // The phone terminal is composed of multiple PsTaoComponentGroups.
34 // Applications query the PsPhoneTask for the available PsTaoComponentGroups.
35 // Then they query this class for the PsTaoComponents that make up the group.
37 {
38  friend class PsPhoneTask;
39  // The PsPhoneTask is responsible for creating and destroying
40  // PsTaoComponent and PsTaoComponentGroup objects. No other entity
41  // should invoke the constructors or destructors for these classes.
42 
43 /* //////////////////////////// PUBLIC //////////////////////////////////// */
44 public:
45 
47  {
54  };
55 
56 /* ============================ CREATORS ================================== */
57 
58 /* ============================ MANIPULATORS ============================== */
59  OsStatus setHandsetVolume(int& level);
60  OsStatus setHeadsetVolume(int& level);
61  OsStatus setSpeakerVolume(int& level);
62  OsStatus setExtSpeakerVolume(int& level);
63  OsStatus setRingerVolume(int& level);
64 
65  OsStatus setMicGain(int group, int& level);
66 
67  UtlBoolean activate(void);
68  //:Enables the audio apparatus associated with the component group.
69  // Returns TRUE if successful, FALSE if unsuccessful
70 
71  UtlBoolean deactivate(void);
72  //:Disables the audio apparatus associated with the component group.
73  // Returns TRUE if successful, FALSE if unsuccessful
74 
75 /* ============================ ACCESSORS ================================= */
76  OsStatus getComponents(PsTaoComponent* pComponents[], int size,
77  int& nItems);
78  //:Returns pointers to the components in this group.
79  // The caller provides an array that can hold up to <i>size</i>
80  // PsTaoComponent pointers. This method fills in the <i>pComponents</i>
81  // array with up to <i>size</i> pointers. The actual number of items
82  // filled in is passed back via the <i>nItems</i> argument.
83  // Returns OS_LIMIT_REACHED if there are more than <i>nItems</i>
84  // components in the group. Otherwise, returns OS_SUCCESS.
85 
86  void getDescription(UtlString& rDescription);
87  //:Returns a string describing the component group.
88 
89  int getType(void);
90  //:Returns the type of the component group, either HEAD_SET, HAND_SET,
91  //:SPEAKER_PHONE, PHONE_SET or OTHER.
92 
93  OsStatus getHandsetVolume(int& level, int isNominal = 0);
94  OsStatus getHeadsetVolume(int& level, int isNominal = 0);
95  OsStatus getSpeakerVolume(int& level, int isNominal = 0);
96  OsStatus getExtSpeakerVolume(int& level, int isNominal = 0);
97  OsStatus getRingerVolume(int& level, int isNominal = 0);
98 
99  OsStatus getMicGain(int group, int& level); // 0 <= level <= 10
100  OsStatus getMicGainValue(int group, int& value); // actual value
101 
102 /* ============================ INQUIRY =================================== */
103 
104  UtlBoolean isActivated(void);
105  //:Determine whether the audio apparatus associated with the component
106  //:group is enabled.
107  // Returns TRUE if activated, FALSE if deactivated.
108 
109 /* //////////////////////////// PROTECTED ///////////////////////////////// */
110 protected:
111 
112  PsTaoComponentGroup(int groupType, const UtlString& rDescription,
113  PsTaoComponent* pComponents[], int nItems);
114  //:Constructor
115 
116  virtual
118  //:Destructor
119 
120  OsStatus setVolumeRange(int low, // lowest value
121  int high, // highest value
122  int nominal, // low <= nominal <= high
123  int stepsize, // in .1 dB
124  int mute); // input value to mute
125 
126  OsStatus setGainRange(int low, // lowest value
127  int high, // highest value
128  int nominal, // low <= nominal <= high
129  int stepsize, // in .1 dB
130  int mute); // input value to mute
131 
132  OsStatus getVolume(int groupType, int& level);
133 
139 
140  int mLow;
141  int mHigh;
142  int mNominal; // low <= nominal <= high
143  int mStepsize; // in .1 dB
144  int mMute;
145 
146  int mMicGain;
147 
148  int mMicLow;
149  int mMicHigh;
150  int mMicNominal; // low <= nominal <= high
151  int mMicStepsize; // in .1 dB
152  int mMicMute;
153 
154 /* //////////////////////////// PRIVATE /////////////////////////////////// */
155 private:
157  UtlString mDescription;
159  UtlBoolean mIsActivated;
161 
163  //:Default constructor (not implemented for this class)
164 
165  PsTaoComponentGroup(const PsTaoComponentGroup& rPsTaoComponentGroup);
166  //:Copy constructor (not implemented for this class)
167 
169  //:Assignment operator (not implemented for this class)
170 
171  int normalize(int& level);
172 
173  int gainNormalize(int& level);
174 
175 };
176 
177 /* ============================ INLINE METHODS ============================ */
178 
179 #endif // _PsTaoComponentGroup_h_
PsTaoComponentGroup & operator=(const PsTaoComponentGroup &rhs)
Definition: PsTaoComponentGroup.cpp:140
int mNominal
Definition: PsTaoComponentGroup.h:142
Definition: PsTaoComponentGroup.h:36
int mLow
Definition: PsTaoComponentGroup.h:140
Definition: PsTaoComponent.h:32
OsStatus setRingerVolume(int &level)
Definition: PsTaoComponentGroup.cpp:261
OsStatus getComponents(PsTaoComponent *pComponents[], int size, int &nItems)
Definition: PsTaoComponentGroup.h:53
Definition: PsTaoComponentGroup.h:50
OsStatus setGainRange(int low, int high, int nominal, int stepsize, int mute)
Definition: PsTaoComponentGroup.cpp:215
int mHeadsetVolume
Definition: PsTaoComponentGroup.h:135
OsStatus setHandsetVolume(int &level)
Definition: PsTaoComponentGroup.cpp:236
void getDescription(UtlString &rDescription)
int mHigh
Definition: PsTaoComponentGroup.h:141
int gainNormalize(int &level)
Definition: PsTaoComponentGroup.cpp:468
UtlBoolean activate(void)
Definition: PsTaoComponentGroup.cpp:288
int mMicMute
Definition: PsTaoComponentGroup.h:152
OsStatus getExtSpeakerVolume(int &level, int isNominal=0)
Definition: PsTaoComponentGroup.cpp:384
int mGroupType
Definition: PsTaoComponentGroup.h:158
Definition: PsTaoComponentGroup.h:49
virtual ~PsTaoComponentGroup()
Definition: PsTaoComponentGroup.cpp:128
int mMicHigh
Definition: PsTaoComponentGroup.h:149
OsStatus getHeadsetVolume(int &level, int isNominal=0)
Definition: PsTaoComponentGroup.cpp:352
OsStatus setHeadsetVolume(int &level)
Definition: PsTaoComponentGroup.cpp:243
int mMicLow
Definition: PsTaoComponentGroup.h:148
int mMicGain
Definition: PsTaoComponentGroup.h:146
int mMicNominal
Definition: PsTaoComponentGroup.h:150
OsStatus getSpeakerVolume(int &level, int isNominal=0)
Definition: PsTaoComponentGroup.cpp:368
OsStatus getRingerVolume(int &level, int isNominal=0)
Definition: PsTaoComponentGroup.cpp:400
int mMicStepsize
Definition: PsTaoComponentGroup.h:151
OsStatus getMicGainValue(int group, int &value)
Definition: PsTaoComponentGroup.cpp:436
PsTaoComponentGroup()
Definition: PsTaoComponentGroup.cpp:32
UtlBoolean deactivate(void)
Definition: PsTaoComponentGroup.cpp:294
PsTaoComponentGroupType
Definition: PsTaoComponentGroup.h:46
OsStatus setMicGain(int group, int &level)
Definition: PsTaoComponentGroup.cpp:267
int mSpeakerVolume
Definition: PsTaoComponentGroup.h:137
int mMute
Definition: PsTaoComponentGroup.h:144
OsStatus setSpeakerVolume(int &level)
Definition: PsTaoComponentGroup.cpp:249
Definition: PsTaoComponentGroup.h:51
OsStatus getHandsetVolume(int &level, int isNominal=0)
Definition: PsTaoComponentGroup.cpp:336
int mStepsize
Definition: PsTaoComponentGroup.h:143
Definition: PsTaoComponentGroup.h:48
OsStatus setVolumeRange(int low, int high, int nominal, int stepsize, int mute)
Definition: PsTaoComponentGroup.cpp:168
int mRingerVolume
Definition: PsTaoComponentGroup.h:136
UtlBoolean mIsActivated
Definition: PsTaoComponentGroup.h:159
int mNumItems
Definition: PsTaoComponentGroup.h:160
OsStatus getVolume(int groupType, int &level)
Definition: PsTaoComponentGroup.cpp:301
Definition: PsTaoComponentGroup.h:52
Definition: PsPhoneTask.h:50
int mHandsetVolume
Definition: PsTaoComponentGroup.h:134
int normalize(int &level)
Definition: PsTaoComponentGroup.cpp:453
UtlString mDescription
Definition: PsTaoComponentGroup.h:157
OsStatus getMicGain(int group, int &level)
Definition: PsTaoComponentGroup.cpp:416
OsStatus setExtSpeakerVolume(int &level)
Definition: PsTaoComponentGroup.cpp:255
PsTaoComponent ** mpComponents
Definition: PsTaoComponentGroup.h:156
int mExtSpeakerVolume
Definition: PsTaoComponentGroup.h:138
UtlBoolean isActivated(void)