Editing Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.

Warning: This page is 67 kilobytes long; some browsers may have problems editing pages approaching or longer than 32kb. Please consider breaking the page into smaller sections.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 428: Line 428:
====Getting List of User-Saved Connections ====
====Getting List of User-Saved Connections ====
 +
To query all user-saved connections (IAPs), use the ''con_ic_connection_get_all_iaps()'' function. The function returns simply a singly linked list of ConIcIap objects:
-
To query all user-saved connections (IAPs), use the <code>con_ic_connection_get_all_iaps()</code> function. The function returns simply a singly linked list of <code>ConIcIap</code> objects:
+
<tt>    <span>''<span><font color="#9A1900">/* ConIcConnection object named "connection" has already been created */</font></span>''</span>
 +
    GSList <span><font color="#990000"><nowiki>*</nowiki></font></span>saved_iaps <span><font color="#990000"><nowiki>=</nowiki></font></span> <span>'''<span><font color="#000000">con_ic_connection_get_all_iaps</font></span>'''</span><span><font color="#990000">(</font></span>connection<span><font color="#990000">);</font></span>
 +
    <span>'''<span><font color="#000000">g_debug</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#FF0000">"The following connections have been saved by the user:"</font></span><span><font color="#990000">);</font></span>
 +
    <span>'''<span><font color="#0000FF">for</font></span>'''</span> <span><font color="#990000">(</font></span>GSList <span><font color="#990000"><nowiki>*</nowiki></font></span>iter <span><font color="#990000"><nowiki>=</nowiki></font></span> saved_iaps<span><font color="#990000"><nowiki>;</nowiki></font></span> iter <span><font color="#990000"><nowiki>!=</nowiki></font></span> NULL<span><font color="#990000"><nowiki>;</nowiki></font></span> iter <span><font color="#990000"><nowiki>=</nowiki></font></span> <span>'''<span><font color="#000000">g_slist_next</font></span>'''</span><span><font color="#990000">(</font></span>iter<span><font color="#990000">))</font></span> <span><font color="#FF0000">{</font></span>
 +
        <span>''<span><font color="#9A1900">/* Get IAP object and print some information about it */</font></span>''</span>
 +
        ConIcIap <span><font color="#990000"><nowiki>*</nowiki></font></span>iap <span><font color="#990000"><nowiki>=</nowiki></font></span> <span><font color="#990000">(</font></span>ConIcIap <span><font color="#990000"><nowiki>*)</nowiki></font></span>iter<span><font color="#990000">-&gt;</font></span>data<span><font color="#990000"><nowiki>;</nowiki></font></span>
 +
        <span>'''<span><font color="#000000">g_debug</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#FF0000">"Connection %s called '%s' using bearer %s"</font></span><span><font color="#990000">,</font></span>
 +
                <span>'''<span><font color="#000000">con_ic_iap_get_id</font></span>'''</span><span><font color="#990000">(</font></span>iap<span><font color="#990000">),</font></span> <span>'''<span><font color="#000000">con_ic_iap_get_name</font></span>'''</span><span><font color="#990000">(</font></span>iap<span><font color="#990000">),</font></span>
 +
                <span>'''<span><font color="#000000">con_ic_iap_get_bearer_type</font></span>'''</span><span><font color="#990000">(</font></span>iap<span><font color="#990000">));</font></span>
 +
        <span>''<span><font color="#9A1900">/* We unref the IAP object as we are not going to use it anymore */</font></span>''</span>
 +
        <span>'''<span><font color="#000000">g_object_unref</font></span>'''</span><span><font color="#990000">(</font></span>iap<span><font color="#990000">);</font></span>
 +
    <span><font color="#FF0000">}</font></span>
 +
    <span>'''<span><font color="#000000">g_slist_free</font></span>'''</span><span><font color="#990000">(</font></span>saved_iaps<span><font color="#990000">);</font></span></tt>
-
<source lang="c">
 
-
    /* ConIcConnection object named "connection" has already been created */
 
-
    GSList *saved_iaps = con_ic_connection_get_all_iaps(connection);
 
-
    g_debug("The following connections have been saved by the user:");
 
-
    for (GSList *iter = saved_iaps; iter != NULL; iter = g_slist_next(iter)) {
 
-
        /* Get IAP object and print some information about it */
 
-
        ConIcIap *iap = (ConIcIap *)iter->data;
 
-
        g_debug("Connection %s called '%s' using bearer %s",
 
-
                con_ic_iap_get_id(iap), con_ic_iap_get_name(iap),
 
-
                con_ic_iap_get_bearer_type(iap));
 
-
        /* We unref the IAP object as we are not going to use it anymore */
 
-
        g_object_unref(iap);
 
-
    }
 
-
    g_slist_free(saved_iaps);
 
-
</source>
 
==== Porting Application from OSSO IC API to Libconic ====
==== Porting Application from OSSO IC API to Libconic ====
-
 
