14 * Description: Implement the operation: getobjectproplist |
14 * Description: Implement the operation: getobjectproplist |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 |
18 |
19 #include <mtp/mmtpdataproviderframework.h> |
|
20 #include <mtp/cmtptypeobjectproplist.h> |
19 #include <mtp/cmtptypeobjectproplist.h> |
21 #include <mtp/cmtptypestring.h> |
20 #include <mtp/cmtptypestring.h> |
22 #include <mtp/cmtptypearray.h> |
21 #include <mtp/cmtptypearray.h> |
23 |
22 |
24 #include "cmediamtpdataprovidergetobjectproplist.h" |
23 #include "cmediamtpdataprovidergetobjectproplist.h" |
52 // Destructor |
51 // Destructor |
53 // ----------------------------------------------------------------------------- |
52 // ----------------------------------------------------------------------------- |
54 // |
53 // |
55 CMediaMtpDataProviderGetObjectPropList::~CMediaMtpDataProviderGetObjectPropList() |
54 CMediaMtpDataProviderGetObjectPropList::~CMediaMtpDataProviderGetObjectPropList() |
56 { |
55 { |
57 |
56 // Do nothing |
58 } |
57 } |
59 |
58 |
60 // ----------------------------------------------------------------------------- |
59 // ----------------------------------------------------------------------------- |
61 // CMediaMtpDataProviderGetObjectPropList::CMediaMtpDataProviderGetObjectPropList |
60 // CMediaMtpDataProviderGetObjectPropList::CMediaMtpDataProviderGetObjectPropList |
62 // Standard C++ Constructor |
61 // Standard C++ Constructor |
63 // ----------------------------------------------------------------------------- |
62 // ----------------------------------------------------------------------------- |
64 // |
63 // |
65 CMediaMtpDataProviderGetObjectPropList::CMediaMtpDataProviderGetObjectPropList( MMTPDataProviderFramework& aFramework, |
64 CMediaMtpDataProviderGetObjectPropList::CMediaMtpDataProviderGetObjectPropList( MMTPDataProviderFramework& aFramework, |
66 MMTPConnection& aConnection, |
65 MMTPConnection& aConnection, |
67 MMmMtpDpConfig& aDpConfig ) : |
66 MMmMtpDpConfig& aDpConfig ) : |
68 CGetObjectPropList( aFramework, aConnection, aDpConfig ) |
67 CGetObjectPropList( aFramework, aConnection, aDpConfig ) |
69 { |
68 { |
|
69 // Do nothing |
70 } |
70 } |
71 |
71 |
72 // ----------------------------------------------------------------------------- |
72 // ----------------------------------------------------------------------------- |
73 // CMediaMtpDataProviderGetObjectPropList::ConstructL |
73 // CMediaMtpDataProviderGetObjectPropList::ConstructL |
74 // 2nd Phase Constructor |
74 // 2nd Phase Constructor |
94 iPropertyElement = NULL; |
94 iPropertyElement = NULL; |
95 } |
95 } |
96 |
96 |
97 switch ( aPropCode ) |
97 switch ( aPropCode ) |
98 { |
98 { |
99 //case EMTPObjectPropCodeName: |
|
100 case EMTPObjectPropCodeArtist: |
99 case EMTPObjectPropCodeArtist: |
101 case EMTPObjectPropCodeGenre: |
100 case EMTPObjectPropCodeGenre: |
102 case EMTPObjectPropCodeComposer: |
101 case EMTPObjectPropCodeComposer: |
103 case EMTPObjectPropCodeOriginalReleaseDate: |
102 case EMTPObjectPropCodeOriginalReleaseDate: |
104 case EMTPObjectPropCodeAlbumName: |
103 case EMTPObjectPropCodeAlbumName: |
111 *textData, |
110 *textData, |
112 *iObject ) ); |
111 *iObject ) ); |
113 |
112 |
114 PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL err = %d" ), err ); |
113 PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL err = %d" ), err ); |
115 |
114 |
116 if ( err == KErrNone ) |
115 iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode)); |
117 { |
116 iPropertyElement->SetStringL( CMTPTypeObjectPropListElement::EValue, textData->StringChars()); |
118 iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode)); |
|
119 iPropertyElement->SetStringL( CMTPTypeObjectPropListElement::EValue, textData->StringChars()); |
|
120 } |
|
121 |
117 |
122 CleanupStack::PopAndDestroy( textData ); // - textData |
118 CleanupStack::PopAndDestroy( textData ); // - textData |
123 } |
119 } |
124 break; |
120 break; |
125 |
121 |
131 *desData, |
127 *desData, |
132 *iObject ) ); |
128 *iObject ) ); |
133 |
129 |
134 PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL err = %d" ), err ); |
130 PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL err = %d" ), err ); |
135 |
131 |
136 if ( err == KErrNone ) |
132 iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode)); |
137 { |
133 iPropertyElement->SetArrayL( CMTPTypeObjectPropListElement::EValue, *desData); |
138 iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode)); |
134 |
139 iPropertyElement->SetArrayL( CMTPTypeObjectPropListElement::EValue, *desData); |
|
140 } |
|
141 |
|
142 CleanupStack::PopAndDestroy( desData ); // - desData |
135 CleanupStack::PopAndDestroy( desData ); // - desData |
143 } |
136 } |
144 break; |
137 break; |
145 |
138 |
146 case EMTPObjectPropCodeTrack: |
139 case EMTPObjectPropCodeTrack: |
152 TRAP( err, iDpConfig.GetWrapperL().GetObjectMetadataValueL( aPropCode, |
145 TRAP( err, iDpConfig.GetWrapperL().GetObjectMetadataValueL( aPropCode, |
153 uint16, |
146 uint16, |
154 *iObject ) ); |
147 *iObject ) ); |
155 PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL err = %d" ), err ); |
148 PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL err = %d" ), err ); |
156 |
149 |
157 if ( err == KErrNone ) |
150 iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode)); |
158 { |
151 iPropertyElement->SetUint16L( CMTPTypeObjectPropListElement::EValue, uint16.Value()); |
159 iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode)); |
|
160 iPropertyElement->SetUint16L( CMTPTypeObjectPropListElement::EValue, uint16.Value()); |
|
161 } |
|
162 } |
152 } |
163 break; |
153 break; |
164 |
154 |
165 case EMTPObjectPropCodeWidth: |
155 case EMTPObjectPropCodeWidth: |
166 case EMTPObjectPropCodeHeight: |
156 case EMTPObjectPropCodeHeight: |
167 case EMTPObjectPropCodeDuration: |
157 case EMTPObjectPropCodeDuration: |
168 case EMTPObjectPropCodeUseCount: |
|
169 case EMTPObjectPropCodeSampleRate: |
158 case EMTPObjectPropCodeSampleRate: |
170 case EMTPObjectPropCodeAudioWAVECodec: |
159 case EMTPObjectPropCodeAudioWAVECodec: |
171 case EMTPObjectPropCodeAudioBitRate: |
160 case EMTPObjectPropCodeAudioBitRate: |
172 case EMTPObjectPropCodeVideoFourCCCodec: |
161 case EMTPObjectPropCodeVideoFourCCCodec: |
173 case EMTPObjectPropCodeVideoBitRate: |
162 case EMTPObjectPropCodeVideoBitRate: |
178 TRAP( err, iDpConfig.GetWrapperL().GetObjectMetadataValueL( aPropCode, |
167 TRAP( err, iDpConfig.GetWrapperL().GetObjectMetadataValueL( aPropCode, |
179 uint32, |
168 uint32, |
180 *iObject ) ); |
169 *iObject ) ); |
181 PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL err = %d" ), err ); |
170 PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL err = %d" ), err ); |
182 |
171 |
183 if ( err == KErrNone ) |
172 iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode)); |
184 { |
173 iPropertyElement->SetUint32L( CMTPTypeObjectPropListElement::EValue, uint32.Value()); |
185 iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode)); |
|
186 iPropertyElement->SetUint32L( CMTPTypeObjectPropListElement::EValue, uint32.Value()); |
|
187 } |
|
188 } |
174 } |
189 break; |
175 break; |
190 |
176 |
191 case EMTPExtObjectPropCodeOmaDrmStatus: |
177 case EMTPExtObjectPropCodeOmaDrmStatus: |
192 { |
178 { |
193 TInt drmStatus = MmMtpDpUtility::GetDrmStatus( iObject->DesC( CMTPObjectMetaData::ESuid ) ); |
179 TInt drmStatus = MmMtpDpUtility::GetDrmStatus( iObject->DesC( CMTPObjectMetaData::ESuid ) ); |
194 TMTPTypeUint8 result; |
180 TMTPTypeUint8 result; |
195 result.Set( 0 ); |
181 result.Set( EMTPDrmStatusNotProtected ); |
196 |
182 |
197 if ( drmStatus == EMTPDrmStatusProtected ) |
183 if ( drmStatus == EMTPDrmStatusProtected ) |
198 result.Set( 1 ); |
184 result.Set( EMTPDrmStatusProtected ); |
199 |
185 |
200 iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode)); |
186 iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode)); |
201 iPropertyElement->SetUint16L( CMTPTypeObjectPropListElement::EDatatype, EMTPTypeUINT8); |
187 iPropertyElement->SetUint16L( CMTPTypeObjectPropListElement::EDatatype, EMTPTypeUINT8); |
202 iPropertyElement->SetUint8L( CMTPTypeObjectPropListElement::EValue, result.Value()); |
188 iPropertyElement->SetUint8L( CMTPTypeObjectPropListElement::EValue, result.Value()); |
203 } |
189 } |