ekiga r6150 - in trunk: . src/clients src/endpoints src/gui



Author: dsandras
Date: Tue Apr  8 22:06:37 2008
New Revision: 6150
URL: http://svn.gnome.org/viewvc/ekiga?rev=6150&view=rev

Log:
Removed a bunch of unuseful methods.
Added multihoming support, allowing Ekiga to listen on several
interfaces at the same time, including for SIP.


Modified:
   trunk/ChangeLog
   trunk/ekiga.schemas.in.in
   trunk/src/clients/stun.cpp
   trunk/src/endpoints/ekiga.cpp
   trunk/src/endpoints/h323.cpp
   trunk/src/endpoints/h323.h
   trunk/src/endpoints/manager.cpp
   trunk/src/endpoints/manager.h
   trunk/src/endpoints/opal-gmconf-bridge.cpp
   trunk/src/endpoints/sip.cpp
   trunk/src/endpoints/sip.h
   trunk/src/gui/preferences.cpp
   trunk/src/gui/preferences.h

Modified: trunk/ekiga.schemas.in.in
==============================================================================
--- trunk/ekiga.schemas.in.in	(original)
+++ trunk/ekiga.schemas.in.in	Tue Apr  8 22:06:37 2008
@@ -378,17 +378,6 @@
       </locale>
     </schema>
     <schema>
-      <key>/schemas/apps/@PACKAGE_NAME@/protocols/interface</key>
-      <applyto>/apps/@PACKAGE_NAME@/protocols/interface</applyto>
-      <owner>Ekiga</owner>
-      <type>string</type>
-      <default>eth0</default>
-      <locale name="C">
-	<short>The network interface</short>
-	<long>The network interface to listen on</long>
-      </locale>
-    </schema>
-    <schema>
       <key>/schemas/apps/@PACKAGE_NAME@/protocols/accounts_list</key>
       <applyto>/apps/@PACKAGE_NAME@/protocols/accounts_list</applyto>
       <owner>Ekiga</owner>
@@ -474,18 +463,7 @@
       <default>30000:30010</default>
       <locale name="C">
 	<short>TCP port range</short>
-	<long>The range of TCP ports that Ekiga will use for the H.323 H.245 channel. Ekiga needs to be restarted for the new values to take effect. This port range has no effect if both participants to the conference are using H.245 Tunneling.</long>
-      </locale>
-    </schema>
-    <schema>
-      <key>/schemas/apps/@PACKAGE_NAME@/protocols/ports/rtp_port_range</key>
-      <applyto>/apps/@PACKAGE_NAME@/protocols/ports/rtp_port_range</applyto>
-      <owner>Ekiga</owner>
-      <type>string</type>
-      <default>5000:5059</default>
-      <locale name="C">
-	<short>UDP port range</short>
-	<long>The range of UDP ports that Ekiga will use for RTP (audio and video communication channels). Ekiga needs to be restarted for the new values to take effect.</long>
+	<long>The range of TCP ports that Ekiga will use for the H.323 H.245 channel. This port range has no effect if both participants to the conference are using H.245 Tunneling.</long>
       </locale>
     </schema>
     <schema>
@@ -496,7 +474,7 @@
       <default>5060:5100</default>
       <locale name="C">
 	<short>UDP port range</short>
-	<long>The range of UDP ports that Ekiga will use for SIP signaling and when registering to gatekeepers. Ekiga needs to be restarted for the new values to take effect.</long>
+	<long>The range of UDP ports that Ekiga will use.</long>
       </locale>
     </schema>
     <schema>

Modified: trunk/src/clients/stun.cpp
==============================================================================
--- trunk/src/clients/stun.cpp	(original)
+++ trunk/src/clients/stun.cpp	Tue Apr  8 22:06:37 2008
@@ -43,6 +43,9 @@
 #include "manager.h"
 #include "misc.h"
 
+#include "h323.h"
+#include "sip.h"
+
 #include "gmconf.h"
 #include "gmdialog.h"
 
@@ -344,7 +347,9 @@
     ((OpalManager *) &ep)->SetSTUNServer (stun_host);
 
     stun = ep.GetSTUN ();
-    ep.ResetListeners ();
+    // TODO to improve heh
+    ep.GetSIPEndpoint()->start_listening ();
+    ep.GetH323Endpoint()->start_listening ();
   }
 
   if (stun) 

