mmappcomponents/mmmtpdataprovider/inc/tobjectdescription.h
changeset 25 d881023c13eb
parent 0 a2952bb97e68
equal deleted inserted replaced
21:a05c44bc3c61 25:d881023c13eb
    21 
    21 
    22 #include <mtp/mtpprotocolconstants.h>
    22 #include <mtp/mtpprotocolconstants.h>
    23 
    23 
    24 // vendor extended property code
    24 // vendor extended property code
    25 const TUint16 EMTPExtObjectPropCodeOmaDrmStatus = 0xDB01;
    25 const TUint16 EMTPExtObjectPropCodeOmaDrmStatus = 0xDB01;
       
    26 const TUint32 KMTPMaxDescriptionLen = 0x00000100;  // 256
       
    27 const TInt KMtpMaxStringLength = 255;
       
    28 const TInt KMtpMaxDateTimeStringLength = 15;
       
    29 _LIT( KMtpDateTimeFormat, "%F%Y%M%DT%H%T%S" );
       
    30 
    26 
    31 
    27 struct TObjectDescription
    32 struct TObjectDescription
    28     {
    33     {
    29     TUint16 iPropCode;
    34     TUint16 iPropCode;
    30     TUint32 iGroupCode;
    35     TUint32 iGroupCode;
    31     };
    36     };
    32 
    37 
    33 enum TGroupCodeType
    38 enum TGroupCodeType
    34     {
    39     {
    35     EGroupCodeGeneral     = 0x00000001,
    40     EGroupCodeGeneral    = 0x00000001,
       
    41     EGroupCodeSample     = 0x00000100,
    36     EGroupCodeMediaDB    = 0x00FF0000,
    42     EGroupCodeMediaDB    = 0x00FF0000,
    37     EGroupCodeNotDefined = 0xFFFFFFFF   // TODO: need to reconsider
    43     EGroupCodeNotDefined = 0xFFFFFFFF   // TODO: need to reconsider
    38     };
    44     };
    39 
    45 
    40 static const TGroupCodeType KSupportedGroupCode[] =
    46 static const TGroupCodeType KSupportedGroupCode[] =
    41     {
    47     {
    42     EGroupCodeGeneral,
    48     EGroupCodeGeneral,
       
    49     EGroupCodeSample,
    43     EGroupCodeMediaDB
    50     EGroupCodeMediaDB
    44     };
    51     };
    45 
    52 
    46 static const TObjectDescription KPropGroupMapTable[] =
    53 static const TObjectDescription KPropGroupMapTable[] =
    47     {
    54     {
    48         // First group, mandatory for all
    55         // The first group, mandatory for all
    49         { EMTPObjectPropCodeStorageID,      EGroupCodeGeneral },
    56         { EMTPObjectPropCodeStorageID,        EGroupCodeGeneral },
    50         { EMTPObjectPropCodeObjectFormat,   EGroupCodeGeneral },
    57         { EMTPObjectPropCodeObjectFormat,     EGroupCodeGeneral },
    51         { EMTPObjectPropCodeProtectionStatus, EGroupCodeGeneral },
    58         { EMTPObjectPropCodeProtectionStatus, EGroupCodeGeneral },
    52         { EMTPObjectPropCodeObjectSize,     EGroupCodeGeneral },
    59         { EMTPObjectPropCodeObjectSize,       EGroupCodeGeneral },
    53         { EMTPObjectPropCodeObjectFileName, EGroupCodeGeneral },
    60         { EMTPObjectPropCodeObjectFileName,   EGroupCodeGeneral },
    54         { EMTPObjectPropCodeParentObject,   EGroupCodeGeneral },
    61         { EMTPObjectPropCodeParentObject,     EGroupCodeGeneral },
    55         { EMTPObjectPropCodePersistentUniqueObjectIdentifier,
    62         { EMTPObjectPropCodePersistentUniqueObjectIdentifier,
    56                                             EGroupCodeGeneral },
    63                                               EGroupCodeGeneral },
    57         { EMTPObjectPropCodeNonConsumable,  EGroupCodeGeneral },
    64         { EMTPObjectPropCodeNonConsumable,    EGroupCodeGeneral },
    58 
    65 
    59         // First group, addtional for all
    66         // The first group, addtional for all
    60         { EMTPObjectPropCodeDateCreated,    EGroupCodeGeneral },
    67         { EMTPObjectPropCodeName,             EGroupCodeGeneral },  // only for winlogo
    61         { EMTPObjectPropCodeDateModified,   EGroupCodeGeneral },
    68         { EMTPObjectPropCodeDateCreated,      EGroupCodeGeneral },
       
    69         { EMTPObjectPropCodeDateModified,     EGroupCodeGeneral },
    62 
    70 
    63         // Second group, additional for all
    71         // The first group, mandatory for video
    64         { EMTPObjectPropCodeName,           EGroupCodeMediaDB },
    72         { EMTPObjectPropCodeWidth,            EGroupCodeGeneral },  // only for winlogo
    65         { EMTPObjectPropCodeDateAdded,      EGroupCodeMediaDB },
    73         { EMTPObjectPropCodeHeight,           EGroupCodeGeneral },  // only for winlogo
    66 
    74 
    67         // Second group, mandatory for audio
    75         // The second group, for non-embedded album art
    68         { EMTPObjectPropCodeArtist,         EGroupCodeMediaDB },
    76         { EMTPObjectPropCodeRepresentativeSampleFormat, EGroupCodeGeneral }, // changed for winlogo
    69         { EMTPObjectPropCodeTrack,          EGroupCodeMediaDB },
    77         { EMTPObjectPropCodeRepresentativeSampleSize,   EGroupCodeGeneral }, // changed for winlogo
    70         { EMTPObjectPropCodeGenre,          EGroupCodeMediaDB },
    78         { EMTPObjectPropCodeRepresentativeSampleHeight, EGroupCodeGeneral }, // changed for winlogo
    71         { EMTPObjectPropCodeAlbumName,      EGroupCodeMediaDB },
    79         { EMTPObjectPropCodeRepresentativeSampleWidth,  EGroupCodeGeneral }, // changed for winlogo
    72         { EMTPObjectPropCodeSampleRate,     EGroupCodeMediaDB },
    80         { EMTPObjectPropCodeRepresentativeSampleData,   EGroupCodeGeneral }, // changed for winlogo
       
    81 
       
    82         // The third group, additional for all
       
    83         { EMTPObjectPropCodeDateAdded,        EGroupCodeMediaDB },
       
    84 
       
    85         // The third group, mandatory for audio
       
    86         { EMTPObjectPropCodeArtist,           EGroupCodeMediaDB },
       
    87         { EMTPObjectPropCodeTrack,            EGroupCodeMediaDB },
       
    88         { EMTPObjectPropCodeGenre,            EGroupCodeMediaDB },
       
    89         { EMTPObjectPropCodeAlbumName,        EGroupCodeMediaDB },
       
    90         { EMTPObjectPropCodeSampleRate,       EGroupCodeMediaDB },
    73         { EMTPObjectPropCodeNumberOfChannels, EGroupCodeMediaDB },
    91         { EMTPObjectPropCodeNumberOfChannels, EGroupCodeMediaDB },
    74         { EMTPObjectPropCodeAudioWAVECodec, EGroupCodeMediaDB },
    92         { EMTPObjectPropCodeAudioWAVECodec,   EGroupCodeMediaDB },
    75         { EMTPObjectPropCodeAudioBitRate,   EGroupCodeMediaDB },
    93         { EMTPObjectPropCodeAudioBitRate,     EGroupCodeMediaDB },
    76         { EMTPObjectPropCodeDuration,       EGroupCodeMediaDB },
    94         { EMTPObjectPropCodeDuration,         EGroupCodeMediaDB },
    77         { EMTPObjectPropCodeOriginalReleaseDate, EGroupCodeMediaDB },
    95         { EMTPObjectPropCodeOriginalReleaseDate, EGroupCodeMediaDB },
    78         { EMTPObjectPropCodeDescription,    EGroupCodeMediaDB },
    96         { EMTPObjectPropCodeDescription,      EGroupCodeMediaDB },
    79         { EMTPObjectPropCodeComposer,       EGroupCodeMediaDB },
    97         { EMTPObjectPropCodeComposer,         EGroupCodeMediaDB },
       
    98         { EMTPObjectPropCodeAlbumArtist,      EGroupCodeMediaDB },
    80 
    99 
    81         // Second group, mandatory for video
   100         // The third group, mandatory for video
    82         { EMTPObjectPropCodeWidth,          EGroupCodeMediaDB },
   101         { EMTPObjectPropCodeScanType,         EGroupCodeMediaDB },
    83         { EMTPObjectPropCodeHeight,         EGroupCodeMediaDB },
       
    84         { EMTPObjectPropCodeUseCount,       EGroupCodeMediaDB },
       
    85         { EMTPObjectPropCodeScanType,       EGroupCodeMediaDB },
       
    86         { EMTPObjectPropCodeVideoFourCCCodec, EGroupCodeMediaDB },
   102         { EMTPObjectPropCodeVideoFourCCCodec, EGroupCodeMediaDB },
    87         { EMTPObjectPropCodeVideoBitRate,   EGroupCodeMediaDB },
   103         { EMTPObjectPropCodeVideoBitRate,     EGroupCodeMediaDB },
    88         { EMTPObjectPropCodeFramesPerThousandSeconds, EGroupCodeMediaDB },
   104         { EMTPObjectPropCodeFramesPerThousandSeconds, EGroupCodeMediaDB },
    89         { EMTPObjectPropCodeKeyFrameDistance, EGroupCodeMediaDB },
   105         { EMTPObjectPropCodeKeyFrameDistance, EGroupCodeMediaDB },
    90         { EMTPObjectPropCodeEncodingProfile, EGroupCodeMediaDB },
   106         { EMTPObjectPropCodeEncodingProfile,  EGroupCodeMediaDB },
    91 
   107 
    92         // Second group, additional for video
   108         // The third group, additional for video
    93         { EMTPObjectPropCodeParentalRating, EGroupCodeMediaDB },
   109         { EMTPObjectPropCodeParentalRating,   EGroupCodeMediaDB },
    94         { EMTPObjectPropCodeDRMStatus, EGroupCodeMediaDB },
   110         { EMTPObjectPropCodeDRMStatus,        EGroupCodeMediaDB },
    95         { EMTPExtObjectPropCodeOmaDrmStatus, EGroupCodeMediaDB }
   111         { EMTPExtObjectPropCodeOmaDrmStatus,  EGroupCodeMediaDB }
    96     };
   112     };
    97 
   113 
    98 #endif // TOBJECTDESCRIPTION_H
   114 #endif // TOBJECTDESCRIPTION_H
       
   115