diff -r 33a5d2bbf6fc -r 73a1feb507fb mmshplugins/mmshaoplugin/inc/mustsypropertymonitor.h --- 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 +#include +#include +#include +#include + #include "musunittesting.h" #include "mussesseioninformationapi.h" #include "mmustsypropertyobserver.h" -// Enable the below line if Kodiak Ptt has to be monitered -// #include "mmusptteventobserver.h" -#include -#include -#include +#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 iCallMonitorArray; /** + * Array of voip Call Monitors. + */ + RPointerArray 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