+
* If the application does not have GType, GLib or D-BUS configured, set them up:
-
* If the application does not have <code>GType</code>, GLib or D-Bus configured, set them up:
+
<tt>      DBusConnection <span><font color="#990000"><nowiki>*</nowiki></font></span>system_dbus<span><font color="#990000"><nowiki>;</nowiki></font></span>
-
 
+
      GMainLoop <span><font color="#990000"><nowiki>*</nowiki></font></span>main_loop<span><font color="#990000"><nowiki>;</nowiki></font></span>
-
<source lang="c">
+
      <span>'''<span><font color="#000000">g_type_init</font></span>'''</span><span><font color="#990000">();</font></span>
-
      DBusConnection *system_dbus;
+
      main_loop <span><font color="#990000"><nowiki>=</nowiki></font></span> <span>'''<span><font color="#000000">g_main_loop_new</font></span>'''</span><span><font color="#990000">(</font></span>NULL<span><font color="#990000">,</font></span> FALSE<span><font color="#990000">);</font></span>
-
      GMainLoop *main_loop;
+
      system_dbus <span><font color="#990000"><nowiki>=</nowiki></font></span> <span>'''<span><font color="#000000">dbus_bus_get</font></span>'''</span><span><font color="#990000">(</font></span>DBUS_BUS_SYSTEM<span><font color="#990000">,</font></span> NULL<span><font color="#990000">);</font></span>
-
      g_type_init();
+
      <span>'''<span><font color="#000000">dbus_connection_setup_with_g_main</font></span>'''</span><span><font color="#990000">(</font></span>system_dbus<span><font color="#990000">,</font></span> NULL<span><font color="#990000">);</font></span></tt>
-
      main_loop = g_main_loop_new(NULL, FALSE);
+
-
      system_dbus = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
+
-
      dbus_connection_setup_with_g_main(system_dbus, NULL);
+
-
</source>
+
-
 
+
* Include the correct header file:
* Include the correct header file:
-
 
+
<tt><span>'''<span><font color="#000080">     #include</font></span>'''</span> <span><font color="#FF0000">&lt;osso-ic.h&gt;</font></span>
-
<source lang="c">
+
      <span><font color="#990000"><nowiki>===&gt;</nowiki></font></span>
-
      #include <osso-ic.h>
+
<span>'''<span><font color="#000080">      #include</font></span>'''</span> <span><font color="#FF0000">&lt;conic.h&gt;</font></span></tt>
-
      /* change to: */
+
* Set up ''ConIcConnection'' object and "connection-event" handler instead of ''osso_iap_cb_t'' callback:
-
      #include <conic.h>
+
<tt>      <span>'''<span><font color="#0000FF">static</font></span>'''</span> <span><font color="#009900">void</font></span> <span>'''<span><font color="#000000">my_connection_cb</font></span>'''</span><span><font color="#990000">(</font></span><span>'''<span><font color="#0000FF">struct</font></span>'''</span> <span><font color="#009900">iap_event_t</font></span> <span><font color="#990000"><nowiki>*</nowiki></font></span>event<span><font color="#990000">,</font></span> <span><font color="#009900">void</font></span> <span><font color="#990000"><nowiki>*</nowiki></font></span>arg<span><font color="#990000">)</font></span>
-
</source>
+
      <span><font color="#FF0000">{</font></span>
-
 
+
      <span>''<span><font color="#9A1900">/* ... */</font></span>''</span>
-
* Set up <code>ConIcConnection</code> object and <code>connection-event</code> handler instead of <code>osso_iap_cb_t</code> callback:
+
      <span><font color="#FF0000">}</font></span>
-
 
+
      <span>''<span><font color="#9A1900">/* ... */</font></span>''</span>
-
<source lang="c">
+
          <span>'''<span><font color="#000000">osso_iap_cb</font></span>'''</span><span><font color="#990000">(</font></span>my_connection_cb<span><font color="#990000">);</font></span>
-
      static void my_connection_cb(struct iap_event_t *event, void *arg)
+
      <span><font color="#990000"><nowiki>===&gt;</nowiki></font></span>
-
      {
+
      <span>'''<span><font color="#0000FF">static</font></span>'''</span> <span><font color="#009900">void</font></span> <span>'''<span><font color="#000000">my_connection_cb</font></span>'''</span><span><font color="#990000">(</font></span>ConIcConnection <span><font color="#990000"><nowiki>*</nowiki></font></span>connection<span><font color="#990000">,</font></span>
-
      /* ... */
+
                                    ConIcConnectionEvent <span><font color="#990000"><nowiki>*</nowiki></font></span>event<span><font color="#990000">,</font></span>
-
      }
+
                                    gpointer user_data<span><font color="#990000">)</font></span>
-
      /* ... */
+
      <span><font color="#FF0000">{</font></span>
-
          osso_iap_cb(my_connection_cb);
+
      <span>''<span><font color="#9A1900">/* ... */</font></span>''</span>
-
      ===>
+
      <span><font color="#FF0000">}</font></span>
