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 84 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 1,105: | Line 1,105: | ||
: Signal emitted from UI when the SIM PIN has been entered. | : Signal emitted from UI when the SIM PIN has been entered. | ||
- | ===Bluetooth | + | ===Bluetooth DBUS UI dialogs === |
conbtdialogs-dbus.h | conbtdialogs-dbus.h | ||
- | < | + | <tt><span>''<span><font color="#9A1900">/** </font></span>''</span> |
- | /** | + | <span>''<span><font color="#9A1900"> Example of use (command line):</font></span>''</span> |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> dbus-send --system --print-reply \</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> --dest='com.nokia.icd_ui' /com/nokia/bt_ui \</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> com.nokia.bt_ui.show_send_file_dlg \</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> array:string:</font></span>''</span><span><u><span><font color="#0000FF">file:///home/user/MyDocs/.documents/testing.txt</font></span></u></span> | |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> dbus-send --system --print-reply \</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> --dest=com.nokia.bt_ui /com/nokia/bt_ui </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> com.nokia.bt_ui.show_search_dlg \</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> string: string: array:string: string:</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"><nowiki>*/</nowiki></font></span>''</span> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | / | + | |
- | + | ||
- | + | ||
- | # | + | |
- | + | ||
- | + | ||
- | + | ||
- | / | + | |
- | + | ||
- | + | <span>'''<span><font color="#000080"><nowiki>#ifndef</nowiki></font></span>'''</span> CONBTDIALOGS_DBUS_H | |
- | + | <span>'''<span><font color="#000080"><nowiki>#define</nowiki></font></span>'''</span> CONBTDIALOGS_DBUS_H | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | # | + | |
- | + | ||
- | / | + | |
- | + | ||
- | + | <span>'''<span><font color="#000080"><nowiki>#ifdef</nowiki></font></span>'''</span> __cplusplus | |
- | + | <span>'''<span><font color="#0000FF">extern</font></span>'''</span> <span><font color="#FF0000">"C"</font></span> <span><font color="#FF0000">{</font></span> | |
- | + | <span>'''<span><font color="#000080"><nowiki>#endif</nowiki></font></span>'''</span> | |
- | + | ||
- | + | <span>''<span><font color="#9A1900">/** Conbtdialogs service, resides in system dbus */</font></span>''</span> | |
- | */ | + | <span>'''<span><font color="#000080"><nowiki>#define</nowiki></font></span>'''</span> CONBTDIALOGS_DBUS_SERVICE <span><font color="#FF0000">"com.nokia.bt_ui"</font></span> |
- | #define CONBTDIALOGS_SEND_FILE_SIG "send_file" | + | <span>''<span><font color="#9A1900">/** Conbtdialogs interface */</font></span>''</span> |
- | + | <span>'''<span><font color="#000080"><nowiki>#define</nowiki></font></span>'''</span> CONBTDIALOGS_DBUS_INTERFACE <span><font color="#FF0000">"com.nokia.bt_ui"</font></span> | |
- | / | + | <span>''<span><font color="#9A1900">/** Conbtdialogs path */</font></span>''</span> |
- | + | <span>'''<span><font color="#000080"><nowiki>#define</nowiki></font></span>'''</span> CONBTDIALOGS_DBUS_PATH <span><font color="#FF0000">"/com/nokia/bt_ui"</font></span> | |
+ | |||
+ | <span>''<span><font color="#9A1900">/** </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> Show send file dialog</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> Arguments:</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> uris: DBUS_TYPE_ARRAY Array of strings representing the URIs of the</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> files to send.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> Returns:</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> DBUS_TYPE_BOOLEAN TRUE, if dialog was shown successfully.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> */</font></span>''</span> | ||
+ | <span>'''<span><font color="#000080"><nowiki>#define</nowiki></font></span>'''</span> CONBTDIALOGS_SEND_FILE_REQ <span><font color="#FF0000">"show_send_file_dlg"</font></span> | ||
+ | |||
+ | <span>''<span><font color="#9A1900">/** </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> File sending result signal</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> Arguments:</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> success: DBUS_TYPE_BOOLEAN TRUE, if all files were sent successfully or</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> FALSE, if error occurred or sending was </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> canceled.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> */</font></span>''</span> | ||
+ | <span>'''<span><font color="#000080"><nowiki>#define</nowiki></font></span>'''</span> CONBTDIALOGS_SEND_FILE_SIG <span><font color="#FF0000">"send_file"</font></span> | ||
- | + | <span>''<span><font color="#9A1900">/** </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> Show BT device search dialog</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> Arguments:</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> major_class: DBUS_TYPE_STRING To set filtering based on major_class or</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> "". Possible major class values are:</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> "miscellaneous", "computer", "phone", </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> "access point", "audio/video", </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> "peripheral", "imaging", "wearable",</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> "toy" and "uncategorized".</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> minor_class: DBUS_TYPE_STRING To set filtering based on minor_class or "".</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> Possible minor class values are:</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
+ | <span>''<span><font color="#9A1900"> - Minor classes for "computer": </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> "uncategorized", "desktop", "server",</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> "laptop", "handheld", "palm", "wearable"</font></span>''</span> | ||
+ | |||
+ | <span>''<span><font color="#9A1900"> - Minor classes for "phone": "uncategorized",</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> "cellular", "cordless", "smart phone",</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> "modem", "isdn"</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> service_classes: DBUS_TYPE_ARRAY To set filtering based on service classes.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> Supported classes include "positioning", </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> "networking", "rendering", "capturing",</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> "object transfer", "audio", "telephony", </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> "information". Can be empty list, when no</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> service class filtering is performed.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> bonding: DBUS_TYPE_STRING Bonding mode for found and selected device:</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> "require" for requiring a bonding from a</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> selected device (i.e. bond device if it has not</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> been bonded before). </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> "force" to always bond (i.e. device will be</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> bonded even if bonded before).</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> Any other string will allow to search and</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> select device without bonding it.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> Returns:</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> DBUS_TYPE_BOOLEAN TRUE, if dialog was shown successfully.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> */</font></span>''</span> | ||
+ | <span>'''<span><font color="#000080"><nowiki>#define</nowiki></font></span>'''</span> CONBTDIALOGS_SEARCH_REQ <span><font color="#FF0000">"show_search_dlg"</font></span> | ||
+ | |||
+ | <span>''<span><font color="#9A1900">/** </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> Bluetooth search result signal</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> Arguments:</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> address: DBUS_TYPE_STRING Bluetooth address of the selected device, or ""</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> if search dialog was cancelled.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> name: DBUS_TYPE_STRING Name of the device.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> icon: DBUS_TYPE_STRING Logical name for the icon describing the </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> device.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> major_class: DBUS_TYPE_STRING Major class of the device.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> minor_class: DBUS_TYPE_STRING Minor class of the device.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> trusted: DBUS_TYPE_BOOLEAN Defines whether the device is marked as a trusted device.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> </font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> services: DBUS_TYPE_ARRAY List of strings describing the service classes</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> and SDP-based services provided by the device.</font></span>''</span> | ||
+ | <span>''<span><font color="#9A1900"> */</font></span>''</span> | ||
+ | <span>'''<span><font color="#000080"><nowiki>#define</nowiki></font></span>'''</span> CONBTDIALOGS_SEARCH_SIG <span><font color="#FF0000">"search_result"</font></span> | ||
+ | </tt> | ||
- | + | <br> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | /** | + | <tt><span>''<span><font color="#9A1900">/**</font></span>''</span> |
- | + | <span>''<span><font color="#9A1900"> Bluetooth UI Library for maemo</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> Copyright (C) 2006 Nokia. All rights reserved.</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> This sample demonstrates the use of conbtdialogs API and especially </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> send_file function. Compile the program with conbtdialogs and dbus:</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> gcc -Wall `pkg-config -libs -cflags dbus-glib-1 conbtdialogs` \</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900">-o send_file conbtdialogs_send_file.c</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> Run with list of URLS:</font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> ./send_file </font></span>''</span><span><u><span><font color="#0000FF">file:///home/user/MyDocs/.sounds/Everyday.mp3</font></span></u></span> | |
- | + | <span>''<span><font color="#9A1900"><nowiki>*/</nowiki></font></span>''</span> | |
- | + | ||
- | + | <span>'''<span><font color="#000080"><nowiki>#define</nowiki></font></span>'''</span> DBUS_API_SUBJECT_TO_CHANGE | |
- | + | ||
- | + | <span>'''<span><font color="#000080"><nowiki>#include</nowiki></font></span>'''</span> <span><font color="#FF0000"><glib.h></font></span> | |
- | + | <span>'''<span><font color="#000080"><nowiki>#include</nowiki></font></span>'''</span> <span><font color="#FF0000"><conbtdialogs-dbus.h></font></span> | |
- | + | <span>'''<span><font color="#000080"><nowiki>#include</nowiki></font></span>'''</span> <span><font color="#FF0000"><dbus/dbus.h></font></span> | |
- | + | <span>'''<span><font color="#000080"><nowiki>#include</nowiki></font></span>'''</span> <span><font color="#FF0000"><dbus/dbus-glib.h></font></span> | |
- | + | ||
- | < | + | DBusGConnection <span><font color="#990000"><nowiki>*</nowiki></font></span>connection <span><font color="#990000"><nowiki>=</nowiki></font></span> NULL<span><font color="#990000"><nowiki>;</nowiki></font></span> |
- | + | GMainLoop <span><font color="#990000"><nowiki>*</nowiki></font></span>mainloop <span><font color="#990000"><nowiki>=</nowiki></font></span> NULL<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | < | + | |
- | + | <span>'''<span><font color="#0000FF">static</font></span>'''</span> gboolean <span>'''<span><font color="#000000">initialize</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#009900">void</font></span><span><font color="#990000">)</font></span> | |
- | + | <span><font color="#FF0000">{</font></span> | |
- | + | GError <span><font color="#990000"><nowiki>*</nowiki></font></span>error <span><font color="#990000"><nowiki>=</nowiki></font></span> NULL<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#000000">g_type_init</font></span>'''</span> <span><font color="#990000">();</font></span> | |
- | + | ||
- | + | <span>''<span><font color="#9A1900">/* Create main loop */</font></span>''</span> | |
- | + | mainloop <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> TRUE<span><font color="#990000">);</font></span> | |
- | + | <span>'''<span><font color="#0000FF">if</font></span>'''</span> <span><font color="#990000">(</font></span> mainloop <span><font color="#990000"><nowiki>==</nowiki></font></span> NULL <span><font color="#990000">)</font></span> <span>'''<span><font color="#0000FF">return</font></span>'''</span> FALSE<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | -o send_file conbtdialogs_send_file.c | + | |
- | + | <span>''<span><font color="#9A1900">/* Create DBUS connection */</font></span>''</span> | |
- | + | connection <span><font color="#990000"><nowiki>=</nowiki></font></span> <span>'''<span><font color="#000000">dbus_g_bus_get</font></span>'''</span><span><font color="#990000">(</font></span>DBUS_BUS_SYSTEM<span><font color="#990000">,</font></span> <span><font color="#990000">&</font></span>error<span><font color="#990000">);</font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#0000FF">if</font></span>'''</span> <span><font color="#990000">(</font></span>connection <span><font color="#990000"><nowiki>==</nowiki></font></span> NULL <span><font color="#990000">)</font></span> | |
- | */ | + | <span><font color="#FF0000">{</font></span> |
- | + | <span>'''<span><font color="#000000">g_print</font></span>'''</span> <span><font color="#990000">(</font></span><span><font color="#FF0000">"Error: %s</font></span><span><font color="#CC33CC">\n</font></span><span><font color="#FF0000">"</font></span><span><font color="#990000">,</font></span> error<span><font color="#990000">-></font></span>message<span><font color="#990000">);</font></span> | |
- | #define DBUS_API_SUBJECT_TO_CHANGE | + | <span>'''<span><font color="#000000">g_clear_error</font></span>'''</span> <span><font color="#990000">(&</font></span>error<span><font color="#990000">);</font></span> |
- | + | <span>'''<span><font color="#0000FF">return</font></span>'''</span> FALSE<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | #include <glib.h> | + | <span><font color="#FF0000">}</font></span> |
- | #include <conbtdialogs-dbus.h> | + | |
- | #include <dbus/dbus.h> | + | <span>'''<span><font color="#0000FF">return</font></span>'''</span> TRUE<span><font color="#990000"><nowiki>;</nowiki></font></span> |
- | #include <dbus/dbus-glib.h> | + | <span><font color="#FF0000">}</font></span> |
- | + | ||
- | DBusGConnection *connection = NULL; | + | <span>'''<span><font color="#0000FF">static</font></span>'''</span> gboolean <span>'''<span><font color="#000000">uninitialize</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#009900">void</font></span><span><font color="#990000">)</font></span> |
- | GMainLoop *mainloop = NULL; | + | <span><font color="#FF0000">{</font></span> |
- | + | <span>''<span><font color="#9A1900">/* Quit main loop and unref it */</font></span>''</span> | |
- | static gboolean initialize(void) | + | <span>'''<span><font color="#0000FF">if</font></span>'''</span> <span><font color="#990000">(</font></span>mainloop <span><font color="#990000"><nowiki>!=</nowiki></font></span> NULL<span><font color="#990000">)</font></span> |
- | { | + | <span><font color="#FF0000">{</font></span> |
- | + | <span>'''<span><font color="#000000">g_main_loop_quit</font></span>'''</span><span><font color="#990000">(</font></span>mainloop<span><font color="#990000">);</font></span> | |
- | + | <span>'''<span><font color="#000000">g_main_loop_unref</font></span>'''</span><span><font color="#990000">(</font></span>mainloop<span><font color="#990000">);</font></span> | |
- | + | <span><font color="#FF0000">}</font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#0000FF">return</font></span>'''</span> TRUE<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | <span><font color="#FF0000">}</font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#0000FF">static</font></span>'''</span> DBusHandlerResult <span>'''<span><font color="#000000">file_sent_signal</font></span>'''</span> <span><font color="#990000">(</font></span> DBusConnection <span><font color="#990000"><nowiki>*</nowiki></font></span>connection<span><font color="#990000">,</font></span> | |
- | + | DBusMessage <span><font color="#990000"><nowiki>*</nowiki></font></span>message<span><font color="#990000">,</font></span> | |
- | + | <span><font color="#009900">void</font></span> <span><font color="#990000"><nowiki>*</nowiki></font></span>data <span><font color="#990000">)</font></span> | |
- | + | <span><font color="#FF0000">{</font></span> | |
- | + | gboolean success <span><font color="#990000"><nowiki>=</nowiki></font></span> FALSE<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | ||
- | + | <span>''<span><font color="#9A1900">/* check signal */</font></span>''</span> | |
- | + | <span>'''<span><font color="#0000FF">if</font></span>'''</span> <span><font color="#990000">(!</font></span><span>'''<span><font color="#000000">dbus_message_is_signal</font></span>'''</span><span><font color="#990000">(</font></span>message<span><font color="#990000">,</font></span> | |
- | + | CONBTDIALOGS_DBUS_INTERFACE<span><font color="#990000">,</font></span> | |
- | + | CONBTDIALOGS_SEND_FILE_SIG<span><font color="#990000">))</font></span> | |
- | + | <span>'''<span><font color="#0000FF">return</font></span>'''</span> DBUS_HANDLER_RESULT_NOT_YET_HANDLED<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | ||
- | } | + | <span>''<span><font color="#9A1900">/* get args */</font></span>''</span> |
- | + | <span>'''<span><font color="#0000FF">if</font></span>'''</span> <span><font color="#990000">(</font></span> <span><font color="#990000"><nowiki>!</nowiki></font></span><span>'''<span><font color="#000000">dbus_message_get_args</font></span>'''</span> <span><font color="#990000">(</font></span> message<span><font color="#990000">,</font></span> NULL<span><font color="#990000">,</font></span> | |
- | static gboolean uninitialize(void) | + | DBUS_TYPE_BOOLEAN<span><font color="#990000">,</font></span> <span><font color="#990000">&</font></span>success<span><font color="#990000">,</font></span> |
- | { | + | DBUS_TYPE_INVALID <span><font color="#990000">)</font></span> <span><font color="#990000">)</font></span> |
- | + | <span>'''<span><font color="#0000FF">return</font></span>'''</span> DBUS_HANDLER_RESULT_NOT_YET_HANDLED<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | ||
- | + | <span>''<span><font color="#9A1900">/* print if file sending was success or failure */</font></span>''</span> | |
- | + | <span>'''<span><font color="#000000">g_print</font></span>'''</span> <span><font color="#990000">(</font></span> <span><font color="#FF0000">"File sending was a "</font></span> <span><font color="#990000">);</font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#0000FF">if</font></span>'''</span> <span><font color="#990000">(</font></span>success<span><font color="#990000">)</font></span> <span>'''<span><font color="#000000">g_print</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#FF0000">"success</font></span><span><font color="#CC33CC">\n</font></span><span><font color="#FF0000">"</font></span><span><font color="#990000">);</font></span> <span>'''<span><font color="#0000FF">else</font></span>'''</span> <span>'''<span><font color="#000000">g_print</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#FF0000">"failure</font></span><span><font color="#CC33CC">\n</font></span><span><font color="#FF0000">"</font></span><span><font color="#990000">);</font></span> | |
- | + | <span>'''<span><font color="#000000">dbus_connection_close</font></span>'''</span><span><font color="#990000">(</font></span>connection<span><font color="#990000">);</font></span> | |
- | + | <span>'''<span><font color="#000000">uninitialize</font></span>'''</span><span><font color="#990000">();</font></span> | |
- | } | + | |
- | + | <span>'''<span><font color="#0000FF">return</font></span>'''</span> DBUS_HANDLER_RESULT_HANDLED<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | static DBusHandlerResult file_sent_signal ( DBusConnection *connection, | + | <span><font color="#FF0000">}</font></span> |
- | + | ||
- | + | gint <span>'''<span><font color="#000000">main</font></span>'''</span><span><font color="#990000">(</font></span>gint argc<span><font color="#990000">,</font></span> gchar <span><font color="#990000"><nowiki>**</nowiki></font></span>argv<span><font color="#990000">)</font></span> | |
- | { | + | <span><font color="#FF0000">{</font></span> |
- | + | GError <span><font color="#990000"><nowiki>*</nowiki></font></span>error <span><font color="#990000"><nowiki>=</nowiki></font></span> NULL<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | gchar <span><font color="#990000"><nowiki>**</nowiki></font></span>files <span><font color="#990000"><nowiki>=</nowiki></font></span> NULL<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | gint idx <span><font color="#990000"><nowiki>=</nowiki></font></span> <span><font color="#993399">0</font></span><span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | DBusGProxy <span><font color="#990000"><nowiki>*</nowiki></font></span>proxy<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | DBusConnection <span><font color="#990000"><nowiki>*</nowiki></font></span>sys_conn<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | gchar <span><font color="#990000"><nowiki>*</nowiki></font></span>filter_string <span><font color="#990000"><nowiki>=</nowiki></font></span> NULL<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#0000FF">if</font></span>'''</span> <span><font color="#990000">(</font></span>argc <span><font color="#990000"><</font></span> <span><font color="#993399">2</font></span><span><font color="#990000">)</font></span> <span>'''<span><font color="#0000FF">return</font></span>'''</span> <span><font color="#993399">1</font></span><span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#0000FF">if</font></span>'''</span> <span><font color="#990000">(</font></span><span>'''<span><font color="#000000">initialize</font></span>'''</span><span><font color="#990000">()</font></span> <span><font color="#990000"><nowiki>==</nowiki></font></span> FALSE<span><font color="#990000">)</font></span> <span><font color="#FF0000">{</font></span> | |
- | + | <span>'''<span><font color="#000000">uninitialize</font></span>'''</span><span><font color="#990000">();</font></span> | |
- | + | <span>'''<span><font color="#0000FF">return</font></span>'''</span> <span><font color="#993399">1</font></span><span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | <span><font color="#FF0000">}</font></span> | |
- | + | ||
- | + | <span>''<span><font color="#9A1900">/* Copy urls to GLib compatible char array */</font></span>''</span> | |
- | + | files <span><font color="#990000"><nowiki>=</nowiki></font></span> <span>'''<span><font color="#000000">g_new0</font></span>'''</span><span><font color="#990000">(</font></span>gchar<span><font color="#990000"><nowiki>*,</nowiki></font></span> argc<span><font color="#990000">);</font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#0000FF">for</font></span>'''</span> <span><font color="#990000">(</font></span>idx <span><font color="#990000"><nowiki>=</nowiki></font></span> <span><font color="#993399">1</font></span><span><font color="#990000"><nowiki>;</nowiki></font></span> idx <span><font color="#990000"><</font></span> argc<span><font color="#990000"><nowiki>;</nowiki></font></span> idx<span><font color="#990000">++)</font></span> | |
- | + | files<span><font color="#990000">[</font></span>idx<span><font color="#990000">-</font></span><span><font color="#993399">1</font></span><span><font color="#990000">]</font></span> <span><font color="#990000"><nowiki>=</nowiki></font></span> <span>'''<span><font color="#000000">g_strdup</font></span>'''</span><span><font color="#990000">(</font></span>argv<span><font color="#990000">[</font></span>idx<span><font color="#990000">]);</font></span> | |
- | + | ||
- | + | files<span><font color="#990000">[</font></span>argc<span><font color="#990000">-</font></span><span><font color="#993399">1</font></span><span><font color="#990000">]</font></span> <span><font color="#990000"><nowiki>=</nowiki></font></span> NULL<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | ||
- | } | + | <span>''<span><font color="#9A1900">/* Open connection for btdialogs service */</font></span>''</span> |
- | + | proxy <span><font color="#990000"><nowiki>=</nowiki></font></span> <span>'''<span><font color="#000000">dbus_g_proxy_new_for_name</font></span>'''</span><span><font color="#990000">(</font></span>connection<span><font color="#990000">,</font></span> | |
- | gint main(gint argc, gchar **argv) | + | CONBTDIALOGS_DBUS_SERVICE<span><font color="#990000">,</font></span> |
- | { | + | CONBTDIALOGS_DBUS_PATH<span><font color="#990000">,</font></span> |
- | + | CONBTDIALOGS_DBUS_INTERFACE<span><font color="#990000">);</font></span> | |
- | + | ||
- | + | <span>''<span><font color="#9A1900">/* Send send file request to btdialogs service */</font></span>''</span> | |
- | + | <span>'''<span><font color="#0000FF">if</font></span>'''</span> <span><font color="#990000">(!</font></span><span>'''<span><font color="#000000">dbus_g_proxy_call</font></span>'''</span><span><font color="#990000">(</font></span>proxy<span><font color="#990000">,</font></span> CONBTDIALOGS_SEND_FILE_REQ<span><font color="#990000">,</font></span> | |
- | + | <span><font color="#990000">&</font></span>error<span><font color="#990000">,</font></span> | |
- | + | G_TYPE_STRV<span><font color="#990000">,</font></span> files<span><font color="#990000">,</font></span> G_TYPE_INVALID<span><font color="#990000">,</font></span> | |
- | + | G_TYPE_INVALID<span><font color="#990000">))</font></span> | |
- | + | <span><font color="#FF0000">{</font></span> | |
- | + | <span>'''<span><font color="#000000">g_print</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#FF0000">"Error: %s</font></span><span><font color="#CC33CC">\n</font></span><span><font color="#FF0000">"</font></span><span><font color="#990000">,</font></span> error<span><font color="#990000">-></font></span>message<span><font color="#990000">);</font></span> | |
- | + | <span>'''<span><font color="#000000">g_clear_error</font></span>'''</span><span><font color="#990000">(&</font></span>error<span><font color="#990000">);</font></span> | |
- | + | <span>'''<span><font color="#000000">g_strfreev</font></span>'''</span> <span><font color="#990000">(</font></span>files<span><font color="#990000">);</font></span> | |
- | + | <span>'''<span><font color="#000000">g_object_unref</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>proxy<span><font color="#990000">));</font></span> | |
- | + | <span>'''<span><font color="#000000">uninitialize</font></span>'''</span><span><font color="#990000">();</font></span> | |
- | + | <span>'''<span><font color="#0000FF">return</font></span>'''</span> <span><font color="#993399">1</font></span><span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | <span><font color="#FF0000">}</font></span> | |
- | + | <span>'''<span><font color="#000000">g_strfreev</font></span>'''</span> <span><font color="#990000">(</font></span>files<span><font color="#990000">);</font></span> | |
- | + | files <span><font color="#990000"><nowiki>=</nowiki></font></span> NULL<span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#000000">g_object_unref</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>proxy<span><font color="#990000">));</font></span> | |
- | + | ||
- | + | <span>''<span><font color="#9A1900">/* Now wait for file sent signal, use low level bindings as glib </font></span>''</span> | |
- | + | <span>''<span><font color="#9A1900"> bindings require signal marshaller registered */</font></span>''</span> | |
- | + | sys_conn <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> | |
- | + | <span>'''<span><font color="#000000">g_assert</font></span>'''</span><span><font color="#990000">(</font></span><span>'''<span><font color="#000000">dbus_connection_add_filter</font></span>'''</span><span><font color="#990000">(</font></span>sys_conn<span><font color="#990000">,</font></span> | |
- | + | file_sent_signal<span><font color="#990000">,</font></span> | |
- | + | NULL<span><font color="#990000">,</font></span> | |
- | + | NULL <span><font color="#990000">));</font></span> | |
- | + | filter_string <span><font color="#990000"><nowiki>=</nowiki></font></span> | |
- | + | <span>'''<span><font color="#000000">g_strdup_printf</font></span>'''</span> <span><font color="#990000">(</font></span><span><font color="#FF0000">"type='signal',interface='%s'"</font></span><span><font color="#990000">,</font></span> CONBTDIALOGS_DBUS_INTERFACE<span><font color="#990000">);</font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#000000">dbus_bus_add_match</font></span>'''</span><span><font color="#990000">(</font></span>sys_conn<span><font color="#990000">,</font></span> filter_string<span><font color="#990000">,</font></span> NULL<span><font color="#990000">);</font></span> | |
- | + | <span>'''<span><font color="#000000">dbus_connection_unref</font></span>'''</span><span><font color="#990000">(</font></span>sys_conn<span><font color="#990000">);</font></span> | |
- | + | ||
- | + | <span>''<span><font color="#9A1900">/* Run mainloop */</font></span>''</span> | |
- | + | <span>'''<span><font color="#000000">g_main_loop_run</font></span>'''</span><span><font color="#990000">(</font></span>mainloop<span><font color="#990000">);</font></span> | |
- | + | ||
- | + | <span>'''<span><font color="#0000FF">return</font></span>'''</span> <span><font color="#993399">0</font></span><span><font color="#990000"><nowiki>;</nowiki></font></span> | |
- | + | <span><font color="#FF0000">}</font></span></tt> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | } | + | |
- | </ | + | |
[[Category:Development]] | [[Category:Development]] | ||
[[Category:Documentation]] | [[Category:Documentation]] | ||
[[Category:Fremantle]] | [[Category:Fremantle]] |
Learn more about Contributing to the wiki.