Modified: trunk/src/endpoints/ekiga.cpp
==============================================================================
--- trunk/src/endpoints/ekiga.cpp	(original)
+++ trunk/src/endpoints/ekiga.cpp	Tue Apr  8 22:06:37 2008
@@ -127,6 +127,7 @@
 bool
 GnomeMeeting::DetectInterfaces ()
 {
+  //TODO
   PString config_interface;
   PString iface_noip;
   PString ip;
@@ -195,14 +196,7 @@
     i++;
   }
 
-
-  /* Update the GUI, if it is already there */
-  if (prefs_window)
-    gm_prefs_window_update_interfaces_list (prefs_window, 
-                                            interfaces);
-
   return res;
-
 }
 
 

Modified: trunk/src/endpoints/h323.cpp
==============================================================================
--- trunk/src/endpoints/h323.cpp	(original)
+++ trunk/src/endpoints/h323.cpp	Tue Apr  8 22:06:37 2008
@@ -57,6 +57,12 @@
 GMH323Endpoint::GMH323Endpoint (GMManager & ep)
 	: H323EndPoint (ep), endpoint (ep)
 {
+  udp_min = 5000;
+  udp_max = 5100; 
+  tcp_min = 30000;
+  tcp_max = 30010; 
+  listen_port = 5060;
+
   SetInitialBandwidth (40000);
 }
 
@@ -66,67 +72,6 @@
 }
 
 
-bool 
-GMH323Endpoint::StartListener (PString iface,
-			       WORD port)
-{
-  PString iface_noip;
-  PString ip;
-  PIPSocket::InterfaceTable ifaces;
-  PINDEX i = 0;
-  PINDEX pos = 0;
-  
-  gboolean ok = FALSE;
-  gboolean found = FALSE;
-  
-  gchar *listen_to = NULL;
-
-  RemoveListener (NULL);
-
-  /* Detect the valid interfaces */
-  PIPSocket::GetInterfaceTable (ifaces);
-
-  while (i < ifaces.GetSize ()) {
-
-    ip = " [" + ifaces [i].GetAddress ().AsString () + "]";
-    
-    if (ifaces [i].GetName () + ip == iface)
-      listen_to = 
-	g_strdup_printf ("tcp$%s:%d", 
-			 (const char *) ifaces [i].GetAddress().AsString(),
-			 port);
-      
-    i++;
-  }
-
-  i = 0;
-  pos = iface.Find("[");
-  if (pos != P_MAX_INDEX)
-    iface_noip = iface.Left (pos).Trim ();
-  while (i < ifaces.GetSize() && !found) {
-
-    if (ifaces [i].GetName () == iface_noip) {
-      listen_to = 
-	g_strdup_printf ("tcp$%s:%d", 
-			 (const char *) ifaces [i].GetAddress().AsString(),
-			 port);
-      found = TRUE;
-    }
-    
-    i++;
-  }
-
-  /* Start the listener thread for incoming calls */
-  if (!listen_to)
-    return FALSE;
-
-  ok = StartListeners (PStringArray (listen_to));
-  g_free (listen_to);
-
-  return ok;
-}
-
-
 void
 GMH323Endpoint::SetUserInputMode ()
 {
@@ -281,7 +226,7 @@
 
 
 bool 
-GMH323Endpoint::OnIncomingConnection (OpalConnection &connection,
+GMH323Endpoint::OnIncomingConnection (OpalConnection & /*connection*/,
                                       G_GNUC_UNUSED unsigned options,
                                       G_GNUC_UNUSED OpalConnection::StringOptions *str_options)
 {
@@ -337,3 +282,62 @@
   PTRACE (3, "GMSIPEndpoint\t H.323 connection released");
   H323EndPoint::OnReleased (connection);
 }
+
+
+bool GMH323Endpoint::start_listening ()
+{
+  std::stringstream str;
+  RemoveListener (NULL);
+
+  str << "tcp$*:" << listen_port;
+  if (StartListeners (PStringArray (str.str ().c_str ()))) 
+    return true;
+
+  return false;
+}
+
+
+bool GMH323Endpoint::set_tcp_ports (const unsigned min, const unsigned max) 
+{
+  if (min > 0 && max > 0 && min < max) {
+
+    tcp_min = min;
+    tcp_max = max;
+    endpoint.SetTCPPorts (tcp_min, tcp_max);
+
+    return true;
+  }
+
+  return false;
+}
+
+
+bool GMH323Endpoint::set_udp_ports (const unsigned min, const unsigned max) 
+{
+  if (min > 0 && max > 0 && min + 12 < max) {
+
+    udp_min = min;
+    udp_max = max;
+    std::cout << "set udp " << udp_min << " : " << udp_max << std::endl << std::flush;
+    endpoint.SetRtpIpPorts (udp_min, udp_max);
+    endpoint.SetUDPPorts (udp_min, udp_max);
+
+    return true;
+  }
+
+  return false;
+}
+
+
+bool GMH323Endpoint::set_listen_port (const unsigned listen)
+{
+  if (listen > 0) {
+
+    listen_port = listen;
+    return start_listening ();
+  }
+
+  return false;
+}
+
+

Modified: trunk/src/endpoints/h323.h
==============================================================================
--- trunk/src/endpoints/h323.h	(original)
+++ trunk/src/endpoints/h323.h	Tue Apr  8 22:06:37 2008
@@ -70,16 +70,6 @@
   
   
   /* DESCRIPTION  :  /
-   * BEHAVIOR     :  Starts the listener thread on the port choosen 
-   *                 in the options after having removed old listeners.
-   *                 returns TRUE if success and FALSE in case of error.
-   * PRE          :  The interface.
-   */
-  bool StartListener (PString iface, 
-		      WORD port);
-
-  
-  /* DESCRIPTION  :  /
    * BEHAVIOR     :  Adds the User Input Mode following the
    *                 configuration options. String, Tone, and RFC2833 are 
    *                 supported for now.
@@ -169,6 +159,11 @@
    */
   void OnReleased (OpalConnection &);
 
+  bool start_listening ();
+  bool set_udp_ports (const unsigned min, const unsigned max);
+  bool set_tcp_ports (const unsigned min, const unsigned max);
+  bool set_listen_port (const unsigned listen);
+
 
  private:
 
@@ -177,6 +172,11 @@
   PString gk_name;
 
   std::string forward_uri;
+  unsigned tcp_min;
+  unsigned tcp_max;
+  unsigned udp_min;
+  unsigned udp_max;
+  unsigned listen_port;
 };
 
 #endif

Modified: trunk/src/endpoints/manager.cpp
==============================================================================
--- trunk/src/endpoints/manager.cpp	(original)
+++ trunk/src/endpoints/manager.cpp	Tue Apr  8 22:06:37 2008
@@ -74,18 +74,6 @@
 };
 
 
