47 // Two-phase construction method |
50 // Two-phase construction method |
48 // ----------------------------------------------------------------------------- |
51 // ----------------------------------------------------------------------------- |
49 // |
52 // |
50 void CAbstractMediaMtpDataProviderGetObjectPropValue::ConstructL() |
53 void CAbstractMediaMtpDataProviderGetObjectPropValue::ConstructL() |
51 { |
54 { |
52 |
55 // Do nothing |
53 } |
56 } |
54 |
57 |
55 // ----------------------------------------------------------------------------- |
58 // ----------------------------------------------------------------------------- |
56 // CAbstractMediaMtpDataProviderGetObjectPropValue::~CAbstractMediaMtpDataProviderGetObjectPropValue |
59 // CAbstractMediaMtpDataProviderGetObjectPropValue::~CAbstractMediaMtpDataProviderGetObjectPropValue |
57 // Destructor |
60 // Destructor |
58 // ----------------------------------------------------------------------------- |
61 // ----------------------------------------------------------------------------- |
59 // |
62 // |
60 CAbstractMediaMtpDataProviderGetObjectPropValue::~CAbstractMediaMtpDataProviderGetObjectPropValue() |
63 CAbstractMediaMtpDataProviderGetObjectPropValue::~CAbstractMediaMtpDataProviderGetObjectPropValue() |
61 { |
64 { |
62 |
65 // Do nothing |
63 } |
66 } |
64 |
67 |
65 // ----------------------------------------------------------------------------- |
68 // ----------------------------------------------------------------------------- |
66 // CAbstractMediaMtpDataProviderGetObjectPropValue::CAbstractMediaMtpDataProviderGetObjectPropValue |
69 // CAbstractMediaMtpDataProviderGetObjectPropValue::CAbstractMediaMtpDataProviderGetObjectPropValue |
67 // Standard c++ constructor |
70 // Standard c++ constructor |
70 CAbstractMediaMtpDataProviderGetObjectPropValue::CAbstractMediaMtpDataProviderGetObjectPropValue( MMTPDataProviderFramework& aFramework, |
73 CAbstractMediaMtpDataProviderGetObjectPropValue::CAbstractMediaMtpDataProviderGetObjectPropValue( MMTPDataProviderFramework& aFramework, |
71 MMTPConnection& aConnection, |
74 MMTPConnection& aConnection, |
72 MMmMtpDpConfig& aDpConfig ) : |
75 MMmMtpDpConfig& aDpConfig ) : |
73 CGetObjectPropValue( aFramework, aConnection, aDpConfig ) |
76 CGetObjectPropValue( aFramework, aConnection, aDpConfig ) |
74 { |
77 { |
75 |
78 // Do nothing |
76 } |
79 } |
77 |
80 |
78 // ----------------------------------------------------------------------------- |
81 // ----------------------------------------------------------------------------- |
79 // CAbstractMediaMtpDataProviderGetObjectPropValue::ServiceSpecificObjectProperty |
82 // CAbstractMediaMtpDataProviderGetObjectPropValue::ServiceSpecificObjectProperty |
80 // no need to do anything here, just leave, as this should never be |
83 // no need to do anything here, just leave, as this should never be |
81 // invoked or invalid propcode |
84 // invoked or invalid propcode |
82 // ----------------------------------------------------------------------------- |
85 // ----------------------------------------------------------------------------- |
83 // |
86 // |
84 void CAbstractMediaMtpDataProviderGetObjectPropValue::ServiceSpecificObjectPropertyL( TUint16 /*aPropCode*/ ) |
87 void CAbstractMediaMtpDataProviderGetObjectPropValue::ServiceSpecificObjectPropertyL( TUint16 aPropCode ) |
85 { |
88 { |
86 PRINT( _L( "MM MTP <> CAbstractMediaMtpDataProviderGetObjectPropValue::ServiceSpecificObjectPropertyL, leave with KErrNotSupported")); |
89 PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderGetObjectPropValue::ServiceSpecificObjectPropertyL" ) ); |
87 User::Leave( KErrNotSupported ); |
90 switch ( aPropCode ) |
|
91 { |
|
92 case EMTPObjectPropCodeRepresentativeSampleFormat: |
|
93 { |
|
94 iMTPTypeUint16.Set( 0 ); |
|
95 SendDataL( iMTPTypeUint16 ); |
|
96 } |
|
97 break; |
|
98 |
|
99 case EMTPObjectPropCodeRepresentativeSampleSize: // fall through |
|
100 case EMTPObjectPropCodeRepresentativeSampleHeight: // fall through |
|
101 case EMTPObjectPropCodeRepresentativeSampleWidth: |
|
102 { |
|
103 iMTPTypeUint32.Set( 0 ); |
|
104 SendDataL( iMTPTypeUint32 ); |
|
105 } |
|
106 break; |
|
107 |
|
108 case EMTPObjectPropCodeRepresentativeSampleData: |
|
109 { |
|
110 if ( iMTPTypeArray != NULL ) |
|
111 { |
|
112 delete iMTPTypeArray; |
|
113 iMTPTypeArray = NULL; |
|
114 } |
|
115 iMTPTypeArray = CMTPTypeArray::NewL( EMTPTypeAUINT8 ); |
|
116 |
|
117 const TDesC& suid = iObjectInfo->DesC( CMTPObjectMetaData::ESuid ); |
|
118 PRINT1( _L( "MM MTP <> EMTPObjectPropCodeRepresentativeSampleData file suid=%S" ), &suid ); |
|
119 RFile sampleFile; |
|
120 User::LeaveIfError( sampleFile.Open( iFramework.Fs(), suid, EFileShareReadersOnly ) ); |
|
121 CleanupClosePushL( sampleFile ); // + sampleFile |
|
122 |
|
123 TInt size = 0; |
|
124 User::LeaveIfError( sampleFile.Size( size ) ); |
|
125 PRINT1( _L( "MM MTP <> EMTPObjectPropCodeRepresentativeSampleData sampleFile.Size() size=%d" ), size ); |
|
126 |
|
127 if( size > 0 ) |
|
128 { |
|
129 HBufC8* sampleData = HBufC8::NewLC( size * sizeof(TUint8) ); // + sampleData |
|
130 TPtr8 samplePtr = sampleData->Des(); |
|
131 User::LeaveIfError( sampleFile.Read( samplePtr ) ); |
|
132 iMTPTypeArray->SetByDesL( samplePtr ); |
|
133 CleanupStack::PopAndDestroy( sampleData ); // - sampleData |
|
134 } |
|
135 CleanupStack::PopAndDestroy( &sampleFile ); // - sampleFile |
|
136 |
|
137 SendDataL( *iMTPTypeArray ); |
|
138 } |
|
139 break; |
|
140 |
|
141 default: |
|
142 PRINT( _L( "MM MTP <> CAbstractMediaMtpDataProviderGetObjectPropValue::ServiceSpecificObjectPropertyL, leave with KErrNotSupported")); |
|
143 User::Leave( KErrNotSupported ); |
|
144 } |
88 } |
145 } |
89 |
146 |
90 // end of file |
147 // end of file |