|
1 /* |
|
2 * Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: implementation of a server session |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 // INCLUDE FILES |
|
24 #include "upnpavcontrollersession.h" |
|
25 #include "upnpavcontrollerserver.pan" |
|
26 |
|
27 #include "upnpavcontrollerserver.h" |
|
28 #include "upnpavcontrollerimpl.h" |
|
29 |
|
30 _LIT( KComponentLogfile, "upnpavcontrollerserver.txt"); |
|
31 #include "upnplog.h" |
|
32 |
|
33 // ================= MEMBER FUNCTIONS ======================= |
|
34 |
|
35 // -------------------------------------------------------------------------- |
|
36 // CUpnpAVControllerSession::CUpnpAVControllerSession |
|
37 // C++ default constructor can NOT contain any code, that |
|
38 // might leave. |
|
39 // -------------------------------------------------------------------------- |
|
40 // |
|
41 CUpnpAVControllerSession::CUpnpAVControllerSession( |
|
42 CUpnpAVControllerServer& aServer): |
|
43 CSession2(), |
|
44 iAVControllerServer( aServer ) |
|
45 { |
|
46 } |
|
47 |
|
48 // -------------------------------------------------------------------------- |
|
49 // CUpnpAVControllerSession::ConstructL |
|
50 // Symbian 2nd phase constructor can leave. |
|
51 // -------------------------------------------------------------------------- |
|
52 // |
|
53 void CUpnpAVControllerSession::ConstructL() |
|
54 { |
|
55 __LOG( "CUpnpAVControllerSession::ConstructL" ); |
|
56 |
|
57 iAVControllerServer.IncrementSessions(); |
|
58 |
|
59 iAVController = CUPnPAVControllerImpl::NewL |
|
60 ( |
|
61 iAVControllerServer.MediaServer(), |
|
62 iAVControllerServer |
|
63 ); |
|
64 } |
|
65 |
|
66 // -------------------------------------------------------------------------- |
|
67 // CUpnpAVControllerSession::~CUpnpAVControllerSession |
|
68 // Destructor. |
|
69 // -------------------------------------------------------------------------- |
|
70 // |
|
71 CUpnpAVControllerSession::~CUpnpAVControllerSession() |
|
72 { |
|
73 iAVControllerServer.DecrementSessions(); |
|
74 |
|
75 delete iAVController; |
|
76 |
|
77 } |
|
78 |
|
79 // -------------------------------------------------------------------------- |
|
80 // CUpnpAVControllerSession::ServiceL |
|
81 // Handle client requests. |
|
82 // -------------------------------------------------------------------------- |
|
83 // |
|
84 void CUpnpAVControllerSession::ServiceL( const RMessage2& aMessage ) |
|
85 { |
|
86 |
|
87 switch ( aMessage.Function() ) |
|
88 { |
|
89 case EAVControllerStartupRequest: |
|
90 iAVControllerServer.StartUpL(); |
|
91 aMessage.Complete( KErrNone ); |
|
92 break; |
|
93 |
|
94 case EAVControllerCancelStartupRequest: |
|
95 iAVControllerServer.CancelStartUp(); |
|
96 aMessage.Complete( KErrNone ); |
|
97 break; |
|
98 |
|
99 case EAVControllerDeviceRequest: |
|
100 iAVController->EnableDeviceDiscoveryL( aMessage ); |
|
101 break; |
|
102 |
|
103 case EAVControllerGetDeviceRequest: |
|
104 iAVController->GetDeviceL( aMessage ); |
|
105 break; |
|
106 |
|
107 case EAVControllerCancelDeviceRequest: |
|
108 iAVController->DisableDeviceDiscoveryL(); |
|
109 aMessage.Complete( KErrNone ); |
|
110 break; |
|
111 |
|
112 case EAVControllerGetDeviceListSizeRequest: |
|
113 iAVController->GetDeviceListSizeL( aMessage ); |
|
114 break; |
|
115 |
|
116 case EAVControllerGetDeviceListRequest: |
|
117 iAVController->GetDeviceListL( aMessage ); |
|
118 break; |
|
119 |
|
120 case EAVControllerCreateRenderingSession: |
|
121 iAVController->CreateRenderingSessionL( aMessage ); |
|
122 break; |
|
123 |
|
124 case EAVControllerDestroyRenderingSession: |
|
125 iAVController->DestroyRenderingSessionL( aMessage ); |
|
126 break; |
|
127 |
|
128 case EAVControllerEventRequest: |
|
129 iAVController->EventRequestL( aMessage ); |
|
130 break; |
|
131 |
|
132 case EAVControllerCancelEventRequest: |
|
133 iAVController->CancelEventRequestL( aMessage ); |
|
134 break; |
|
135 |
|
136 case EAVControllerSetURI: |
|
137 iAVController->SetURIL( aMessage ); |
|
138 break; |
|
139 |
|
140 case EAVControllerCancelSetURI: |
|
141 iAVController->CancelSetURIL( aMessage ); |
|
142 break; |
|
143 |
|
144 case EAVControllerSetNextURI: |
|
145 iAVController->SetNextURIL( aMessage ); |
|
146 break; |
|
147 |
|
148 case EAVControllerCancelSetNextURI: |
|
149 iAVController->CancelSetNextURIL( aMessage ); |
|
150 break; |
|
151 |
|
152 case EAVControllerPlay: |
|
153 iAVController->PlayL( aMessage ); |
|
154 break; |
|
155 |
|
156 case EAVControllerCancelPlay: |
|
157 iAVController->CancelPlayL( aMessage ); |
|
158 break; |
|
159 |
|
160 case EAVControllerStop: |
|
161 iAVController->StopL( aMessage ); |
|
162 break; |
|
163 |
|
164 case EAVControllerCancelStop: |
|
165 iAVController->CancelStopL( aMessage ); |
|
166 break; |
|
167 |
|
168 case EAVControllerPause: |
|
169 iAVController->PauseL( aMessage ); |
|
170 break; |
|
171 |
|
172 case EAVControllerCancelPause: |
|
173 iAVController->CancelPauseL( aMessage ); |
|
174 break; |
|
175 |
|
176 case EAVControllerSetVolume: |
|
177 iAVController->SetVolumeL( aMessage ); |
|
178 break; |
|
179 |
|
180 case EAVControllerCancelSetVolume: |
|
181 iAVController->CancelSetVolumeL( aMessage ); |
|
182 break; |
|
183 |
|
184 case EAVControllerGetVolume: |
|
185 iAVController->GetVolumeL( aMessage ); |
|
186 break; |
|
187 |
|
188 case EAVControllerCancelGetVolume: |
|
189 iAVController->CancelGetVolumeL( aMessage ); |
|
190 break; |
|
191 |
|
192 case EAVControllerSetMute: |
|
193 iAVController->SetMuteL( aMessage ); |
|
194 break; |
|
195 |
|
196 case EAVControllerCancelSetMute: |
|
197 iAVController->CancelSetMuteL( aMessage ); |
|
198 break; |
|
199 |
|
200 case EAVControllerGetMute: |
|
201 iAVController->GetMuteL( aMessage ); |
|
202 break; |
|
203 |
|
204 case EAVControllerCancelGetMute: |
|
205 iAVController->CancelGetMuteL( aMessage ); |
|
206 break; |
|
207 |
|
208 case EAVControllerGetPositionInfo: |
|
209 iAVController->GetPositionInfoL( aMessage ); |
|
210 break; |
|
211 |
|
212 case EAVControllerCancelGetPositionInfo: |
|
213 iAVController->CancelGetPositionInfoL( aMessage ); |
|
214 break; |
|
215 |
|
216 case EAVControllerCreateBrowsingSession: |
|
217 iAVController->CreateBrowsingSessionL( aMessage ); |
|
218 break; |
|
219 |
|
220 case EAVControllerDestroyBrowsingSession: |
|
221 iAVController->DestroyBrowsingSessionL( aMessage ); |
|
222 break; |
|
223 |
|
224 case EAVControllerGetBrowseResponseSize: |
|
225 iAVController->GetBrowseResponseSizeL( aMessage ); |
|
226 break; |
|
227 |
|
228 case EAVControllerCancelGetBrowseResponseSize: |
|
229 iAVController->CancelGetBrowseResponseSizeL( aMessage ); |
|
230 break; |
|
231 |
|
232 case EAVControllerGetBrowseResponse: |
|
233 iAVController->GetBrowseResponseL( aMessage ); |
|
234 break; |
|
235 |
|
236 case EAVControllerGetSearchResponseSize: |
|
237 iAVController->GetSearchResponseSizeL( aMessage ); |
|
238 break; |
|
239 |
|
240 case EAVControllerCancelGetSearchResponseSize: |
|
241 iAVController->CancelGetSearchResponseSizeL( aMessage ); |
|
242 break; |
|
243 |
|
244 case EAVControllerGetSearchResponse: |
|
245 iAVController->GetSearchResponseL( aMessage ); |
|
246 break; |
|
247 |
|
248 case EAVControllerGetSearchCapabilitiesSize: |
|
249 iAVController->GetSearchCapabitiesSizeL( aMessage ); |
|
250 break; |
|
251 |
|
252 case EAVControllerCancelGetSearchCapabilitiesSize: |
|
253 iAVController->CancelGetSearchCapabitiesSizeL( aMessage ); |
|
254 break; |
|
255 |
|
256 case EAVControllerGetSearchCapabilities: |
|
257 iAVController->GetSearchCapabitiesL( aMessage ); |
|
258 break; |
|
259 |
|
260 case EAVControllerCreateContainer: |
|
261 iAVController->CreateContainerL( aMessage ); |
|
262 break; |
|
263 |
|
264 case EAVControllerCancelCreateContainer: |
|
265 iAVController->CancelCreateContainerL( aMessage ); |
|
266 break; |
|
267 |
|
268 case EAVControllerDeleteObject: |
|
269 iAVController->DeleteObjectL( aMessage ); |
|
270 break; |
|
271 |
|
272 case EAVControllerCancelDeleteObject: |
|
273 iAVController->CancelDeleteObjectL( aMessage ); |
|
274 break; |
|
275 |
|
276 case EAVControllerDeviceDisappearedRequest: |
|
277 iAVController->DeviceDisappearedRequestL( aMessage ); |
|
278 break; |
|
279 |
|
280 case EAVControllerCancelDeviceDisappearedRequest: |
|
281 iAVController->CancelDeviceDisappearedRequestL( aMessage ); |
|
282 break; |
|
283 |
|
284 case EAVControllerStartMediaServer: |
|
285 iAVControllerServer.StartMediaServerL( aMessage ); |
|
286 break; |
|
287 |
|
288 case EAVControllerCancelStartMediaServer: |
|
289 iAVControllerServer.CancelStartMediaServerL( aMessage ); |
|
290 break; |
|
291 |
|
292 case EAVControllerStopMediaServer: |
|
293 iAVControllerServer.StopMediaServerL( aMessage ); |
|
294 break; |
|
295 |
|
296 case EAVControllerMonitorConnection: |
|
297 iAVController->MonitorConnectionL( aMessage ); |
|
298 break; |
|
299 |
|
300 case EAVControllerCancelMonitorConnection: |
|
301 iAVController->CancelMonitorConnectionL( aMessage ); |
|
302 break; |
|
303 |
|
304 case EAVControllerMSServicesInUse: |
|
305 iAVControllerServer.MSServicesInUse( aMessage ); |
|
306 break; |
|
307 |
|
308 case EAVControllerCreateDownloadSession: |
|
309 iAVController->CreateDownloadSessionL( aMessage ); |
|
310 break; |
|
311 |
|
312 case EAVControllerCreateUploadSession: |
|
313 iAVController->CreateUploadSessionL( aMessage ); |
|
314 break; |
|
315 |
|
316 case EAVControllerDestroyDownloadSession: |
|
317 iAVController->DestroyDownloadSessionL( aMessage ); |
|
318 break; |
|
319 |
|
320 case EAVControllerDestroyUploadSession: |
|
321 iAVController->DestroyUploadSessionL( aMessage ); |
|
322 break; |
|
323 |
|
324 case EAVControllerStartDownload: |
|
325 iAVController->StartDownloadL( aMessage ); |
|
326 break; |
|
327 |
|
328 case EAVControllerCancelDownload: |
|
329 iAVController->CancelDownloadL( aMessage ); |
|
330 break; |
|
331 |
|
332 case EAVControllerCancelAllDownloads: |
|
333 iAVController->CancelAllDownloadsL( aMessage ); |
|
334 break; |
|
335 |
|
336 case EAVControllerStartUpload: |
|
337 iAVController->StartUploadL( aMessage ); |
|
338 break; |
|
339 |
|
340 case EAVControllerCancelUpload: |
|
341 iAVController->CancelUploadL( aMessage ); |
|
342 break; |
|
343 |
|
344 case EAVControllerCancelAllUploads: |
|
345 iAVController->CancelAllUploadsL( aMessage ); |
|
346 break; |
|
347 |
|
348 case EAVControllerStartTrackingUploadProgress: |
|
349 iAVController->StartTrackingUploadProgressL( aMessage ); |
|
350 break; |
|
351 |
|
352 case EAVControllerStartTrackingDownloadProgress: |
|
353 iAVController->StartTrackingDownloadProgressL( aMessage ); |
|
354 break; |
|
355 |
|
356 case EAVControllerGetDownloadEvent: |
|
357 iAVController->GetDownloadEventL( aMessage ); |
|
358 break; |
|
359 |
|
360 case EAVControllerCancelDownloadEvent: |
|
361 iAVController->CancelGetDownloadEventL( aMessage ); |
|
362 break; |
|
363 |
|
364 case EAVControllerGetUploadEvent: |
|
365 iAVController->GetUploadEventL( aMessage ); |
|
366 break; |
|
367 |
|
368 case EAVControllerCancelUploadEvent: |
|
369 iAVController->CancelGetUploadEventL( aMessage ); |
|
370 break; |
|
371 |
|
372 case EAVControllerStartDownloadFH: |
|
373 iAVController->StartDownloadFHL( aMessage ); |
|
374 break; |
|
375 |
|
376 default: |
|
377 PanicClient( aMessage, EAVControllerServerBadRequest ); |
|
378 break; |
|
379 } |
|
380 } |
|
381 |
|
382 |
|
383 void CUpnpAVControllerSession::DeviceDiscoveredL( |
|
384 CUpnpAVDeviceExtended& aDevice ) |
|
385 { |
|
386 iAVController->DeviceDiscoveredL( aDevice ); |
|
387 } |
|
388 |
|
389 |
|
390 void CUpnpAVControllerSession::DeviceDisappearedL( |
|
391 CUpnpAVDeviceExtended& aDevice ) |
|
392 { |
|
393 iAVController->DeviceDisappearedL( aDevice ); |
|
394 } |
|
395 |
|
396 |
|
397 void CUpnpAVControllerSession::ConnectionLost() |
|
398 { |
|
399 iAVController->ConnectionLost(); |
|
400 } |
|
401 |
|
402 // -------------------------------------------------------------------------- |
|
403 // CUpnpAVControllerSession::PanicClient |
|
404 // Panic client. |
|
405 // -------------------------------------------------------------------------- |
|
406 // |
|
407 void CUpnpAVControllerSession::PanicClient( const RMessage2 &aMessage, |
|
408 TInt aPanic ) const |
|
409 { |
|
410 // Note: this panics the client thread, not server |
|
411 aMessage.Panic( KAVControllerName, aPanic ); |
|
412 } |
|
413 // -------------------------------------------------------------------------- |
|
414 // CUpnpAVControllerSession::NewL |
|
415 // Two-phased constructor. |
|
416 // -------------------------------------------------------------------------- |
|
417 // |
|
418 CUpnpAVControllerSession* CUpnpAVControllerSession::NewL( |
|
419 CUpnpAVControllerServer& aServer ) |
|
420 { |
|
421 CUpnpAVControllerSession* self = |
|
422 CUpnpAVControllerSession::NewLC(aServer); |
|
423 CleanupStack::Pop( self ) ; |
|
424 return self ; |
|
425 } |
|
426 |
|
427 // -------------------------------------------------------------------------- |
|
428 // CUpnpAVControllerSession::NewLC |
|
429 // Two-phased constructor. |
|
430 // -------------------------------------------------------------------------- |
|
431 // |
|
432 CUpnpAVControllerSession* CUpnpAVControllerSession::NewLC( |
|
433 CUpnpAVControllerServer& aServer ) |
|
434 { |
|
435 CUpnpAVControllerSession* self = |
|
436 new (ELeave) CUpnpAVControllerSession(aServer); |
|
437 CleanupStack::PushL( self ); |
|
438 self->ConstructL() ; |
|
439 return self ; |
|
440 } |
|
441 |
|
442 // End of File |
|
443 |
|
444 |
|
445 |