diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mmf/common/mmfcontrollerframeworkbase.h --- a/epoc32/include/mmf/common/mmfcontrollerframeworkbase.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mmf/common/mmfcontrollerframeworkbase.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,434 @@ -mmfcontrollerframeworkbase.h +// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +#ifndef __MMFCONTROLLERFRAMEWORKBASE_H__ +#define __MMFCONTROLLERFRAMEWORKBASE_H__ + +#include +#include +#include + +/** +@publishedAll +@released + +Constant that can be passed into the client API OpenURL() interfaces (as the aIapId parameter) +to request that the default Internet Access Point be used. +*/ +const TInt KUseDefaultIap = -1; + + +/** +@publishedAll +@released + +General purpose class to describe an event. + +Contains a UID to define the actual event type, and an integer to define the event code. + +Controller plugins can define their own event types, but should use +KMMFErrorCategoryControllerGeneralError for any errors that can be described by +the standard system-wide error codes. + +@since 7.0s +*/ +class TMMFEvent + { +public: + + /** + Constructor. + + @param aEventType + A UID to define the type of event. + @param aErrorCode + The error code associated with the event. + + @since 7.0s + */ + IMPORT_C TMMFEvent(TUid aEventType, TInt aErrorCode); + + /** + Default constructor. + + Provided so this class can be packaged in a TPckgBuf<>. + @since 7.0s + */ + IMPORT_C TMMFEvent(); + + /** + A UID to define the event type. + */ + TUid iEventType; + + /** + The error code associated with the event. + */ + TInt iErrorCode; +private: + /** + This member is internal and not intended for use. + */ + TInt iReserved1; + }; + +/** +@publishedAll +@released + +Package buffer for TMMFEvent +*/ +typedef TPckgBuf TMMFEventPckg; + +/** +@publishedAll +@released + +Package buffer for TUid +*/ +typedef TPckgBuf TMMFUidPckg; + +/** +@publishedAll +@released + +Package buffer for TTimeIntervalMicroSeconds +*/ +typedef TPckgBuf TMMFTimeIntervalMicroSecondsPckg; + + +/** +@publishedAll +@released + +A piece of meta data. + +Meta data is often contained in the header of multimedia clips and is used to define +attributes such as the author and copyright details. + +Each piece of meta data has a name, or category, and a value. + +@since 7.0s +*/ +class CMMFMetaDataEntry : public CBase + { +public: + + /** + Constructs a new meta data object using a name and value. + + This method can leave with one of the standard system-wide error codes. + + An example of a name might be: + @code + For example, + @endcode + + An example of a value might be: + @code + + @endcode + + @param aName + The name, or category, to be given to this piece of meta data. + @param aValue + The value of this piece of meta data. + + @return The newly created meta data object. + + @since 7.0s + */ + IMPORT_C static CMMFMetaDataEntry* NewL(const TDesC& aName, const TDesC& aValue); + + /** + Copy constructor. Returns a replica of the meta data passed in. + + This method can leave with one of the standard system-wide error codes. + + @param aOther + The meta data to be copied. + + @return The newly created meta data object. + + @since 7.0s + */ + IMPORT_C static CMMFMetaDataEntry* NewL(const CMMFMetaDataEntry& aOther); + + /** + Default constructor. Returns a blank meta data object. To be used when internalizing + data into the object. + + This method can leave with one of the standard system-wide error codes. + + @return The newly created meta data object. + + @since 7.0s + */ + IMPORT_C static CMMFMetaDataEntry* NewL(); + + /** + Destructor. + + @since 7.0s + */ + IMPORT_C ~CMMFMetaDataEntry(); + + /** + Returns the name, or category, of the meta data. + + @return The name of the meta data object. + + @since 7.0s + */ + IMPORT_C const TDesC& Name() const; + + /** + Returns the value field of the meta data. + + @return The value field of the meta data object. + + @since 7.0s + */ + IMPORT_C const TDesC& Value() const; + + /** + Sets the name, or category, of the meta data. + + This method can leave with one of the standard system-wide error codes. + + @param aName + The new name of the meta data object + + @since 7.0s + */ + IMPORT_C void SetNameL(const TDesC& aName); + + /** + Sets the value field of the meta data. + + This method can leave with one of the standard system-wide error codes. + + @param aValue + The new value field of the meta data object + + @since 7.0s + */ + IMPORT_C void SetValueL(const TDesC& aValue); + + /** + Writes the data contained within the object to a stream so it can be copied + over IPC or written to a file. + + This method can leave with one of the standard system-wide error codes. + + @param aStream + The stream to be written to. + + @since 7.0s + */ + IMPORT_C void ExternalizeL(RWriteStream& aStream) const; + + /** + Reads data from a stream and copies it into this object. Used when copying + a meta data object over IPC or reading it from a file. + + This method can leave with one of the standard system-wide error codes. + + @param aStream + The stream to be read. + + @since 7.0s + */ + IMPORT_C void InternalizeL(RReadStream& aStream); +private: + + /** + Constructor. + + @since 7.0s + */ + CMMFMetaDataEntry(); + + /** + Second phase constructor. + + An example of aName might be: + @code + + @endcode + + An example of aValue might be: + @code + + @endcode + + This method can leave with one of the standard system-wide error codes. + + @param aName + The name, or category, to be given to this piece of meta data. + @param aValue + The value of this piece of meta data. + + @since 7.0s + */ + void ConstructL(const TDesC& aName, const TDesC& aValue); +private: + /** + The name, or category, of the meta data. + */ + HBufC* iName; + + /** + The value of the meta data. + */ + HBufC* iValue; + }; + + + + +/** +@publishedAll +@released + +Class to be used to configure a URL source or sink. + +Contains a variable length string to represent the URL, and whether to use a specified +Internet Access Point or use the default. + +@since 7.0s +*/ +class CMMFUrlParams : public CBase + { +public: + + /** + Factory function to create a CMMFUrlParams object. + + This method can leave with one of the standard system-wide error codes. + + @param aUrl + The url, for example http://www.symbian.com/clip.mpg + @param aIAPId + The Inernet Access Point to be used. This should be a valid IAP ID + retrieved from CommDB. A special value of KUseDefaultIap can be used + to signify that the plugin should just use the default IAP. + + @return A pointer to the newly created object. + + @since 7.0s + */ + IMPORT_C static CMMFUrlParams* NewL(const TDesC& aUrl, TInt aIAPId=KUseDefaultIap); + + /** + Factory function to create a CMMFUrlParams object. + + This method can leave with one of the standard system-wide error codes. + + @param aUrl + The url, for example http://www.symbian.com/clip.mpg + @param aIAPId + The Inernet Access Point to be used. This should be a valid IAP ID + retrieved from CommDB. A special value of KUseDefaultIap can be used + to signify that the plugin should just use the default IAP. + @return A pointer to the newly created object. The object will be left on the cleanup stack. + + @since 7.0s + */ + IMPORT_C static CMMFUrlParams* NewLC(const TDesC& aUrl, TInt aIAPId=KUseDefaultIap); + + /** + Factory function to create a CMMFUrlParams object by internalizing data from a stream. + + This method can leave with one of the standard system-wide error codes. + + @param aStream + The stream from which the object should be internalized. + + @return The newly created object. The object will be left on the cleanup stack. + + @since 7.0s + */ + IMPORT_C static CMMFUrlParams* NewLC(RReadStream& aStream); + + /** + Externalize this object to a stream. + + This method can leave with one of the standard system-wide error codes. + + @param aStream + The stream to which the object will be externalized. + + @since 7.0s + */ + IMPORT_C void ExternalizeL(RWriteStream& aStream) const; + + /** + Externalize this object into a newly created CBufFlat buffer. + + This method can leave with one of the standard system-wide error codes. + + @return The newly created buffer containing the externalized data. The CBufFlat object will be + left on the cleanup stack. + + @since 7.0s + */ + IMPORT_C CBufFlat* ExternalizeToCBufFlatLC() const; + + /** + Destructor. + */ + ~CMMFUrlParams(); + + + /** + Returns the URL string, for example http://www.symbian.com/clip/mpg. + + @return The URL string. + @since 7.0s + */ + IMPORT_C const TDesC& Url() const; + + /** + Returns the Internet Access Point ID. + + @return IAP ID. + + @since 7.0s + */ + IMPORT_C TInt IAPId() const; + + /** + Signifies whether the IAP ID should be used. This is determined internally by comparing + the IAP ID with KUseDefaultIap. + + @return A boolean indicating if the IAP ID should be used. ETrue if the supplied IAPId should + be used, EFalse if not. + + @since 7.0s + */ + IMPORT_C TBool UseIAPId() const; +private: + CMMFUrlParams(); + void ConstructL(const TDesC& aUrl, TInt aIAPId); + void ConstructL(RReadStream& aStream); +private: + HBufC* iUrl; + TInt iIAPId; + }; + + +#endif