--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mtpfws/mtpfw/dataproviders/dataproviderapi/interface/cmtpobjectmetadata.h Tue Feb 02 01:11:40 2010 +0200
@@ -0,0 +1,174 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef CMTPOBJECTMETADATA_H
+#define CMTPOBJECTMETADATA_H
+
+#include <mtp/cmtpmetadata.h>
+
+/**
+Defines the MTP object meta-data.
+@publishedPartner
+@released
+*/
+class CMTPObjectMetaData : public CMTPMetaData
+{
+public:
+
+ /**
+ MTP object meta-data element identifiers.
+ */
+ enum TElementId
+ {
+ /**
+ The ID of the data provider responsible for the data object. This
+ element is of type @see TUint.
+ */
+ EDataProviderId = 0,
+
+ /**
+ The object format code. This element is of type @see TUint.
+ */
+ EFormatCode = 1,
+
+ /**
+ The object format sub-code. Currently this field is ignored unless the
+ @see EFormatCode contains a value of @see EMTPFormatCodeAssociation, in
+ which case this field should the specify the MTP association type code.
+ This element is of type @see TUint.
+ */
+ EFormatSubCode = 2,
+
+ /**
+ The object handle. This element is of type @see TUint.
+ */
+ EHandle = 3,
+
+ /**
+ The set of MTP operational modes in which the object is visible and
+ will be enumerated to a connected MTP Initiator. The MTP operational
+ modes are represented as a set of @see TMTPOperationalMode bit flags.
+ This element is of type @see TUint
+ */
+ EModes = 4,
+
+ /**
+ The parent object handle. This element is of type @see TUint.
+ */
+ EParentHandle = 5,
+
+ /**
+ The MTP storage ID of the storage on which the data object resides.
+ This element is of type @see TUint.
+ */
+ EStorageId = 6,
+
+ /**
+ The MTP storage ID of the storage on which the data object resides.
+ This element is of type @see TUint.
+ */
+ EStorageVolumeId = 7,
+
+ /**
+ The data object's System Unique IDentifier (SUID). This element is of
+ type @see TDesC&.
+ */
+ ESuid = 8,
+
+ /**
+ The data object's user rating
+ This element is of type @see TUint.
+ @deprecated
+ */
+ EUserRating = 9,
+
+ /**
+ The data object's BuyNow flag
+ This element is of type @see TUint.
+ @deprecated
+ */
+ EBuyNow = 10,
+
+ /** The data object's Played flag
+ This element is of type @see TUint.
+ @deprecated
+ */
+ EPlayCount = 11,
+
+ /**
+ The data Objects Identifier as in HandleStore table
+ This element is of type @see TUint.
+ */
+ EIdentifier = 12,
+
+ /**
+ The id related to ParentHandle
+ This element is of type @see TUint.
+ */
+ //EParentId = 13,
+
+ /**
+ The flag, used in object modification, indicates if the modified object
+ should be reported to initiator
+ This element is of type @see TUint.
+ */
+ ENonConsumable = 13,
+
+ EObjectMetaDataUpdate = 14,
+
+ EName = 15,
+ /**
+ The number of elements.
+ */
+ ENumElements,
+ };
+
+public:
+
+ IMPORT_C static CMTPObjectMetaData* NewL();
+ IMPORT_C static CMTPObjectMetaData* NewLC();
+ IMPORT_C static CMTPObjectMetaData* NewL(TUint aDataProviderId, TUint aFormatCode, TUint aStorageId, const TDesC& aSuid);
+ IMPORT_C static CMTPObjectMetaData* NewLC(TUint aDataProviderId, TUint aFormatCode, TUint aStorageId, const TDesC& aSuid);
+ IMPORT_C ~CMTPObjectMetaData();
+
+private:
+
+ CMTPObjectMetaData();
+ void ConstructL();
+ void ConstructL(TUint aDataProviderId, TUint aFormatCode, TUint aStorageId, const TDesC& aSuid);
+ /* @deprecated */
+ void ConstructL( const TDesC& aSuid, TUint aUserRating, TUint aBuyNow, TUint aPlayCount);
+
+public:
+ /* @deprecated */
+ IMPORT_C static CMTPObjectMetaData* NewL(const TDesC& aSuid, TUint aUserRating, TUint aBuyNow, TUint aPlayCount );
+ /* @deprecated */
+ IMPORT_C static CMTPObjectMetaData* NewLC(const TDesC& aSuid, TUint aUserRating, TUint aBuyNow, TUint aPlayCount );
+
+private: // Owned
+
+ /**
+ The element meta-data.
+ */
+ static const TElementMetaData KElements[];
+};
+
+#endif // CMTPOBJECTMETADATA_H