[ekiga] Removed the emit_signal_in_main method from runtime.h



commit d0abffc104e84c37d255ffaf5904008aad74457d
Author: Julien Puydt <jpuydt gnome org>
Date:   Wed Aug 26 21:50:09 2009 +0200

    Removed the emit_signal_in_main method from runtime.h
    
    Its implementation used the signals' copy constructors,
    which aren't available in boost signals.

 lib/engine/components/opal/opal-call-manager.cpp |    7 ++-
 lib/engine/components/opal/opal-call-manager.h   |    1 +
 lib/engine/components/opal/opal-call.cpp         |   56 +++++++++++++++++++---
 lib/engine/components/opal/opal-call.h           |    8 +++
 lib/engine/framework/runtime.h                   |   25 ----------
 5 files changed, 64 insertions(+), 33 deletions(-)
---
diff --git a/lib/engine/components/opal/opal-call-manager.cpp b/lib/engine/components/opal/opal-call-manager.cpp
index e849d94..8e41297 100644
--- a/lib/engine/components/opal/opal-call-manager.cpp
+++ b/lib/engine/components/opal/opal-call-manager.cpp
@@ -652,13 +652,18 @@ OpalCall *CallManager::CreateCall (void *uri)
   return call;
 }
 
+void
+CallManager::emit_removed_in_main (Ekiga::Call* call)
+{
+  call->removed.emit ();
+}
 
 void
 CallManager::DestroyCall (OpalCall *_call)
 {
   Ekiga::Call *call = dynamic_cast<Ekiga::Call *> (_call);
 
-  Ekiga::Runtime::emit_signal_in_main(call->removed);
+  Ekiga::Runtime::run_in_main(sigc::bind (sigc::mem_fun (this, &CallManager::emit_removed_in_main), call));
 }
 
 
diff --git a/lib/engine/components/opal/opal-call-manager.h b/lib/engine/components/opal/opal-call-manager.h
index 58aa834..fe2751e 100644
--- a/lib/engine/components/opal/opal-call-manager.h
+++ b/lib/engine/components/opal/opal-call-manager.h
@@ -158,6 +158,7 @@ public:
 private:
     void create_call_in_main (Opal::Call* call);
     OpalCall *CreateCall (void *uri);
+    void emit_removed_in_main (Ekiga::Call* call);
     void DestroyCall (OpalCall *);
 
     bool OnOpenMediaStream (OpalConnection &,
diff --git a/lib/engine/components/opal/opal-call.cpp b/lib/engine/components/opal/opal-call.cpp
index c3d91f7..7c5a55e 100644
--- a/lib/engine/components/opal/opal-call.cpp
+++ b/lib/engine/components/opal/opal-call.cpp
@@ -337,7 +337,7 @@ Opal::Call::OnEstablished (OpalConnection & connection)
   if (!PIsDescendant(&connection, OpalPCSSConnection)) {
 
     parse_info (connection);
-    Ekiga::Runtime::emit_signal_in_main (established);
+    Ekiga::Runtime::run_in_main (sigc::mem_fun (this, &Opal::Call::emit_established_in_main));
   }
 
   if (PIsDescendant(&connection, OpalRTPConnection)) {
@@ -395,7 +395,7 @@ Opal::Call::OnCleared ()
       && !is_outgoing ()
       && GetCallEndReason () != OpalConnection::EndedByAnswerDenied) {
 
-    Ekiga::Runtime::emit_signal_in_main (missed);
+    Ekiga::Runtime::run_in_main (sigc::mem_fun (this, &Opal::Call::emit_missed_in_main));
   }
   else {
 
@@ -476,7 +476,7 @@ Opal::Call::OnCleared ()
       reason = _("Call completed");
     }
 
-    Ekiga::Runtime::emit_signal_in_main (cleared, reason);
+    Ekiga::Runtime::run_in_main (sigc::bind (sigc::mem_fun (this, &Opal::Call::emit_cleared_in_main), reason));
   }
 }
 
@@ -499,7 +499,7 @@ Opal::Call::OnSetUp (OpalConnection & connection)
   outgoing = !IsNetworkOriginated ();
   parse_info (connection);
 
