|
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: media mtp data provider 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 "mediamtpdataproviderprocessor.h" |
|
25 |
|
26 //Include the required header for carrying out the specified request |
|
27 #include "mmmtpdplogger.h" |
|
28 |
|
29 #include "cgetobjectpropssupported.h" |
|
30 #include "cmediamtpdataprovidergetobjectpropdesc.h" |
|
31 #include "cmediamtpdataprovidergetinterdependentpropdesc.h" |
|
32 #include "cgetobject.h" |
|
33 #include "cgetobjectinfo.h" |
|
34 #include "cmediamtpdataprovidergetobjectpropvalue.h" |
|
35 #include "cmediamtpdataprovidergetobjectproplist.h" |
|
36 #include "cmediamtpdataprovidersendobject.h" |
|
37 #include "cmediamtpdataprovidersetobjectpropvalue.h" |
|
38 #include "cmediamtpdataprovidersetobjectproplist.h" |
|
39 #include "cgetobjectreferences.h" |
|
40 #include "csetobjectreferences.h" |
|
41 #include "cdeleteobject.h" |
|
42 #include "cmediamtpdataprovidercopyobject.h" |
|
43 #include "cmediamtpdataprovidermoveobject.h" |
|
44 #include "cgetpartialobject.h" |
|
45 #include "cmediamtpdataprovidergetformatcapabilities.h" |
|
46 |
|
47 /** A mapping table from the operation code to the request processor factory method */ |
|
48 const TMediaMtpDataProviderRequestProcessorEntry KKMediaMtpDataProviderRequestProcessorTable[] = |
|
49 { |
|
50 {EMTPOpCodeGetObjectPropsSupported, CGetObjectPropsSupported::NewL}, //Get Supported Props |
|
51 {EMTPOpCodeGetObjectPropDesc, CMediaMtpDataProviderGetObjectPropDesc::NewL}, //Get Props Description |
|
52 {EMTPOpCodeGetInterdependentPropDesc, CMediaMtpDataProviderGetInterDependentPropDesc::NewL},//Get Interdependent PropDesc |
|
53 {EMTPOpCodeGetObjectInfo, CGetObjectInfo::NewL}, //GetObjectInfo |
|
54 {EMTPOpCodeGetObject, CGetObject::NewL}, //GetObject |
|
55 {EMTPOpCodeGetObjectPropValue, CMediaMtpDataProviderGetObjectPropValue::NewL}, //Get Props Value |
|
56 {EMTPOpCodeGetObjectPropList, CMediaMtpDataProviderGetObjectPropList::NewL}, //GetObjectPropList |
|
57 {EMTPOpCodeSendObjectInfo, CMediaMtpDataProviderSendObject::NewL}, //SendObjectInfo (routed to SendObject) |
|
58 {EMTPOpCodeSendObject, CMediaMtpDataProviderSendObject::NewL}, //SendObject |
|
59 {EMTPOpCodeSendObjectPropList, CMediaMtpDataProviderSendObject::NewL}, // SendobjectPropList (routed to SendObject) |
|
60 {EMTPOpCodeSetObjectPropValue, CMediaMtpDataProviderSetObjectPropValue::NewL}, //Set Props Value |
|
61 {EMTPOpCodeSetObjectPropList, CMediaMtpDataProviderSetObjectPropList::NewL}, //SetObjectPropList |
|
62 {EMTPOpCodeDeleteObject, CDeleteObject::NewL}, //DeleteObject |
|
63 {EMTPOpCodeCopyObject, CMediaMtpDataProviderCopyObject::NewL}, // Copy Object |
|
64 {EMTPOpCodeMoveObject, CMediaMtpDataProviderMoveObject::NewL}, // Move Object |
|
65 {EMTPOpCodeGetPartialObject, CGetPartialObject::NewL}, // GetPartialObject |
|
66 {EMTPOpCodeSetObjectReferences, CSetObjectReferences::NewL}, //Set Object References |
|
67 {EMTPOpCodeGetObjectReferences, CGetObjectReferences::NewL}, //Get Object References |
|
68 {EMTPOpCodeGetFormatCapabilities, CMediaMtpDataProviderGetFormatCapabilities::NewL} // GetFormatCapabilities |
|
69 }; |
|
70 |
|
71 // ----------------------------------------------------------------------------- |
|
72 // MediaMtpDataProviderProcessor::CreateL |
|
73 // Create a request processor that matches the request |
|
74 // ----------------------------------------------------------------------------- |
|
75 // |
|
76 MMmRequestProcessor* MediaMtpDataProviderProcessor::CreateL( MMTPDataProviderFramework& aFramework, |
|
77 const TMTPTypeRequest& aRequest, |
|
78 MMTPConnection& aConnection, |
|
79 MMmMtpDpConfig& aDpConfig ) |
|
80 { |
|
81 TMediaMtpDataProviderRequestProcessorCreateFunc createFunc = NULL; |
|
82 TUint16 operationCode = aRequest.Uint16( |
|
83 TMTPTypeRequest::ERequestOperationCode ); |
|
84 |
|
85 TInt count = sizeof ( KKMediaMtpDataProviderRequestProcessorTable ) |
|
86 / sizeof( TMediaMtpDataProviderRequestProcessorEntry ); |
|
87 |
|
88 for ( TInt i = 0; i < count; i++ ) |
|
89 { |
|
90 if ( KKMediaMtpDataProviderRequestProcessorTable[i].iOperationCode |
|
91 == operationCode ) |
|
92 { |
|
93 PRINT1( _L( "MM MTP <> MediaMtpDataProviderProcessor::CreateL, operation code = 0x%x" ), |
|
94 operationCode ); |
|
95 createFunc = KKMediaMtpDataProviderRequestProcessorTable[i].iCreateFunc; |
|
96 break; |
|
97 } |
|
98 } |
|
99 |
|
100 if ( !createFunc ) |
|
101 { |
|
102 PRINT( _L( "MM MTP <> MediaMtpDataProviderProcessor::CreateL, Can't find processor!!!" ) ); |
|
103 return CRequestUnknown::NewL( aFramework, aConnection ); |
|
104 } |
|
105 |
|
106 return ( *createFunc )( aFramework, aConnection, aDpConfig ); |
|
107 } |
|
108 |
|
109 // end of file |