mmserv/tms/tmsimpl/src/tmsglobalgaineffectbodyimpl.cpp
branchRCL_3
changeset 10 3d8c721bf319
parent 0 71ca22bcf22a
child 18 2eb3b066cc7d
--- a/mmserv/tms/tmsimpl/src/tmsglobalgaineffectbodyimpl.cpp	Mon Mar 15 12:42:35 2010 +0200
+++ b/mmserv/tms/tmsimpl/src/tmsglobalgaineffectbodyimpl.cpp	Wed Mar 31 22:29:45 2010 +0300
@@ -26,7 +26,7 @@
 TMSGlobalGainEffectBodyImpl::TMSGlobalGainEffectBodyImpl() :
     iObserver(NULL),
     iProxy(NULL),
-    iGlobalEffect(NULL)
+    iParent(NULL)
     {
     }
 
@@ -39,7 +39,7 @@
         iProxy = NULL;
         }
     iObserver = NULL;
-    iGlobalEffect = NULL;
+    iParent = NULL;
     iUserData = NULL;
     }
 
@@ -65,35 +65,43 @@
     gint ret(TMS_RESULT_SUCCESS);
     iClientId = 1;
     iProxy = new TMSProxy;
-
-    if (iProxy)
+    if (!iProxy)
         {
-        if (iProxy->Connect() != TMS_RESULT_SUCCESS)
-            {
-            delete iProxy;
-            iProxy = NULL;
-            ret = TMS_RESULT_FATAL_ERROR;
-            }
+        ret = TMS_RESULT_INSUFFICIENT_MEMORY;
+        }
+    RET_REASON_IF_ERR(ret);
+
+    if (iProxy->Connect() != TMS_RESULT_SUCCESS)
+        {
+        delete iProxy;
+        iProxy = NULL;
+        ret = TMS_RESULT_FATAL_ERROR;
         }
     else
         {
-        ret = TMS_RESULT_INSUFFICIENT_MEMORY;
+        // Starts TAR if not started already;
+        ret = iProxy->StartRoutingNotifier();
         }
+    RET_REASON_IF_ERR(ret);
     return ret;
     }
 
 gint TMSGlobalGainEffectBodyImpl::AddObserver(TMSEffectObserver& obsrvr,
-        gpointer /*user_data*/)
+        gpointer user_data)
     {
     gint ret(TMS_RESULT_SUCCESS);
     if (!iObserver)
         {
         iObserver = &obsrvr;
-        //iUserData = user_data;
+        iUserData = user_data;
         if (iProxy)
             {
             ret = iProxy->SetMsgQueueNotifier(EMsgQueueGlobalGainType,
-                    iObserver, iGlobalEffect, iClientId);
+                    iObserver, iParent, iClientId);
+            if (ret == TMS_RESULT_SUCCESS)
+                {
+                ret = iProxy->StartGlobalEffectNotifier();
+                }
             }
         else
             {
@@ -104,19 +112,19 @@
         {
         ret = TMS_RESULT_ALREADY_EXIST;
         }
-
     return ret;
     }
 
 gint TMSGlobalGainEffectBodyImpl::RemoveObserver(TMSEffectObserver& obsrvr)
     {
     gint ret(TMS_RESULT_SUCCESS);
-
     if (iProxy && (&obsrvr == iObserver))
         {
         ret = iProxy->RemoveMsgQueueNotifier(EMsgQueueGlobalGainType,
                 iObserver);
         iObserver = NULL;
+        ret = iProxy->CancelGlobalEffectNotifier();
+        ret = iProxy->CancelRoutingNotifier();
         }
     else
         {
@@ -174,10 +182,8 @@
     return ret;
     }
 
-void TMSGlobalGainEffectBodyImpl::SetParentEffect(TMSEffect*& parenteffect)
+void TMSGlobalGainEffectBodyImpl::SetParent(TMSEffect*& parent)
     {
-    iGlobalEffect = NULL;
-    iGlobalEffect = parenteffect;
+    iParent = parent;
     }
 
-// End of file