mmfenh/enhancedmediaclient/Client/src/Components/EffectBase/EffectControlBaseImpl.h
changeset 0 71ca22bcf22a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmfenh/enhancedmediaclient/Client/src/Components/EffectBase/EffectControlBaseImpl.h	Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,132 @@
+/*
+* 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 EffectControlBaseImpl class.
+*
+*/
+
+
+#ifndef EFFECTCONTROLBASEIMPL_H
+#define EFFECTCONTROLBASEIMPL_H
+
+#include <e32base.h>
+#include <ControlObserver.h>
+#include <mmf/common/mmfcontrollerframework.h>
+
+class MCustomCommand;
+
+namespace multimedia
+    {
+    class MStreamControl;
+    class MEffectControl;
+    class CEffectControlBase;
+    
+    enum TEffectControlBaseEvent
+        {
+        EControllerLoaded,
+        EControllerUnloaded
+        };
+
+    
+    class CEffectControlBaseImpl : public CActive, public MControlObserver
+        {
+            
+    public:
+        static CEffectControlBaseImpl* NewL( CEffectControlBase& aParent, TUid aCIUid );
+        virtual ~CEffectControlBaseImpl();
+        TInt AddedToStreamControl( MStreamControl& aStreamControl,
+                                   MCustomCommand& aCustomCommand,
+                                   MEffectControl& aEffect );
+        TInt RemovedFromStreamControl( MStreamControl& aStreamControl );
+        void StreamControlDeleted( MStreamControl& aStreamControl );
+        TBool IsConnected();        
+        TInt Connect();        
+        TInt Disconnect();
+        TInt CustomCommandSync(TInt aFunction,
+                               const TDesC8& aDataTo1,
+                               const TDesC8& aDataTo2,
+                               TDes8& aDataFrom);
+        TInt CustomCommandSync(TInt aFunction,
+                               const TDesC8& aDataTo1,
+                               const TDesC8& aDataTo2);
+        void CustomCommandAsync(TInt aFunction,
+                                const TDesC8& aDataTo1,
+                                const TDesC8& aDataTo2,
+                                TDes8& aDataFrom,
+                                TRequestStatus& aStatus);
+        void CustomCommandAsync(TInt aFunction,
+                                const TDesC8& aDataTo1,
+                                const TDesC8& aDataTo2,
+                                TRequestStatus& aStatus);
+        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();
+
+    protected:
+        // From CActive begins
+        void RunL();
+        void DoCancel();
+        TInt RunError( TInt aError );
+        // From CActive ends
+
+        // From MControlObserver begins
+        void Event( MControl* aControl, TUint aEventType, TAny* aEventObject );
+        // From MControlObserver ends
+        
+    private:
+        CEffectControlBaseImpl( CEffectControlBase& aParent, TUid aCIUid );
+        void ConstructL();
+
+        enum CIFBuilderParserFunctions
+            {
+            ECIFCreateMessageHandler,
+            ECIFRemoveMessageHandler
+            };    
+        // Messages sent to builder parser
+        TInt BuilderParserMessage(CIFBuilderParserFunctions aCommand);
+
+        
+    private:
+        CEffectControlBase& iParent;
+        TUid iCIUid;
+        TMMFMessageDestinationPckg iMsgHndlrHandlePckg;
+        MStreamControl* iStreamControl;
+        MCustomCommand* iCustomCommand;
+        MEffectControl* iEffect;
+        TMMFMessageDestinationPckg    iBuilderHandle;
+        };
+    } // namespace multimedia
+
+#endif // EFFECTCONTROLBASEIMPL_H
+
+// End of file