--- 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 <e32base.h>
+#include <e32std.h>
+#include <s32mem.h>
+
+/**
+@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<TMMFEvent> TMMFEventPckg;
+
+/**
+@publishedAll
+@released
+
+Package buffer for TUid
+*/
+typedef TPckgBuf<TUid> TMMFUidPckg;
+
+/**
+@publishedAll
+@released
+
+Package buffer for TTimeIntervalMicroSeconds
+*/
+typedef TPckgBuf<TTimeIntervalMicroSeconds> 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, <Copyright>
+ @endcode
+
+ An example of a value might be:
+ @code
+ <Symbian (c) 2002>
+ @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
+ <Copyright>
+ @endcode
+
+ An example of aValue might be:
+ @code
+ <Symbian (c) 2002>
+ @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