[ekiga/ds-opal-refactoring] Opal: Ported auto answer.



commit 2a2947c9a8238a0361e5ce024c435f0912bab347
Author: Damien Sandras <dsandras seconix com>
Date:   Sat Apr 11 18:40:09 2015 +0200

    Opal: Ported auto answer.

 lib/engine/components/opal/opal-call-manager.cpp   |    6 ++--
 .../components/opal/process/opal-endpoint.cpp      |   21 +++++++++++++++----
 lib/engine/components/opal/process/opal-endpoint.h |   10 ++++++--
 3 files changed, 26 insertions(+), 11 deletions(-)
---
diff --git a/lib/engine/components/opal/opal-call-manager.cpp 
b/lib/engine/components/opal/opal-call-manager.cpp
index 46697bd..25734b7 100644
--- a/lib/engine/components/opal/opal-call-manager.cpp
+++ b/lib/engine/components/opal/opal-call-manager.cpp
@@ -88,13 +88,13 @@ unsigned Opal::CallManager::get_reject_delay () const
 
 void Opal::CallManager::set_auto_answer (bool enabled)
 {
-  endpoint.set_auto_answer (enabled);
+  endpoint.SetAutoAnswer (enabled);
 }
 
 
 bool Opal::CallManager::get_auto_answer () const
 {
-  return endpoint.get_auto_answer ();
+  return endpoint.GetAutoAnswer ();
 }
 
 
@@ -204,7 +204,7 @@ void Opal::CallManager::setup (const std::string & setting)
     set_reject_delay (call_options_settings->get_int ("no-answer-timeout"));
 
   if (setting.empty () || setting == "auto-answer")
-    endpoint.set_auto_answer (call_options_settings->get_bool ("auto-answer"));
+    set_auto_answer (call_options_settings->get_bool ("auto-answer"));
 
   if (setting.empty () || setting == "full-name")
     set_display_name (personal_data_settings->get_string ("full-name"));
diff --git a/lib/engine/components/opal/process/opal-endpoint.cpp 
b/lib/engine/components/opal/process/opal-endpoint.cpp
index f5099e9..0041649 100644
--- a/lib/engine/components/opal/process/opal-endpoint.cpp
+++ b/lib/engine/components/opal/process/opal-endpoint.cpp
@@ -133,7 +133,7 @@ Opal::EndPoint::EndPoint (Ekiga::ServiceCore& _core) : core(_core)
   forward_on_busy = false;
   unconditional_forward = false;
   stun_enabled = false;
-  auto_answer = false;
+  autoAnswer = false;
 
   // Create video devices
   PVideoDevice::OpenArgs video = GetVideoOutputDevice();
@@ -323,15 +323,15 @@ unsigned Opal::EndPoint::GetNoAnswerDelay () const
 }
 
 
-void Opal::EndPoint::set_auto_answer (bool enabled)
+void Opal::EndPoint::SetAutoAnswer (bool enabled)
 {
-  auto_answer = enabled;
+  autoAnswer = enabled;
 }
 
 
-bool Opal::EndPoint::get_auto_answer (void) const
+bool Opal::EndPoint::GetAutoAnswer (void) const
 {
-  return auto_answer;
+  return autoAnswer;
 }
 
 
@@ -669,3 +669,14 @@ Opal::EndPoint::CreateVideoOutputDevice (const OpalConnection & connection,
   return device != NULL;
 }
 
+
+OpalConnection::AnswerCallResponse
+Opal::EndPoint::OnAnswerCall (G_GNUC_UNUSED OpalConnection & connection,
+                              G_GNUC_UNUSED const PString & caller)
+{
+  if (autoAnswer)
+    return OpalConnection::AnswerCallNow;
+
+  return OpalConnection::AnswerCallPending;
+}
+
diff --git a/lib/engine/components/opal/process/opal-endpoint.h 
b/lib/engine/components/opal/process/opal-endpoint.h
index 41f6ce5..de381d9 100644
--- a/lib/engine/components/opal/process/opal-endpoint.h
+++ b/lib/engine/components/opal/process/opal-endpoint.h
@@ -99,8 +99,8 @@ public:
     void SetNoAnswerDelay (unsigned delay);
     unsigned GetNoAnswerDelay () const;
 
-    void set_auto_answer (bool enabled);
-    bool get_auto_answer () const;
+    void SetAutoAnswer (bool enabled);
+    bool GetAutoAnswer () const;
 
     /* Extended stuff, OPAL EndPoint specific */
     void set_forward_on_busy (bool enabled);
@@ -162,6 +162,10 @@ private:
                                       PVideoOutputDevice * & device,
                                       PBoolean & auto_delete);
 
+    OpalConnection::AnswerCallResponse OnAnswerCall (OpalConnection & connection,
+                                                     const PString & caller);
+
+
     /* used to get the STUNDetector results */
     PThread* stun_thread;
     GAsyncQueue* queue;
@@ -169,11 +173,11 @@ private:
 
     std::string stun_server;
     unsigned noAnswerDelay;
+    bool autoAnswer;
     bool forward_on_busy;
     bool unconditional_forward;
     bool forward_on_no_answer;
     bool stun_enabled;
-    bool auto_answer;
 
     /* The various related endpoints */
     Sip::EndPoint *sip_endpoint;


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