-
-/* DESCRIPTION  :  This notifier is called when the config database data
- *                 associated with the listening interface changes.
- * BEHAVIOR     :  Updates the interface.
- * PRE          :  data is a pointer to the GMManager.
- */
-static void network_interface_changed_nt (G_GNUC_UNUSED gpointer id,
-                                          GmConfEntry *entry, 
-                                          gpointer data);
-
-
-
 /* DESCRIPTION  :  This notifier is called when the config database data
  *                 associated with the public ip changes.
  * BEHAVIOR     :  Updates the IP Translation address.
@@ -113,22 +101,6 @@
 
 
 static void 
-network_interface_changed_nt (G_GNUC_UNUSED gpointer id,
-                              GmConfEntry *entry, 
-                              gpointer data)
-{
-  GMManager *ep = (GMManager *) data;
-  
-  if (gm_conf_entry_get_type (entry) == GM_CONF_STRING) {
-
-    gdk_threads_enter ();
-    ep->ResetListeners ();
-    gdk_threads_leave ();
-  }
-}
-
-
-static void 
 public_ip_changed_nt (G_GNUC_UNUSED gpointer id,
 		      GmConfEntry *entry, 
 		      gpointer data)
@@ -860,8 +832,6 @@
   SetSTUNServer (PString ());
 
   sc = NULL;
-
-  ResetListeners ();
 }
 
 
@@ -976,14 +946,9 @@
   SetMediaFormatOrder (PStringArray ());
   SetMediaFormatMask (PStringArray ());
 
-  /* Reset the listeners */
-  ResetListeners ();
-
   g_free (ip);
   
   /* GMConf notifiers for what we manager */
