18 |
18 |
19 // INCLUDE FILES |
19 // INCLUDE FILES |
20 #include "SysApAccessoryObserver.h" |
20 #include "SysApAccessoryObserver.h" |
21 #include "SysAp.hrh" |
21 #include "SysAp.hrh" |
22 #include "SysApAppUi.h" |
22 #include "SysApAppUi.h" |
|
23 #include <Accpolgenericidarray.h> |
|
24 #include <Accpolgenericid.h> |
23 |
25 |
24 #include <e32svr.h> // RDebug |
26 #include <e32svr.h> // RDebug |
25 |
27 |
26 // ========================= MEMBER FUNCTIONS ================================ |
28 // ========================= MEMBER FUNCTIONS ================================ |
27 |
29 |
57 CSysApAccessoryObserver::~CSysApAccessoryObserver() |
59 CSysApAccessoryObserver::~CSysApAccessoryObserver() |
58 { |
60 { |
59 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::~CSysApAccessoryObserver") ) ); |
61 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::~CSysApAccessoryObserver") ) ); |
60 Cancel(); |
62 Cancel(); |
61 iAccessoryMode.CloseSubSession(); |
63 iAccessoryMode.CloseSubSession(); |
|
64 iAccessoryConnection.CloseSubSession(); |
62 iAccessoryServer.Close(); |
65 iAccessoryServer.Close(); |
63 } |
66 } |
64 |
67 |
65 // ---------------------------------------------------------------------------- |
68 // ---------------------------------------------------------------------------- |
66 // CSysApAccessoryObserver::ConstructL() |
69 // CSysApAccessoryObserver::ConstructL() |
90 else |
93 else |
91 { |
94 { |
92 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): iAccMode.iAccessoryMode=%d" ), iAccMode.iAccessoryMode ) ); |
95 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): iAccMode.iAccessoryMode=%d" ), iAccMode.iAccessoryMode ) ); |
93 iPreviousMode = iAccMode.iAccessoryMode; |
96 iPreviousMode = iAccMode.iAccessoryMode; |
94 } |
97 } |
|
98 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): trying RAccessoryConnection::CreateSubSession" ) ) ); |
95 |
99 |
|
100 err = iAccessoryConnection.CreateSubSession( iAccessoryServer ); |
|
101 if ( err == KErrNone ) |
|
102 { |
|
103 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): connection to RAccessoryConnection established" ) ) ); |
|
104 TAccPolGenericIDArray iAccGenericIDArray; |
|
105 err = iAccessoryConnection.GetAccessoryConnectionStatus( iAccGenericIDArray ); |
|
106 if ( err == KErrNone ) |
|
107 { |
|
108 TInt iIndex = 0; |
|
109 TAccPolGenericID iAccGenericID = iAccGenericIDArray.GetGenericIDL( iIndex ); |
|
110 TUint iPhysicalConnection = iAccGenericID.PhysicalConnectionCaps(); |
|
111 if (iPhysicalConnection & KPCWired) |
|
112 { |
|
113 iPhysicalConnectionType = KPCWired; |
|
114 } |
|
115 else if (iPhysicalConnection & KPCBluetooth) |
|
116 { |
|
117 iPhysicalConnectionType = KPCBluetooth; |
|
118 } |
|
119 else if (iPhysicalConnection & KPCInfraRed) |
|
120 { |
|
121 iPhysicalConnectionType = KPCInfraRed; |
|
122 } |
|
123 else if (iPhysicalConnection & KPCUSB) |
|
124 { |
|
125 iPhysicalConnectionType = KPCUSB; |
|
126 } |
|
127 else if (iPhysicalConnection & KPCHDMI) |
|
128 { |
|
129 iPhysicalConnectionType = KPCHDMI; |
|
130 } |
96 iAccessoryMode.NotifyAccessoryModeChanged( iStatus, iAccMode ); |
131 iAccessoryMode.NotifyAccessoryModeChanged( iStatus, iAccMode ); |
97 SetActive(); |
132 SetActive(); |
|
133 } |
|
134 else |
|
135 { |
|
136 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): Error in Getting AccessoryConnectionStatus Error: %d " ),err ) ); |
|
137 } |
|
138 } |
|
139 else |
|
140 { |
|
141 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): RAccessoryConnection::CreateSubSession - Error: %d" ), err ) ); |
|
142 } |
98 } |
143 } |
99 else |
144 else |
100 { |
145 { |
101 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): RAccessoryMode::CreateSubSession - Error: %d" ), err ) ); |
146 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::ConstructL(): RAccessoryMode::CreateSubSession - Error: %d" ), err ) ); |
102 } |
147 } |
113 |
158 |
114 void CSysApAccessoryObserver::DoCancel() |
159 void CSysApAccessoryObserver::DoCancel() |
115 { |
160 { |
116 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::DoCancel()" ) ) ); |
161 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::DoCancel()" ) ) ); |
117 iAccessoryMode.CancelNotifyAccessoryModeChanged(); |
162 iAccessoryMode.CancelNotifyAccessoryModeChanged(); |
|
163 iAccessoryConnection.CancelGetAccessoryConnectionStatus(); |
118 } |
164 } |
119 |
165 |
120 // ---------------------------------------------------------------------------- |
166 // ---------------------------------------------------------------------------- |
121 // CSysApAccessoryObserver::RunL() |
167 // CSysApAccessoryObserver::RunL() |
122 // ---------------------------------------------------------------------------- |
168 // ---------------------------------------------------------------------------- |
131 { |
177 { |
132 iSysApAppUi.HandleAccessoryDisconnectedL(); |
178 iSysApAppUi.HandleAccessoryDisconnectedL(); |
133 } |
179 } |
134 else if ( iAccMode.iAccessoryMode != iPreviousMode ) // for filtering audio output change notifications |
180 else if ( iAccMode.iAccessoryMode != iPreviousMode ) // for filtering audio output change notifications |
135 { |
181 { |
136 iSysApAppUi.HandleAccessoryConnectedL( iAccMode.iAccessoryMode ); |
182 TInt err( KErrNone ); |
|
183 TAccPolGenericIDArray iAccGenericIDArray; |
|
184 err = iAccessoryConnection.GetAccessoryConnectionStatus( iAccGenericIDArray ); |
|
185 if ( err == KErrNone ) |
|
186 { |
|
187 TInt iIndex = 0; |
|
188 TAccPolGenericID iAccGenericID = iAccGenericIDArray.GetGenericIDL( iIndex ); |
|
189 TUint iPhysicalConnection = iAccGenericID.PhysicalConnectionCaps(); |
|
190 if ( iPhysicalConnection & KPCWired ) |
|
191 { |
|
192 iPhysicalConnectionType = KPCWired; |
|
193 } |
|
194 else if ( iPhysicalConnection & KPCBluetooth ) |
|
195 { |
|
196 iPhysicalConnectionType = KPCBluetooth; |
|
197 } |
|
198 else if ( iPhysicalConnection & KPCInfraRed ) |
|
199 { |
|
200 iPhysicalConnectionType = KPCInfraRed; |
|
201 } |
|
202 else if ( iPhysicalConnection & KPCUSB ) |
|
203 { |
|
204 iPhysicalConnectionType = KPCUSB; |
|
205 } |
|
206 else if ( iPhysicalConnection & KPCHDMI ) |
|
207 { |
|
208 iPhysicalConnectionType = KPCHDMI; |
|
209 } |
|
210 } |
|
211 TRACES( RDebug::Print( _L("CSysApAccessoryObserver::RunL: iAccessoryMode: %d, iPhysicalConnectionType: %d" ), iAccMode.iAccessoryMode,iPhysicalConnectionType ) ); |
|
212 iSysApAppUi.HandleAccessoryConnectedL( iAccMode.iAccessoryMode,iPhysicalConnectionType ); |
137 } |
213 } |
138 |
214 |
139 iPreviousMode = iAccMode.iAccessoryMode; |
215 iPreviousMode = iAccMode.iAccessoryMode; |
140 |
216 |
141 iAccessoryMode.NotifyAccessoryModeChanged( iStatus, iAccMode ); |
217 iAccessoryMode.NotifyAccessoryModeChanged( iStatus, iAccMode ); |
166 TAccMode CSysApAccessoryObserver::GetAccessoryMode() const |
242 TAccMode CSysApAccessoryObserver::GetAccessoryMode() const |
167 { |
243 { |
168 return iAccMode.iAccessoryMode; |
244 return iAccMode.iAccessoryMode; |
169 } |
245 } |
170 |
246 |
|
247 |
|
248 // ---------------------------------------------------------------------------- |
|
249 // CSysApAccessoryObserver::GetAccessoryConnectionType() const |
|
250 // ---------------------------------------------------------------------------- |
|
251 TInt CSysApAccessoryObserver::GetAccessoryConnectionType() const |
|
252 { |
|
253 return iPhysicalConnectionType; |
|
254 } |
171 // End of File |
255 // End of File |
172 |
256 |
173 |
257 |
174 |
258 |
175 |
259 |