--- 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