-  gm_conf_notifier_add (PROTOCOLS_KEY "interface",
-			network_interface_changed_nt, this);
   gm_conf_notifier_add (NAT_KEY "public_ip",
 			public_ip_changed_nt, this);
   gm_conf_notifier_add (PERSONAL_DATA_KEY "status",
@@ -992,71 +957,6 @@
 
 
 void
-GMManager::ResetListeners ()
-{
-  gchar *iface = NULL;
-  gchar *ports = NULL;
-  gchar **couple = NULL;
-
-  WORD port = 0;
-  WORD min_port = 5060;
-  WORD max_port = 5080;
-
-  gnomemeeting_threads_enter ();
-  iface = gm_conf_get_string (PROTOCOLS_KEY "interface");
-  gnomemeeting_threads_leave ();
-  
-  /* Create the H.323 and SIP listeners */
-  if (h323EP) {
-  
-    gnomemeeting_threads_enter ();
-    port = gm_conf_get_int (H323_KEY "listen_port");
-    gnomemeeting_threads_leave ();
-    
-    h323EP->RemoveListener (NULL);
-    if (!h323EP->StartListener (iface, port)) 
-      PTRACE (1, "Manager\tCould not start H.323 listener on " << iface << ":" << port);
-  }
-
-  if (sipEP) {
-    
-    gnomemeeting_threads_enter ();
-    port = gm_conf_get_int (SIP_KEY "listen_port");
-    ports = gm_conf_get_string (PORTS_KEY "udp_port_range");
-    if (ports)
-      couple = g_strsplit (ports, ":", 2);
-    if (couple && couple [0]) {
-      min_port = atoi (couple [0]);
-    }
-    if (couple && couple [1]) {
-      max_port = atoi (couple [1]);
-    }
-    gnomemeeting_threads_leave ();
-    
-    sipEP->RemoveListener (NULL);
-    if (!sipEP->StartListener (iface, port)) {
-      
-      bool success = false;
-      port = min_port;
-      while (port <= max_port && !success) {
-       
-        success = sipEP->StartListener (iface, port);
-        port++;
-      }
-
-      if (!success) 
-        PTRACE (1, "Manager\tCould not start SIP listener on " << iface << ":" << min_port << "-" << max_port);
-    }
-
-    g_strfreev (couple);
-    g_free (ports);
-  }
-
-  g_free (iface);
-}
-
-
-void
 GMManager::OnIPChanged (PTimer &,
 			INT)
 {

Modified: trunk/src/endpoints/manager.h
==============================================================================
--- trunk/src/endpoints/manager.h	(original)
+++ trunk/src/endpoints/manager.h	Tue Apr  8 22:06:37 2008
@@ -185,16 +185,6 @@
 
   
   /* DESCRIPTION  :  /
-   * BEHAVIOR     :  Reset the listeners for all components. Displays an
-   * 		     error dialog if it fails. The interface and ports
-   * 		     are retrieved from the GmConf database.
-   * 		     Remove old listeners if any.
-   * PRE          :  / 
-   */
-  void ResetListeners ();
-  
-  
-  /* DESCRIPTION  :  /
    * BEHAVIOR     :  Returns the local or remote OpalConnection for the 
    * 		     given call. If there are several remote connections,
    * 		     the first one is returned.

Modified: trunk/src/endpoints/opal-gmconf-bridge.cpp
==============================================================================
--- trunk/src/endpoints/opal-gmconf-bridge.cpp	(original)
+++ trunk/src/endpoints/opal-gmconf-bridge.cpp	Tue Apr  8 22:06:37 2008
@@ -83,6 +83,10 @@
   keys.push_back (H323_KEY "enable_early_h245");
   keys.push_back (H323_KEY "enable_fast_start");
 
+  keys.push_back (SIP_KEY "listen_port");
+  keys.push_back (PORTS_KEY "udp_port_range");
+  keys.push_back (PORTS_KEY "tcp_port_range");
+
   load (keys);
 }
 
@@ -287,5 +291,46 @@
 
     manager.GetSIPEndpoint ()->set_no_answer_timeout (gm_conf_entry_get_int (entry));
   }
+
+
+  //
+  // Ports keys
+  //
+  else if (key == H323_KEY "listen_port") {
+
+    manager.GetH323Endpoint ()->set_listen_port (gm_conf_entry_get_int (entry));
+  }
+  else if (key == SIP_KEY "listen_port") {
+
+    manager.GetSIPEndpoint ()->set_listen_port (gm_conf_entry_get_int (entry));
+  }
+  else if (key == PORTS_KEY "udp_port_range"
+           || key == PORTS_KEY "tcp_port_range") {
+
+    const gchar *ports = gm_conf_entry_get_string (entry);
+    gchar **couple = NULL;
+    unsigned min_port = 0;
+    unsigned max_port = 0;
+
+    if (ports)
+      couple = g_strsplit (ports, ":", 2);
+
+    if (couple && couple [0]) 
+      min_port = atoi (couple [0]);
+    
+    if (couple && couple [1]) 
+      max_port = atoi (couple [1]);
+    
+    std::cout << "ici et la" << std::endl << std::flush;
+    if (key == PORTS_KEY "udp_port_range") {
+
+      manager.GetSIPEndpoint ()->set_udp_ports (min_port, max_port);
+      std::cout << "ici et la" << min_port << " " << max_port << std::endl << std::flush;
+      manager.GetH323Endpoint ()->set_udp_ports (min_port, max_port);
+    }
+    else
+      manager.GetH323Endpoint ()->set_tcp_ports (min_port, max_port);
+    g_free (couple);
+  }
 }
 

Modified: trunk/src/endpoints/sip.cpp
==============================================================================
--- trunk/src/endpoints/sip.cpp	(original)
+++ trunk/src/endpoints/sip.cpp	Tue Apr  8 22:06:37 2008
@@ -55,6 +55,9 @@
   runtime (*(dynamic_cast<Ekiga::Runtime *> (core.get ("runtime"))))
 {
   uri_prefix = "sip:";
+  udp_min = 5000;
+  udp_max = 5100; 
+  listen_port = 5060;
 
   /* Timeouts */
   SetAckTimeout (PTimeInterval (0, 32));
@@ -70,6 +73,9 @@
   Ekiga::PersonalDetails *details = dynamic_cast<Ekiga::PersonalDetails *> (_core.get ("personal-details"));
   if (details)
     publish (*details);
+
+  /* Start listening */
+  start_listening ();
 }
 
 
@@ -277,6 +283,58 @@
   SIPEndPoint::SetNATBindingTimeout (PTimeInterval (0, delay));
 }
 