-  Ekiga::Runtime::emit_signal_in_main (setup);
+  Ekiga::Runtime::run_in_main (sigc::mem_fun (this, &Opal::Call::emit_setup_in_main));
   call_setup = true;
 
   cleared.connect (sigc::mem_fun (this, &Opal::Call::on_cleared_call));
@@ -515,7 +515,7 @@ PBoolean
 Opal::Call::OnAlerting (OpalConnection & connection)
 {
   if (!PIsDescendant(&connection, OpalPCSSConnection))
-    Ekiga::Runtime::emit_signal_in_main (ringing);
+    Ekiga::Runtime::run_in_main (sigc::mem_fun (this, &Opal::Call::emit_ringing_in_main));
 
   return OpalCall::OnAlerting (connection);
 }
@@ -527,9 +527,9 @@ Opal::Call::OnHold (OpalConnection & /*connection*/,
                     bool on_hold)
 {
   if (on_hold)
-    Ekiga::Runtime::emit_signal_in_main (held);
+    Ekiga::Runtime::run_in_main (sigc::mem_fun (this, &Opal::Call::emit_held_in_main));
   else
-    Ekiga::Runtime::emit_signal_in_main (retrieved);
+    Ekiga::Runtime::run_in_main (sigc::mem_fun (this, &Opal::Call::emit_retrieved_in_main));
 }
 
 
@@ -659,3 +659,45 @@ Opal::Call::on_missed_call ()
 {
   OpalCall::OnCleared ();
 }
+
+void
+Opal::Call::emit_established_in_main ()
+{
+  established.emit ();
+}
+
+void
+Opal::Call::emit_missed_in_main ()
+{
+  missed.emit ();
+}
+
+void
+Opal::Call::emit_cleared_in_main (const std::string reason)
+{
+  cleared.emit (reason);
+}
+
+void
+Opal::Call::emit_setup_in_main ()
+{
+  setup.emit ();
+}
+
+void
+Opal::Call::emit_ringing_in_main ()
+{
+  ringing.emit ();
+}
+
+void
+Opal::Call::emit_held_in_main ()
+{
+  held.emit ();
+}
+
+void
+Opal::Call::emit_retrieved_in_main ()
+{
+  retrieved.emit ();
+}
diff --git a/lib/engine/components/opal/opal-call.h b/lib/engine/components/opal/opal-call.h
index 96266e9..352ac60 100644
--- a/lib/engine/components/opal/opal-call.h
+++ b/lib/engine/components/opal/opal-call.h
@@ -256,6 +256,14 @@ private:
 private:
     void on_cleared_call (std::string);
     void on_missed_call ();
+
+    void emit_established_in_main ();
+    void emit_missed_in_main ();
+    void emit_cleared_in_main (const std::string reason);
+    void emit_setup_in_main ();
+    void emit_ringing_in_main ();
+    void emit_held_in_main ();
+    void emit_retrieved_in_main ();
   };
 };
 
diff --git a/lib/engine/framework/runtime.h b/lib/engine/framework/runtime.h
index 126a412..df6d4ab 100644
--- a/lib/engine/framework/runtime.h
+++ b/lib/engine/framework/runtime.h
@@ -41,19 +41,6 @@
 
 #include "services.h"
 
-template<typename data_type>
-static void emit_signal_in_main_helper1 (sigc::signal1<void, data_type> sign,
-                                         data_type data)
-{
-  sign.emit (data);
-}
-
-static void emit_signal_in_main_helper (sigc::signal0<void> sign)
-
-{
-  sign.emit ();
-}
-
 namespace Ekiga
 {
 
@@ -72,18 +59,6 @@ namespace Ekiga
 
     void run_in_main (sigc::slot0<void> action,
 		      unsigned int seconds = 0); // depends on the implementation
-
-    inline void emit_signal_in_main (sigc::signal0<void> sign)
-    {
-      run_in_main (sigc::bind (sigc::ptr_fun (emit_signal_in_main_helper), sign));
-    }
-
-    template<typename data_type>
-    void emit_signal_in_main (sigc::signal1<void, data_type> sign,
-                              data_type data)
-    {
-      run_in_main (sigc::bind (sigc::ptr_fun (emit_signal_in_main_helper1<data_type>), sign, data));
-    }
   };
 
   /**



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]