-
      static void my_connection_cb(ConIcConnection *connection,
+
      <span>''<span><font color="#9A1900">/* ... */</font></span>''</span>
-
                                  ConIcConnectionEvent *event,
+
          ConIcConnection <span><font color="#990000"><nowiki>*</nowiki></font></span>connection <span><font color="#990000"><nowiki>=</nowiki></font></span> <span>'''<span><font color="#000000">con_ic_connection_new</font></span>'''</span><span><font color="#990000">();</font></span>
-
                                  gpointer user_data)
+
          <span>'''<span><font color="#000000">g_signal_connect</font></span>'''</span><span><font color="#990000">(</font></span><span>'''<span><font color="#000000">G_OBJECT</font></span>'''</span><span><font color="#990000">(</font></span>connection<span><font color="#990000">),</font></span> <span><font color="#FF0000">"connection-event"</font></span><span><font color="#990000">,</font></span>
-
      {
+
                            <span>'''<span><font color="#000000">G_CALLBACK</font></span>'''</span><span><font color="#990000">(</font></span>my_connection_cb<span><font color="#990000">),</font></span> app_data<span><font color="#990000">);</font></span></tt>
-
      /* ... */
+
* Manage connections through ''ConIcConnection'' API instead of <br />''osso_iap_connect()'' and ''osso_iap_disconnect()''<nowiki>: </nowiki>
-
      }
+
<tt>      <span>'''<span><font color="#000000">osso_iap_connect</font></span>'''</span><span><font color="#990000">(</font></span>OSSO_IAP_ANY<span><font color="#990000">,</font></span> OSSO_IAP_REQUESTED_CONNECT<span><font color="#990000">,</font></span> app_data<span><font color="#990000">);</font></span>
-
      /* ... */
+
      <span>'''<span><font color="#000000">osso_iap_disconnect</font></span>'''</span><span><font color="#990000">(</font></span>iap_name<span><font color="#990000">,</font></span> app_data<span><font color="#990000">);</font></span>
-
          ConIcConnection *connection = con_ic_connection_new();
+
      <span><font color="#990000"><nowiki>===&gt;</nowiki></font></span>
-
          g_signal_connect(G_OBJECT(connection), "connection-event",
+
      <span>'''<span><font color="#000000">con_ic_connection_connect</font></span>'''</span><span><font color="#990000">(</font></span>connection<span><font color="#990000">,</font></span> CON_IC_CONNECT_FLAG_NONE<span><font color="#990000">);</font></span>
-
                          G_CALLBACK(my_connection_cb), app_data);
+
      <span>'''<span><font color="#000000">con_ic_connection_disconnect</font></span>'''</span><span><font color="#990000">(</font></span>connection<span><font color="#990000">);</font></span></tt>
-
</source>
+
* Request statistics with ''con_ic_connection_statistics()'' instead of <br />''osso_iap_get_statistics()''.
-
 
+
* List all available IAPs with ''con_ic_connection_get_all_iaps()'' instead of <br />''osso_iap_get_configured_iaps()''.
-
* Request statistics with <code>con_ic_connection_statistics()</code> instead of <code>osso_iap_get_statistics()</code>.
+
-
* List all available IAPs with <code>con_ic_connection_get_all_iaps()</code> instead of <code>osso_iap_get_configured_iaps()</code>.
+
* Configure autoconf to use Libconic instead of OSSO IC API:
* Configure autoconf to use Libconic instead of OSSO IC API:
-
<source lang="autoconf">
+
<tt>      PKG_CHECK_MODULES<span><font color="#990000">(</font></span>OSSOIC<span><font color="#990000">,</font></span> osso-ic<span><font color="#990000">)</font></span>
-
PKG_CHECK_MODULES(OSSOIC, osso-ic)
+
      AC_SUBST<span><font color="#990000">(</font></span>OSSOIC_CFLAGS<span><font color="#990000">)</font></span>
-
AC_SUBST(OSSOIC_CFLAGS)
+
      AC_SUBST<span><font color="#990000">(</font></span>OSSOIC_LIBS<span><font color="#990000">)</font></span>
-
AC_SUBST(OSSOIC_LIBS)
+
      <span><font color="#990000"><nowiki>===&gt;</nowiki></font></span>
-
# Change to:
+
      PKG_CHECK_MODULES<span><font color="#990000">(</font></span>CONIC<span><font color="#990000">,</font></span> conic<span><font color="#990000">)</font></span>
-
PKG_CHECK_MODULES(CONIC, conic)
+
      AC_SUBST<span><font color="#990000">(</font></span>CONIC_CFLAGS<span><font color="#990000">)</font></span>
-
AC_SUBST(CONIC_CFLAGS)
+
      AC_SUBST<span><font color="#990000">(</font></span>CONIC_LIBS<span><font color="#990000">)</font></span></tt>
-
AC_SUBST(CONIC_LIBS)
+
* In debian/control file "Build-Depends" section, depend on libconic0-dev instead of osso-ic-dev.
-
</source>
+
-
* In <code>debian/control</code> file <code>Build-Depends</code> section, depend on <code>libconic0-dev</code> instead of <code>osso-ic-dev</code>.
+
==Bluetooth Libraries ==
==Bluetooth Libraries ==

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)