mmshplugins/mmshaoplugin/inc/mustsypropertymonitor.h
branchRCL_3
changeset 22 73a1feb507fb
parent 0 f0cf47e981f9
child 23 bc78a40cd63c
--- a/mmshplugins/mmshaoplugin/inc/mustsypropertymonitor.h	Thu Aug 19 09:51:39 2010 +0300
+++ b/mmshplugins/mmshaoplugin/inc/mustsypropertymonitor.h	Tue Aug 31 15:12:07 2010 +0300
@@ -16,23 +16,26 @@
 */
 
 
-
 #ifndef MUSTSYPROPERTYMONITOR_H
 #define MUSTSYPROPERTYMONITOR_H
 
+// Enable the below line if Kodiak Ptt has to be monitered
+// #include "mmusptteventobserver.h"
+#include <etel.h>
+#include <etelmm.h>
+#include <e32base.h>
+#include <e32property.h>
+#include <ctsydomainpskeys.h>
+
 #include "musunittesting.h"
 #include "mussesseioninformationapi.h"
 #include "mmustsypropertyobserver.h"
-// Enable the below line if Kodiak Ptt has to be monitered
-// #include "mmusptteventobserver.h"
-#include <etelmm.h>
-#include <e32base.h>
-#include <e32property.h>
+#include "mmuscallstateobserver.h"
 
 class CMusCallMonitor;
+class CMusVoipCallMonitor;
 class CMusPTTCallMonitor;
 class CMusCallConferenceMonitor;
-class CMusClirMonitor;
 
 /**
  * This class monitors the line event,if call is connected
@@ -53,7 +56,8 @@
         /**
          * Two-phased constructor.
          */
-        static CMusTsyPropertyMonitor* NewL( RMobilePhone& aPhone );
+        static CMusTsyPropertyMonitor* NewL( RMobilePhone& aPhone, 
+                                             MMusCallStateObserver& aCallStateObserver );
 
         /**
          * Destructor.
@@ -70,19 +74,24 @@
          * Function from MMusTsyPropertyObserver
          */
         void NotifyCallStateChanged(NMusSessionInformationApi::TMusCallEvent aVal, TName& aCallName);
+        
+        /**
+         * Checks from the corresponding monitors if the data is ready.
+         */
+        TBool IsDataReadyL();
 
     private:
 
         /**
          * C++ constructor.
          */
-        CMusTsyPropertyMonitor( RMobilePhone& aPhone );
+        CMusTsyPropertyMonitor( RMobilePhone& aPhone, MMusCallStateObserver& aCallStateObserve );
 
         /**
          * Symbian 2nd-phase constructor.
          */
         void ConstructL();
-
+        
 
     private: // functions from base class CActive
 
@@ -135,7 +144,44 @@
         /**
           * Add / Remove Call Monitors based on Mus criteria          
           */
-        void MonitorCallL();
+        void MonitorCallL(const TPSCTsyCallState& aCallState,
+                const TPSCTsyCallType& aCallType);
+        
+        /**
+          * Add / Remove Call Monitors based on Mus criteria          
+          */
+        void MonitorCSCallL();
+        
+    private: // Voip related 
+        /*
+         * If the call Monitor doesnt exist then it creats one new
+         * CMusCallMonitor class and add into array. 
+         * Leavs if objects creation fails.
+         */
+        void AddVoipCallMonitorL( TName& aCallName );
+
+        /*
+         * It removs the CMusCallMonitor object from array
+         * based on the call name.         
+         */
+
+        void RemoveVoipCallMonitor( TName& aCallName );
+        
+        /**
+         * Add / Remove Call Monitors based on Mus criteria          
+         */
+       void MonitorVoipCallL(const TPSCTsyCallState& aCallState);
+
+        /**
+         * Removes and reset the voip call monitor array
+         */
+       void RemoveAllVoipCallMonitors( );
+       
+        /**
+         * Checks multimediasharing call criteria's
+         */
+       void CheckCallCriteriaL();
+
 
          /**
           * Delete all call monitor        
@@ -184,6 +230,11 @@
         RPointerArray<CMusCallMonitor> iCallMonitorArray;
 
         /**
+         * Array of voip Call Monitors.
+         */
+        RPointerArray<CMusVoipCallMonitor> iVoipCallMonitorArray;
+        
+        /**
          * Conference call monitor, owned.
          */
         CMusCallConferenceMonitor* iConferenceMonitor;
@@ -191,13 +242,16 @@
         /**
          * Instance of RProperty.
          */
-        RProperty iPropertyEvent;
+        RProperty iPropertyEvent;  
         
-        CMusClirMonitor* iClirMonitor;
-        
+        /*
+         * Reference of callstate observer not owned
+         */
+        MMusCallStateObserver& iCallStateObserver;
 
         MUS_UNITTEST( UT_CMusTsyPropertyMonitor )
-
+        MUS_UNITTEST( UT_CMusAoPlugin )
+        
     };
 
 #endif // MUSTSYPROPERTYMONITOR_H