williamr@2: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // 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 williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __MMF_DURATION_INFO_CUSTOM_COMMANDS_H__ williamr@2: #define __MMF_DURATION_INFO_CUSTOM_COMMANDS_H__ williamr@2: williamr@2: #ifdef SYMBIAN_CAF_V2 williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated 9.2- Replaced by KUidInterfaceMMFDurationInfoControl2 williamr@2: */ williamr@2: williamr@2: const TUid KUidInterfaceMMFDurationInfoControl = {0x102737C8}; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: williamr@2: const TUid KUidInterfaceMMFDurationInfoControl2 = {0x10273812}; williamr@2: williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: enum TMMFDurationInfoMessages williamr@2: { williamr@2: EMMFGetDurationInfo williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: williamr@2: The duration state of the controller. williamr@2: */ williamr@2: enum TMMFDurationInfo williamr@2: { williamr@2: EMMFDurationInfoValid, // Duration is known williamr@2: EMMFDurationInfoUnknown, // Invalid response from controller williamr@2: EMMFDurationInfoInfinite, // Clip is of infinite length williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated 9.2 - Replaced by MMMFDurationInfoCustomCommandImplementor2 williamr@2: williamr@2: Mixin class to be derived from by controller plugins wishing to support the Duration information williamr@2: custom commands williamr@2: */ williamr@2: class MMMFDurationInfoCustomCommandImplementor williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: Is the duration of the clip known? i.e. is the stream infinite? williamr@2: williamr@2: @param aDurationInfo williamr@2: Controller duration information williamr@2: williamr@2: @return TMMFDurationInfo Duration state. williamr@2: */ williamr@2: virtual TMMFDurationInfo GetDurationInfo(TMMFDurationInfo& aDurationInfo)=0; williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated 9.2 - Replaced by CMMFDurationInfoCustomCommandParser2 williamr@2: */ williamr@2: class CMMFDurationInfoCustomCommandParser : public CMMFCustomCommandParserBase williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: Creates a new custom command parser capable of processing duration information controller commands. williamr@2: williamr@2: @param aImplementor williamr@2: A reference to the controller plugin that owns this new object. williamr@2: williamr@2: @return A pointer to the object created. williamr@2: williamr@2: @since 9.1 williamr@2: */ williamr@2: IMPORT_C static CMMFDurationInfoCustomCommandParser* NewL(MMMFDurationInfoCustomCommandImplementor& aImplementor); williamr@2: williamr@2: /** williamr@2: Destructor. williamr@2: williamr@2: @since 9.1 williamr@2: */ williamr@2: IMPORT_C ~CMMFDurationInfoCustomCommandParser(); williamr@2: williamr@2: /** williamr@2: Handles a request from the client. Called by the controller framework. williamr@2: williamr@2: @param aMessage williamr@2: The message to be handled. williamr@2: williamr@2: @since 9.1 williamr@2: */ williamr@2: void HandleRequest(TMMFMessage& aMessage); williamr@2: williamr@2: private: williamr@2: /** williamr@2: Constructor. williamr@2: williamr@2: @param aImplementor williamr@2: A reference to the controller plugin that owns this new object. williamr@2: @since 9.1 williamr@2: */ williamr@2: CMMFDurationInfoCustomCommandParser(MMMFDurationInfoCustomCommandImplementor& aImplementor); williamr@2: williamr@2: /** williamr@2: Request duration information from the implementor williamr@2: williamr@2: @param aMessage williamr@2: Message for writing results to the client. williamr@2: */ williamr@2: TInt GetDurationInfo(TMMFMessage& aMessage); williamr@2: williamr@2: private: williamr@2: williamr@2: MMMFDurationInfoCustomCommandImplementor& iImplementor; williamr@2: williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: williamr@2: Mixin class to be derived from by controller plugins wishing to support the Duration information williamr@2: custom commands williamr@2: */ williamr@2: class MMMFDurationInfoCustomCommandImplementor2 williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: Is the duration of the clip known? i.e. is the stream infinite? williamr@2: williamr@2: @param aDurationInfo williamr@2: Controller duration information williamr@2: williamr@2: @return KErrNone or System wide error code williamr@2: */ williamr@2: virtual TInt GetDurationInfo(TMMFDurationInfo& aDurationInfo)=0; williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: williamr@2: Custom command parser capable of processing duration information controller commands williamr@2: */ williamr@2: class CMMFDurationInfoCustomCommandParser2 : public CMMFCustomCommandParserBase williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: Creates a new custom command parser capable of processing duration information controller commands. williamr@2: williamr@2: @param aImplementor williamr@2: A reference to the controller plugin that owns this new object. williamr@2: williamr@2: @return A pointer to the object created. williamr@2: williamr@2: @since 9.2 williamr@2: */ williamr@2: IMPORT_C static CMMFDurationInfoCustomCommandParser2* NewL(MMMFDurationInfoCustomCommandImplementor2& aImplementor); williamr@2: williamr@2: /** williamr@2: Destructor. williamr@2: williamr@2: @since 9.2 williamr@2: */ williamr@2: IMPORT_C ~CMMFDurationInfoCustomCommandParser2(); williamr@2: williamr@2: /** williamr@2: Handles a request from the client. Called by the controller framework. williamr@2: williamr@2: @param aMessage williamr@2: The message to be handled. williamr@2: williamr@2: @since 9.2 williamr@2: */ williamr@2: void HandleRequest(TMMFMessage& aMessage); williamr@2: williamr@2: private: williamr@2: /** williamr@2: Constructor. williamr@2: williamr@2: @param aImplementor williamr@2: A reference to the controller plugin that owns this new object. williamr@2: @since 9.2 williamr@2: */ williamr@2: CMMFDurationInfoCustomCommandParser2(MMMFDurationInfoCustomCommandImplementor2& aImplementor); williamr@2: williamr@2: /** williamr@2: Request duration information from the implementor williamr@2: williamr@2: @param aMessage williamr@2: Message for writing results to the client. williamr@2: */ williamr@2: TInt GetDurationInfo(TMMFMessage& aMessage); williamr@2: williamr@2: private: williamr@2: MMMFDurationInfoCustomCommandImplementor2& iImplementor; williamr@2: }; williamr@2: williamr@2: #endif // SYMBIAN_CAF_V2 williamr@2: williamr@2: #endif // __MMF_DURATION_INFO_CUSTOM_COMMANDS_H__