+
+bool GMSIPEndpoint::start_listening ()
+{
+  unsigned port = listen_port;
+  std::stringstream str;
+  RemoveListener (NULL);
+
+  str << "udp$*:" << port;
+  if (!StartListeners (PStringArray (str.str ().c_str ()))) {
+
+    port = udp_min;
+    str << "udp$*:" << port;
+    while (port <= udp_max) {
+
+      if (StartListeners (PStringArray (str.str ().c_str ())))
+        return true;
+      port++;
+    }
+  }
+
+  return false;
+}
+
+
+bool GMSIPEndpoint::set_udp_ports (const unsigned min, const unsigned max) 
+{
+  if (min > 0 && max > 0 && min + 12 < max) {
+
+    udp_min = min;
+    udp_max = max;
+    endpoint.SetRtpIpPorts (udp_min, udp_max);
+    endpoint.SetUDPPorts (udp_min, udp_max);
+
+    return start_listening ();
+  }
+
+  return false;
+}
+
+
+bool GMSIPEndpoint::set_listen_port (const unsigned listen)
+{
+  if (listen > 0 && listen >= udp_min && listen <= udp_max) {
+
+    listen_port = listen;
+    return start_listening ();
+  }
+
+  return false;
+}
+
+
 void 
 GMSIPEndpoint::set_forward_host (const std::string & uri)
 {
@@ -308,69 +366,6 @@
 }
 
 
