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 |