mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataprovidergetobjectproplist.cpp
changeset 25 d881023c13eb
parent 0 a2952bb97e68
equal deleted inserted replaced
21:a05c44bc3c61 25:d881023c13eb
    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             }