|
1 /* |
|
2 * Copyright (c) 2009 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: AbstractMedia Dp processor handle |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 #include <mtp/tmtptyperequest.h> |
|
20 |
|
21 //Include the standard request processor headers |
|
22 #include "crequestunknown.h" |
|
23 |
|
24 #include "abstractmediamtpdataproviderprocessor.h" |
|
25 |
|
26 // Include the required header for carrying out the specified request |
|
27 #include "mmmtpdplogger.h" |
|
28 |
|
29 #include "abstractmediamtpdataproviderconst.h" |
|
30 #include "cgetobjectpropssupported.h" |
|
31 #include "cabstractmediamtpdataprovidergetobjectpropdesc.h" |
|
32 #include "cabstractmediamtpdataprovidergetinterdependentpropdesc.h" |
|
33 #include "cgetobject.h" |
|
34 #include "cgetobjectinfo.h" |
|
35 #include "cabstractmediamtpdataprovidersendobject.h" |
|
36 #include "cabstractmediamtpdataprovidergetobjectpropvalue.h" |
|
37 #include "cabstractmediamtpdataprovidergetobjectproplist.h" |
|
38 #include "cabstractmediamtpdataprovidersetobjectpropvalue.h" |
|
39 #include "cabstractmediamtpdataprovidersetobjectproplist.h" |
|
40 #include "cgetobjectreferences.h" |
|
41 #include "cabstractmediamtpdataprovidersetobjectreferences.h" |
|
42 #include "cdeleteobject.h" |
|
43 #include "cabstractmediamtpdataprovidercopyobject.h" |
|
44 #include "cabstractmediamtpdataprovidermoveobject.h" |
|
45 #include "cgetpartialobject.h" |
|
46 #include "cabstractmediamtpdataproviderabstractmediapreference.h" |
|
47 #include "cabstractmediamtpdataprovidergetformatcapabilities.h" |
|
48 |
|
49 |
|
50 /** A mapping table from the operation code to the request processor factory method */ |
|
51 const TAbstractMediaMtpDataProviderRequestProcessorEntry KAbstractMediaMtpDataProviderRequestProcessorTable[] = |
|
52 { |
|
53 {EMTPOpCodeGetObjectPropsSupported, CGetObjectPropsSupported::NewL}, //Get Supported Props |
|
54 {EMTPOpCodeGetObjectPropDesc, CAbstractMediaMtpDataProviderGetObjectPropDesc::NewL}, //Get Props Description |
|
55 {EMTPOpCodeGetInterdependentPropDesc, CAbstractMediaMtpDataProviderGetInterdependentPropDesc::NewL}, |
|
56 {EMTPOpCodeGetObjectInfo, CGetObjectInfo::NewL}, //GetObjectInfo |
|
57 {EMTPOpCodeGetObject, CGetObject::NewL}, //GetObject |
|
58 {EMTPOpCodeGetObjectPropValue, CAbstractMediaMtpDataProviderGetObjectPropValue::NewL}, |
|
59 {EMTPOpCodeGetObjectPropList, CAbstractMediaMtpDataProviderGetObjectPropList::NewL}, //GetObjectPropList |
|
60 {EMTPOpCodeSendObjectInfo, CAbstractMediaMtpDataProviderSendObject::NewL}, //SendObjectInfo (routed to SendObject) |
|
61 {EMTPOpCodeSendObject, CAbstractMediaMtpDataProviderSendObject::NewL}, //SendObject |
|
62 {EMTPOpCodeSendObjectPropList, CAbstractMediaMtpDataProviderSendObject::NewL}, // SendobjectPropList (routed to SendObject) |
|
63 {EMTPOpCodeSetObjectPropValue, CAbstractMediaMtpDataProviderSetObjectPropValue::NewL}, |
|
64 {EMTPOpCodeSetObjectPropList, CAbstractMediaMtpDataProviderSetObjectPropList::NewL}, //SetObjectPropList |
|
65 {EMTPOpCodeGetObjectReferences, CGetObjectReferences::NewL}, //Get Object References |
|
66 {EMTPOpCodeSetObjectReferences, CAbstractMediaMtpDataProviderSetObjectReferences::NewL}, //Set Object References |
|
67 {EMTPOpCodeDeleteObject, CDeleteObject::NewL}, //DeleteObject |
|
68 {EMTPOpCodeCopyObject, CAbstractMediaMtpDataProviderCopyObject::NewL}, // Copy Object |
|
69 {EMTPOpCodeMoveObject, CAbstractMediaMtpDataProviderMoveObject::NewL}, // Move Object |
|
70 {EMTPOpCodeGetPartialObject, CGetPartialObject::NewL}, //GetPartialObject |
|
71 {EMTPExtOpCodeAbstractMediaPreference, CAbstractMediaMtpDataProviderAbstractMediaPreference::NewL}, // WMPReportSyncOnlyAbstractMedias |
|
72 {EMTPOpCodeGetFormatCapabilities, CAbstractMediaMtpDataProviderGetFormatCapabilities::NewL} // GetFormatCapabilities |
|
73 |
|
74 }; |
|
75 |
|
76 // ----------------------------------------------------------------------------- |
|
77 // AbstractMediaMtpDataProviderProcessor::CreateL |
|
78 // Create a request processor that matches the request |
|
79 // ----------------------------------------------------------------------------- |
|
80 // |
|
81 MMmRequestProcessor* AbstractMediaMtpDataProviderProcessor::CreateL( MMTPDataProviderFramework& aFramework, |
|
82 const TMTPTypeRequest& aRequest, |
|
83 MMTPConnection& aConnection, |
|
84 MMmMtpDpConfig& aDpConfig ) |
|
85 { |
|
86 PRINT( _L( "MM MTP => AbstractMediaMtpDataProviderProcessor::CreateL" ) ); |
|
87 |
|
88 TAbstractMediaMtpDataProviderRequestProcessorCreateFunc createFunc = NULL; |
|
89 TUint16 operationCode = aRequest.Uint16( |
|
90 TMTPTypeRequest::ERequestOperationCode ); |
|
91 |
|
92 TInt count = sizeof( KAbstractMediaMtpDataProviderRequestProcessorTable ) |
|
93 / sizeof( TAbstractMediaMtpDataProviderRequestProcessorEntry ); |
|
94 |
|
95 for ( TInt i = 0; i < count; i++ ) |
|
96 { |
|
97 if ( KAbstractMediaMtpDataProviderRequestProcessorTable[i].iOperationCode == operationCode ) |
|
98 { |
|
99 createFunc = KAbstractMediaMtpDataProviderRequestProcessorTable[i].iCreateFunc; |
|
100 break; |
|
101 } |
|
102 } |
|
103 |
|
104 if ( !createFunc ) |
|
105 { |
|
106 return CRequestUnknown::NewL( aFramework, aConnection ); |
|
107 } |
|
108 |
|
109 PRINT( _L( "MM MTP <= AbstractMediaMtpDataProviderProcessor::CreateL" ) ); |
|
110 |
|
111 return ( *createFunc )( aFramework, aConnection, aDpConfig ); |
|
112 } |
|
113 |
|
114 // end of file |