-bool 
-GMSIPEndpoint::StartListener (PString iface, 
-                              WORD port)
-{
-  PString iface_noip;
-  PString ip;
-  PIPSocket::InterfaceTable ifaces;
-  PINDEX i = 0;
-  PINDEX pos = 0;
-
-  gboolean ok = FALSE;
-  gboolean found = FALSE;
-
-  gchar *listen_to = NULL;
-
-  RemoveListener (NULL);
-
-  /* Detect the valid interfaces */
-  PIPSocket::GetInterfaceTable (ifaces);
-
-  while (i < ifaces.GetSize ()) {
-
-    ip = " [" + ifaces [i].GetAddress ().AsString () + "]";
-
-    if (ifaces [i].GetName () + ip == iface) {
-      listen_to = 
-        g_strdup_printf ("udp$%s:%d", 
-                         (const char *) ifaces [i].GetAddress().AsString(),
-                         port);
-      found = TRUE;
-    }
-
-    i++;
-  }
-
-  i = 0;
-  pos = iface.Find("[");
-  if (pos != P_MAX_INDEX)
-    iface_noip = iface.Left (pos).Trim ();
-  while (i < ifaces.GetSize() && !found) {
-
-    if (ifaces [i].GetName () == iface_noip) {
-      listen_to = 
-        g_strdup_printf ("udp$%s:%d", 
-                         (const char *) ifaces [i].GetAddress().AsString(),
-                         port);
-      found = TRUE;
-    }
-
-    i++;
-  }
-
-  /* Start the listener thread for incoming calls */
-  if (!listen_to)
-    return FALSE;
-
-  ok = StartListeners (PStringArray (listen_to));
-  g_free (listen_to);
-
-  return ok;
-}
-
-
 void 
 GMSIPEndpoint::Register (const PString & _aor,
                          const PString & authUserName,

Modified: trunk/src/endpoints/sip.h
==============================================================================
--- trunk/src/endpoints/sip.h	(original)
+++ trunk/src/endpoints/sip.h	Tue Apr  8 22:06:37 2008
@@ -108,6 +108,9 @@
    * It is probably needed to move some of those functions
    * in the core
    */
+  bool start_listening ();
+  bool set_udp_ports (const unsigned min, const unsigned max);
+  bool set_listen_port (const unsigned listen);
   void set_forward_host (const std::string & uri);
   void set_forward_on_busy (const bool enabled);
   void set_unconditional_forward (const bool enabled);
@@ -116,16 +119,6 @@
 
 
   /* DESCRIPTION  :  /
-   * BEHAVIOR     :  Starts the listener thread on the port choosen 
-   *                 in the options after having removed old listeners.
-   *                 returns TRUE if success and FALSE in case of error.
-   * PRE          :  The interface.
-   */
-  bool StartListener (PString iface,
-                      WORD port);
-
-
-  /* DESCRIPTION  :  /
    * BEHAVIOR     :  Register the SIP endpoint to the given SIP server. 
    * PRE          :  Correct parameters.
    */
@@ -260,5 +253,8 @@
   bool unconditional_forward;
   bool forward_on_no_answer;
   unsigned no_answer_timeout;
+  unsigned udp_min;
+  unsigned udp_max;
+  unsigned listen_port;
 };
 #endif

Modified: trunk/src/gui/preferences.cpp
==============================================================================
--- trunk/src/gui/preferences.cpp	(original)
+++ trunk/src/gui/preferences.cpp	Tue Apr  8 22:06:37 2008
@@ -619,7 +619,6 @@
   GtkWidget *subsection = NULL;
 
   PStringArray ifaces;
-  char **array = NULL;
   const gchar *nat_method [] = 
     {
       _("None"),
@@ -635,16 +634,6 @@
   g_return_if_fail (pw != NULL);
 
 
-  /* The network interface */
-  subsection = gnome_prefs_subsection_new (prefs_window, container,
-                                           _("Network Interface"), 1, 2);
-
-  ifaces = GnomeMeeting::Process ()->GetInterfaces ();
-  array = ifaces.ToCharArray ();
-  pw->iface =
-    gnome_prefs_string_option_menu_new (subsection, _("Listen on:"), (const gchar **)array, PROTOCOLS_KEY "interface", _("The network interface to listen on"), 0);
-  free (array);
-
   /* NAT */
   subsection =
     gnome_prefs_subsection_new (prefs_window, container,
@@ -1355,26 +1344,6 @@
 
 /* Public functions */
 void 
-gm_prefs_window_update_interfaces_list (GtkWidget *prefs_window, 
-					PStringArray interfaces)
-{
-  GmPreferencesWindow *pw = NULL;
-
-  gchar **array = NULL;
-
-  g_return_if_fail (prefs_window != NULL);
-  pw = gm_pw_get_pw (prefs_window);
-
-
-  /* The Video player */
-  array = interfaces.ToCharArray ();
-  gnome_prefs_string_option_menu_update (pw->iface,
-					 (const gchar **)array,
-					 PROTOCOLS_KEY "interface");
-  free (array);
-}
-
-void 
 gm_prefs_window_update_devices_list (GtkWidget *prefs_window)
 {
   GmPreferencesWindow *pw = NULL;

Modified: trunk/src/gui/preferences.h
==============================================================================
--- trunk/src/gui/preferences.h	(original)
+++ trunk/src/gui/preferences.h	Tue Apr  8 22:06:37 2008
@@ -46,14 +46,6 @@
 #include "audioinput-core.h"
 #include "audiooutput-core.h"
 
-/* DESCRIPTION  :  /
- * BEHAVIOR     :  Refreshes the interfaces list in the GUI to update them from
- *                 the GnomeMeeting available list.
- * PRE          :  The prefs window GMObject, the available devices list.
- */
-void gm_prefs_window_update_interfaces_list (GtkWidget *prefs_window,
-					     PStringArray interfaces);
-
 
 /* DESCRIPTION  :  / 
  * BEHAVIOR     :  Builds the sound events list of the preferences window. 



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