vtengines/vtmediatorplugin/inc/cvtmediatorplugin.h
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtengines/vtmediatorplugin/inc/cvtmediatorplugin.h	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,349 +0,0 @@
-/*
-* Copyright (c) 2008 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:  Video Telephony mediator plugin header
-*
-*/
-
-
-#ifndef C_VTMEDIATORPLUGIN_H
-#define C_VTMEDIATORPLUGIN_H
-
-// INCLUDES
-#include <MediatorPluginBase.h>
-#include <mediatornotifications.h>
-#include <mediatoreventconsumer.h>
-#include <mediatoreventprovider.h>
-#include <mediatorcommandresponder.h>
-#include <vtinternalmediatorapi.h>
-#include <mediatoreventsfromtelephonyapi.h>
-#include <mediatorcommandinitiator.h>
-#include <w32std.h>
-
-
-
-using namespace TelephonyMediator;
-using namespace MediatorService;
-
-class TelephonyMediator::TTelephonyCallDataParam;
-class CMediatorCommandInitiator;
-/**
-* Mediator plugin for CS video telephony. Fullfills responsibilities:
-*   - launches Video Telephone application
-*   - caches CLI and Dataport information for VT app for time between
-*     the data is broadcasted to time VT is ready to receive it.                                                                 
-* @since S60 5.0
-*/
-
-class CVtMediatorPlugin : public CMediatorPluginBase, 
-                            public MMediatorNotifications,
-                            public MMediatorEventObserver,
-                            public MMediatorCommandObserver,
-                            public MMediatorCommandResponseObserver
-	{
-public:          
-       
-     static CMediatorPluginBase* NewL();
-     
-    /**
-     * Destructor.
-     */
-    ~CVtMediatorPlugin();
-    
-public: // From Base class
-    
-    virtual void StartL();
-    
-public: // From MMediatorNotifications
-
-    /**
-    * Raises VT specific CLI/dataport event when event is registered by VT app,
-    * or when the information is available
-    *
-    * @since Series 60 3.1
-    * @param aDomain    The identifier of the domain.
-    * @param aCategory  The identifier of the category.
-    * @param aEvents    The list of events that have been registered.
-    * @return None.
-    */
-    virtual void MediatorEventsAddedL( TUid aDomain, 
-                                       TUid aCategory, 
-                                       const REventList& aEvents );
-
-    /**
-    * New commands have been registered. The commands can now be subscribed.
-    * The list can contain 1-n new commands into the category.
-    *
-    * @since Series 60 3.1
-    * @param aDomain    The identifier of the domain.
-    * @param aCategory  The identifier of the category.
-    * @param aCommands  List of commands that have been registered.
-    * @return None.
-    */
-    virtual void MediatorCommandsAddedL( TUid aDomain, 
-                                         TUid aCategory,
-                                         const RCommandList& aCommands );
-     
-    /**
-    * A category has been removed. All subscriptions are cancelled.
-    *
-    * @since Series 60 3.1
-    * @param aDomain    The identifier of the domain.
-    * @param aCategory  The identifier of the category.        
-    * @return None.
-    */
-    virtual void MediatorCategoryRemovedL( TUid aDomain, TUid aCategory );
-
-    /**
-    * List of events has been removed. All subscriptions are cancelled.
-    * List can contain 1-n events from the specified category.
-    *
-    * @since Series 60 3.1
-    * @param aDomain    The identifier of the domain.
-    * @param aCategory  The identifier of the category.
-    * @param aEvents    The list of events removed.
-    * @return None.
-    */
-    virtual void MediatorEventsRemovedL( TUid aDomain, 
-                                         TUid aCategory,
-                                         const REventList& aEvents );
-                                         
-    /**
-    * List of commands have been removed. All subscriptions are cancelled.
-    * List can contain 1-n commands from the specified category.
-    *
-    * @since Series 60 3.1
-    * @param aDomain    The identifier of the domain.
-    * @param aCategory  The identifier of the category.
-    * @param aCommands  The list of commands removed
-    * @return None.
-    */
-    virtual void MediatorCommandsRemovedL( TUid aDomain, 
-                                           TUid aCategory,
-                                           const MediatorService::RCommandList& aCommands ); 
-         
-public: // from MMediatorCommandObserver
-    
-    /**
-    * @see MMediatorCommandObserver::MediatorCommandL       
-    */
-    virtual void MediatorCommandL( TUid aDomain,
-                                 TUid aCategory, 
-                                 TInt aCommandId,
-                                 TVersion aVersion, 
-                                 const TDesC8& aData );
-    
-    /**
-    * @see MMediatorCommandObserver::CancelMediatorCommand       
-    */
-    virtual void CancelMediatorCommand( TUid aDomain,
-                                      TUid aCategory, 
-                                      TInt aCommandId );
-    
-public:// from MMediatorCommandResponseObserver
-    /**
-    * @see MMediatorCommandResponseObserver::CommandResponseL
-    */
-     virtual void CommandResponseL( TUid aDomain,
-                                   TUid aCategory, 
-                                   TInt aCommandId,
-                                   TInt aStatus, 
-                                   const TDesC8& aData );  
-                                               
-public: // from MMediatorEventObserver
-                                                   
-        /**
-        * A Mediator Service event.
-        *
-        * @since Series 60 3.1        
-        * @param aDomain    The identifier of the domain.
-        * @param aCategory  The identifier of the category.
-        * @param aEventId   The identifier of the event.
-        * @param aData      The parameters of the event.
-        * @return None.
-        */
-        virtual void MediatorEventL( TUid aDomain,
-                                     TUid aCategory, 
-                                     TInt aEventId, 
-                                     const TDesC8& aData );                                               
-
-public: // new
-    static TInt EventRaiserCallback( TAny* aAny );
-    
-private: // constructors
-    
-    CVtMediatorPlugin();      void ConstructL();
-
-    enum TInternalState {
-        /** 
-         * Waiting for video call state to reach value that is suitable
-         * for launching Video Telephone application. In this state
-         * video call is not ongoing.
-         */
-        EWaitingAppLaunch,
-        
-        /** 
-         * Waiting for VT application's readiness to receive video call info
-         * events. In this state video call is ongoing and VT application
-         * is starting up.
-         */
-        EWaitingEventRegistration,
-        
-        /** 
-         * VT application is ready to receive video call info events.
-         */
-        EReady
-    };
-    
-private: // new functions    
-    void ChangeCallDataEventSubscriptionL(
-        const REventList& aEvents,
-        const TBool aEventRegistered );
-    
-    void HandleVtCommandUnregistrationL();
-    
-    void HandleVtCommandRegistrationL();
-    
-    void LaunchVtAppL();
-    
-    void SaveCallData( const TelephonyMediator::TTelephonyCallDataParam& aData, TVtVideoTelephonyCallInformation& iVtCallInfo);
-                         
-    void HandleDataportCommandL( const TDesC8& aData );
-                             
-    void ClearData(TVtVideoTelephonyCallInformation& aVtCallInfo, TCallState& aCallState);
-    
-    void RegisterVtInternalEventL();
-    //test
-    void RegisterVtInternalEvent_2L();
-    
-    void RegisterDataportCommandL();
-    
-    void RaiseVtEventL();    
-                                    
-    /**
-     * Starts VT application if video call state transition is suitable.
-     */                                    
-    void HandleCallStateChangeL( const TelephonyMediator::TTelephonyCallDataParam& aData ); 
-    
-    TBool IsEnoughMemory();
-    
-    void FreeRam();
-    
-    void StopDeathActiveL();
-    
-private: 
-    // for detecting subscription to video call information from VT app.
-    CMediatorNotifications* iMediatorNotifications;
-
-    // for sending video call information events
-    CMediatorEventProvider* iEventProvider;
-                                                            
-    // for receiving CLI from Telephony
-    CMediatorEventConsumer* iEventConsumer;
-
-    // for responding to dataport/releasedataport command from Telephony
-    CMediatorCommandResponder* iCommandResponder;
-    
-    // for issue command to vt app
-    CMediatorCommandInitiator* iCommandInitiator;
-    
-    // supported mediator commands
-    MediatorService::RCommandList iCommandList;
-    
-    // plugin's internal state 
-    TInternalState iState;
-    
-    // cached active video call state (from last call data event from Telephony)                    
-    TCallState iActiveVideoCallState;
-        
-    TVtVideoTelephonyCallInformation iActiveVideoCallInfo;
-    
-    // cached waiting video call state (from last call data event from Telephony)                    
-    TCallState iWaitingVideoCallState;
-           
-    TVtVideoTelephonyCallInformation iWaitingVideoCallInfo;
-    
-    // for raising event to VT asynchronously when it starts up
-    CAsyncCallBack* iCallBack;
-    
-    class CAppDeathActive;
-    // Owned application death waiter.
-    CAppDeathActive* iAppDeathActive;
-    
-    // Owned application thread.
-    RThread iAppThread;    
-    
-    // Application thread id.
-    TThreadId iAppThreadId;
-    
-    // Owned window server session.
-    RWsSession iWsSession;
-    /**
-        * Active object for waiting thread death.
-        *
-        * @since 2.6
-        * @lib videotelcomms.lib
-        */
-    NONSHARABLE_CLASS( CAppDeathActive ) : public CActive
-         {
-         public: // Constructors
-              
-             /**
-             * Constructor.
-             */
-             CAppDeathActive( CVtMediatorPlugin& aMediatorPlugin, 
-                     RThread& aAppThread );
-              
-             /**
-             * Destructor.
-             */
-             ~CAppDeathActive();
-
-         public: // New functions
-
-             /**
-             * Starts active object.
-             */
-             void Start();
-
-         public: // From base classes
-
-             /**
-             * @see CActive::RunL.
-             */
-             virtual void RunL();
-                
-             /**
-             * @see CActive::DoCancel.
-             */
-             virtual void DoCancel();
-                
-             /**
-             * @see CActive::RunError.
-             */
-             virtual TInt RunError( TInt aError );
-
-         private:
-
-             // Reference to starter.
-             CVtMediatorPlugin& iMediatorPlugin;
-
-             // Reference to thread.
-             RThread& iAppThread;
-
-         };
-    
-    };
-
-#endif // C_VTMEDIATORPLUGIN_H
-