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