--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmfenh/enhancedmediaclient/Client/src/Components/EffectBase/EffectControlBase.h Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,135 @@
+/*
+* Copyright (c) 2006 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: Header of EffectControlBase class.
+*
+*/
+
+
+#ifndef C_CEFFECTCONTROLBASE_H
+#define C_CEFFECTCONTROLBASE_H
+
+#include <e32base.h>
+#include <mmfcontrollerframework.h>
+
+class MCustomCommand;
+
+namespace multimedia
+ {
+ class MStreamControl;
+ class MControlObserver;
+ class MEffectControl;
+ class CEffectControlBaseImpl;
+
+ class CEffectControlBase
+ {
+ protected:
+ // Called by subclass
+ CEffectControlBase();
+ // Has to be called by subclass
+ void ConstructL( TUid aCIUid );
+
+ // Returns ETrue if connected to Message Handler else EFalse
+ TBool IsConnected();
+
+ // Returns KErrNone if it is already connected to message handler
+ // or connected to message handler successfully.
+ TInt Connect();
+
+ // Used by sub-classes for sending custom commands to Message Handler
+ // Returns KErrNotReady if not connected
+ TInt CustomCommandSync( TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2,
+ TDes8& aDataFrom);
+
+ // Returns KErrNotReady if not connected
+ TInt CustomCommandSync( TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2);
+
+ // Client is signalled with KErrNotReady if not connected
+ void CustomCommandAsync( TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2,
+ TDes8& aDataFrom,
+ TRequestStatus& aStatus);
+
+ // Client is signalled with KErrNotReady if not connected
+ void CustomCommandAsync( TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2,
+ TRequestStatus& aStatus);
+
+ // Used by sub-classes for sending custom commands to known destination
+ // This is intended for objects implementing custom commands who
+ // knows destination address
+ TInt CustomCommandSync( const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2,
+ TDes8& aDataFrom );
+ TInt CustomCommandSync( const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2 );
+ void CustomCommandAsync( const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2,
+ TDes8& aDataFrom,
+ TRequestStatus& aStatus );
+ void CustomCommandAsync( const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2,
+ TRequestStatus& aStatus );
+
+ TInt GetMessageHandle(TMMFMessageDestinationPckg &aPckg);
+ MCustomCommand* GetCustomCommand();
+
+ public:
+ virtual ~CEffectControlBase();
+ // Called by Stream Control when Effect Control is added to it
+ TInt GetControlObserver( MControlObserver*& aObserver );
+ // Called by Stream Control when Effect Control is added to it
+ TInt AddedToStreamControl( MStreamControl& aStreamControl,
+ MCustomCommand& aCustomCommand,
+ MEffectControl& aEffect );
+ // Called by Stream Control when Effect Control is removed to it
+ TInt RemovedFromStreamControl( MStreamControl& aStreamControl );
+ // Called by Stream Control when it is deleted before removing Effect Control
+ void StreamControlDeleted( MStreamControl& aStreamControl );
+ // Returns KErrNone if it is not connected to message handler
+ // or disconnected from Message Handler successfully.
+ TInt Disconnect();
+
+ public:
+ enum TEffectControlEvent
+ {
+ ECIBuilderCreated,
+ EMessageHandlerDeleted
+ };
+ public:
+ // Handles effect control event. The derived class must implement to
+ // handle the event.
+ virtual void Event( TEffectControlEvent aEvent );
+
+ private:
+ CEffectControlBaseImpl* iCEffectControlBaseImpl;
+ };
+ } // namespace multimedia
+
+#endif // C_CEFFECTCONTROLBASE_H
+
+// End of file