20 #include <mtp/cmtpdataproviderplugin.h> |
20 #include <mtp/cmtpdataproviderplugin.h> |
21 #include <mtp/cmtpobjectmetadata.h> |
21 #include <mtp/cmtpobjectmetadata.h> |
22 |
22 |
23 #include "cmtpdataprovidercontroller.h" |
23 #include "cmtpdataprovidercontroller.h" |
24 #include "cmtpdataprovider.h" |
24 #include "cmtpdataprovider.h" |
|
25 #include "cmtpdevicedatastore.h" |
25 |
26 |
26 #include "cmtpgetnumobjects.h" |
27 #include "cmtpgetnumobjects.h" |
27 #include "mtpdevicedpconst.h" |
28 #include "mtpdevicedpconst.h" |
28 #include "mtpdevdppanic.h" |
29 #include "mtpdevdppanic.h" |
29 |
30 |
|
31 // Class constants. |
|
32 __FLOG_STMT(_LIT8(KComponent,"GetNumObjects");) |
30 |
33 |
31 /** |
34 /** |
32 Verification data for GetNumObjects request |
35 Verification data for GetNumObjects request |
33 */ |
36 */ |
34 const TMTPRequestElementInfo KMTPGetNumObjectsPolicy[] = |
37 const TMTPRequestElementInfo KMTPGetNumObjectsPolicy[] = |
59 */ |
62 */ |
60 CMTPGetNumObjects::~CMTPGetNumObjects() |
63 CMTPGetNumObjects::~CMTPGetNumObjects() |
61 { |
64 { |
62 iDevDpSingletons.Close(); |
65 iDevDpSingletons.Close(); |
63 iSingletons.Close(); |
66 iSingletons.Close(); |
|
67 __FLOG_CLOSE; |
64 } |
68 } |
65 /** |
69 /** |
66 Standard c++ constructor |
70 Standard c++ constructor |
67 */ |
71 */ |
68 CMTPGetNumObjects::CMTPGetNumObjects(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection) : |
72 CMTPGetNumObjects::CMTPGetNumObjects(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection) : |
74 /** |
78 /** |
75 Second phase constructor. |
79 Second phase constructor. |
76 */ |
80 */ |
77 void CMTPGetNumObjects::ConstructL() |
81 void CMTPGetNumObjects::ConstructL() |
78 { |
82 { |
|
83 __FLOG_OPEN(KMTPSubsystem, KComponent); |
79 iSingletons.OpenL(); |
84 iSingletons.OpenL(); |
80 iDevDpSingletons.OpenL(iFramework); |
85 iDevDpSingletons.OpenL(iFramework); |
81 } |
86 } |
82 |
87 |
83 TMTPResponseCode CMTPGetNumObjects::CheckRequestL() |
88 TMTPResponseCode CMTPGetNumObjects::CheckRequestL() |
129 /** |
134 /** |
130 GetNumObjects request handler |
135 GetNumObjects request handler |
131 */ |
136 */ |
132 void CMTPGetNumObjects::ServiceL() |
137 void CMTPGetNumObjects::ServiceL() |
133 { |
138 { |
134 TMTPObjectMgrQueryParams params(Request().Uint32(TMTPTypeRequest::ERequestParameter1), Request().Uint32(TMTPTypeRequest::ERequestParameter2), Request().Uint32(TMTPTypeRequest::ERequestParameter3)); |
139 __FLOG(_L8("ServiceL - Entry")); |
135 TUint32 count = iFramework.ObjectMgr().CountL(params); |
140 __FLOG_VA((_L8("IsConnectMac = %d; ERequestParameter2 = %d" ), iDevDpSingletons.DeviceDataStore().IsConnectMac(), Request().Uint32(TMTPTypeRequest::ERequestParameter2))); |
136 SendResponseL(EMTPRespCodeOK, 1, &count); |
141 if(iDevDpSingletons.DeviceDataStore().IsConnectMac() |
|
142 &&(KMTPFormatsAll == Request().Uint32(TMTPTypeRequest::ERequestParameter2))) |
|
143 { |
|
144 //get folder count |
|
145 TMTPObjectMgrQueryParams paramsFolder(Request().Uint32(TMTPTypeRequest::ERequestParameter1), EMTPFormatCodeAssociation, Request().Uint32(TMTPTypeRequest::ERequestParameter3)); |
|
146 TUint32 count = iFramework.ObjectMgr().CountL(paramsFolder); |
|
147 __FLOG_VA((_L8("ConnectMac and Fetch all, folder count = %d"), count)); |
|
148 |
|
149 //get script count |
|
150 TMTPObjectMgrQueryParams paramsScript(Request().Uint32(TMTPTypeRequest::ERequestParameter1), EMTPFormatCodeScript, Request().Uint32(TMTPTypeRequest::ERequestParameter3)); |
|
151 count += iFramework.ObjectMgr().CountL(paramsScript); |
|
152 |
|
153 //get Image file count |
|
154 TMTPObjectMgrQueryParams paramsImage(Request().Uint32(TMTPTypeRequest::ERequestParameter1), EMTPFormatCodeEXIFJPEG, Request().Uint32(TMTPTypeRequest::ERequestParameter3)); |
|
155 count += iFramework.ObjectMgr().CountL(paramsImage); |
|
156 __FLOG_VA((_L8("ConnectMac and Fetch all, total count = %d"), count)); |
|
157 SendResponseL(EMTPRespCodeOK, 1, &count); |
|
158 } |
|
159 else |
|
160 { |
|
161 TMTPObjectMgrQueryParams params(Request().Uint32(TMTPTypeRequest::ERequestParameter1), Request().Uint32(TMTPTypeRequest::ERequestParameter2), Request().Uint32(TMTPTypeRequest::ERequestParameter3)); |
|
162 TUint32 count = iFramework.ObjectMgr().CountL(params); |
|
163 __FLOG_VA((_L8("NOT ConnectMac or NOT Fetch all, total count = %d"), count)); |
|
164 SendResponseL(EMTPRespCodeOK, 1, &count); |
|
165 } |
|
166 __FLOG(_L8("ServiceL - Exit")); |
137 } |
167 } |
138 |
168 |
139 /** |
169 /** |
140 Check if the format code is supported by the current installed data providers |
170 Check if the format code is supported by the current installed data providers |
141 */ |
171 */ |