mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidergetobjectproplist.cpp
changeset 25 d881023c13eb
parent 0 a2952bb97e68
child 50 762d760dcfdf
equal deleted inserted replaced
21:a05c44bc3c61 25:d881023c13eb
    13 *
    13 *
    14 * Description:  Implement the operation: getobjectproplist
    14 * Description:  Implement the operation: getobjectproplist
    15  *
    15  *
    16 */
    16 */
    17 
    17 
       
    18 
       
    19 #include <mtp/cmtptypeobjectproplist.h>
       
    20 #include <mtp/cmtptypearray.h>
       
    21 #include <f32file.h>
    18 
    22 
    19 #include "cabstractmediamtpdataprovidergetobjectproplist.h"
    23 #include "cabstractmediamtpdataprovidergetobjectproplist.h"
    20 #include "abstractmediamtpdataproviderconst.h"
    24 #include "abstractmediamtpdataproviderconst.h"
    21 #include "mmmtpdplogger.h"
    25 #include "mmmtpdplogger.h"
    22 #include "mmmtpdpdefs.h"
    26 #include "mmmtpdpdefs.h"
    48 // Destructor
    52 // Destructor
    49 // -----------------------------------------------------------------------------
    53 // -----------------------------------------------------------------------------
    50 //
    54 //
    51 CAbstractMediaMtpDataProviderGetObjectPropList::~CAbstractMediaMtpDataProviderGetObjectPropList()
    55 CAbstractMediaMtpDataProviderGetObjectPropList::~CAbstractMediaMtpDataProviderGetObjectPropList()
    52     {
    56     {
    53 
    57     // Do nothing
    54     }
    58     }
    55 
    59 
    56 // -----------------------------------------------------------------------------
    60 // -----------------------------------------------------------------------------
    57 // CAbstractMediaMtpDataProviderGetObjectPropList::CAbstractMediaMtpDataProviderGetObjectPropList
    61 // CAbstractMediaMtpDataProviderGetObjectPropList::CAbstractMediaMtpDataProviderGetObjectPropList
    58 // Standard C++ Constructor
    62 // Standard C++ Constructor
    59 // -----------------------------------------------------------------------------
    63 // -----------------------------------------------------------------------------
    60 //
    64 //
    61 CAbstractMediaMtpDataProviderGetObjectPropList::CAbstractMediaMtpDataProviderGetObjectPropList( MMTPDataProviderFramework& aFramework,
    65 CAbstractMediaMtpDataProviderGetObjectPropList::CAbstractMediaMtpDataProviderGetObjectPropList( MMTPDataProviderFramework& aFramework,
    62     MMTPConnection& aConnection,
    66     MMTPConnection& aConnection,
    63     MMmMtpDpConfig& aDpConfig ) :
    67     MMmMtpDpConfig& aDpConfig ) :
    64     CGetObjectPropList( aFramework, aConnection, aDpConfig )
    68         CGetObjectPropList( aFramework, aConnection, aDpConfig )
    65     {
    69     {
    66 
    70     // Do nothing
    67     }
    71     }
    68 
    72 
    69 // -----------------------------------------------------------------------------
    73 // -----------------------------------------------------------------------------
    70 // CAbstractMediaMtpDataProviderGetObjectPropList::ConstructL
    74 // CAbstractMediaMtpDataProviderGetObjectPropList::ConstructL
    71 // 2nd Phase Constructor
    75 // 2nd Phase Constructor
    79 // -----------------------------------------------------------------------------
    83 // -----------------------------------------------------------------------------
    80 // CAbstractMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL
    84 // CAbstractMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL
    81 // do nothing here, just leave, as this should never be invoked or invalid propcode
    85 // do nothing here, just leave, as this should never be invoked or invalid propcode
    82 // -----------------------------------------------------------------------------
    86 // -----------------------------------------------------------------------------
    83 //
    87 //
    84 TInt CAbstractMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL( TUint16 /*aPropCode*/,
    88 TInt CAbstractMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL( TUint16 aPropCode,
    85     TUint32 /*aHandle*/ )
    89     TUint32 aHandle )
    86     {
    90     {
    87     PRINT( _L( "MM MTP <> CAbstractMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL, leave with KErrNotSupported" ) );
    91     PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL" ) );
    88     return KErrNotSupported;
    92     TInt err = KErrNone;
       
    93     switch ( aPropCode )
       
    94         {
       
    95         case EMTPObjectPropCodeRepresentativeSampleFormat:
       
    96             {
       
    97             iPropertyElement = &( iPropertyList->ReservePropElemL( aHandle, aPropCode ) );
       
    98             iPropertyElement->SetUint16L( CMTPTypeObjectPropListElement::EValue, 0 );
       
    99             }
       
   100             break;
       
   101         case EMTPObjectPropCodeRepresentativeSampleSize:
       
   102         case EMTPObjectPropCodeRepresentativeSampleHeight:
       
   103         case EMTPObjectPropCodeRepresentativeSampleWidth:
       
   104             {
       
   105             iPropertyElement = &( iPropertyList->ReservePropElemL( aHandle, aPropCode ) );
       
   106             iPropertyElement->SetUint32L( CMTPTypeObjectPropListElement::EValue, 0 );
       
   107             }
       
   108             break;
       
   109         case EMTPObjectPropCodeRepresentativeSampleData:
       
   110             {
       
   111             const TDesC& suid( iObject->DesC( CMTPObjectMetaData::ESuid ) );
       
   112             CMTPTypeArray* desData = CMTPTypeArray::NewLC( EMTPTypeAUINT8 );    // + desData
       
   113 
       
   114             RFile sampleFile;
       
   115             TInt err = sampleFile.Open( iFramework.Fs(), suid, EFileShareReadersOnly );
       
   116             PRINT2( _L( "MM MTP <> EMTPObjectPropCodeRepresentativeSampleData open filename=%S, err=%d" ), &suid, err );
       
   117 
       
   118             CleanupClosePushL( sampleFile );    // + sampleFile
       
   119             TInt size = 0;
       
   120             if( err == KErrNone )
       
   121                 {
       
   122                 err = sampleFile.Size( size );
       
   123                 }
       
   124             PRINT2( _L( "MM MTP <> EMTPObjectPropCodeRepresentativeSampleData sampleFile.Size size=%d, err=%d" ), size, err );
       
   125             if( err == KErrNone && size > 0 )
       
   126                 {
       
   127                 HBufC8* sampleData = HBufC8::NewLC( size * sizeof( TUint8 ) );    // + sampleData
       
   128                 TPtr8 samplePtr = sampleData->Des();
       
   129                 err = sampleFile.Read( samplePtr );
       
   130                 PRINT1( _L( "MM MTP <> EMTPObjectPropCodeRepresentativeSampleData sampleFile.Read err=%d" ), err );
       
   131                 PRINT1( _L( "MM MTP <> EMTPObjectPropCodeRepresentativeSampleData samplePtr.Size=%d" ), samplePtr.Size() );
       
   132                 if( err == KErrNone )
       
   133                     {
       
   134                     desData->SetByDesL( samplePtr );
       
   135                     }
       
   136                 CleanupStack::PopAndDestroy( sampleData );    // - sampleData
       
   137                 }
       
   138             iPropertyElement = &(iPropertyList->ReservePropElemL(aHandle, aPropCode));
       
   139             iPropertyElement->SetArrayL( CMTPTypeObjectPropListElement::EValue, *desData );
       
   140 
       
   141             CleanupStack::PopAndDestroy( &sampleFile );    // - sampleFile
       
   142             CleanupStack::PopAndDestroy( desData );        // - desData
       
   143             }
       
   144             break;
       
   145 
       
   146         default:
       
   147             err = KErrNotSupported;
       
   148         }
       
   149 
       
   150     PRINT1( _L( "MM MTP <= CAbstractMediaMtpDataProviderGetObjectPropList::ServiceSpecificObjectPropertyL, err = %d" ), err );
       
   151     return err;
    89     }
   152     }
    90 
   153 
    91 // end of file
   154 // end of file