[maemo-developers] [maemo-developers] using gwconnect api
From: kurt ak kurt at notenuf.netDate: Wed Jun 28 15:06:40 EEST 2006
- Previous message: [maemo-developers] IT2006 beta, bluetooth keyboard - automatic IM switch no longer works
- Next message: [maemo-developers] Modifying the X Server
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello, I'm just trying to get a list of bluetooth devices by using the gwconnect api (http://maemo.org/platform/docs/osso-gwconnect.html) with dbus. However, I'm a still a bit new to dbus, and so far I've been able to issue the "start_search" method from com.nokia.btsearch.request, though it's not clear to me how I set up some kind of callback for the com.nokia.btsearch.signal interface and receive the "dev_found" signals. I've tried one approach using dbus-glib (attached below) for setting up the callback, and I didn't find how to do so with libosso, so since this is the maemo list, maybe one of you could shed some light on how to set up listening for signals coming from com.nokia.btsearch.signal using libosso?? I also attached the majority of my testing main() function, using dbus-glib, and that didn't seem to set up a callback correctly either (or maybe start_search wasn't even handled properly) because i never received any dev_found signals. I made sure there are some BT devices around me that should be found, b/c doing a "hcitool scan" returns a few. Any hints?? Thanks much for your time, kurt int main( int argc, char **argv ) { gboolean ret; GMainLoop *loop; DBusGConnection *bus; GError *error = NULL; DBusGProxy *proxy_request, *proxy_signal; g_type_init(); loop = g_main_loop_new(NULL, FALSE); if( !( bus = dbus_g_bus_get( DBUS_BUS_SYSTEM, &error ) ) ) { fprintf(stderr, "Unable to connect to the system D-BUS: %s\n",error->message); return 1; } // invoke bt search method call over dbus proxy_request = dbus_g_proxy_new_for_name(bus, "com.nokia.btsearch", "/com/nokia/btsearch/request", "com.nokia.btsearch.request" ); if( !proxy_request ) { printf("Error: Couldn't get proxy_request. %s\n", error->message); return 1; } proxy_signal = dbus_g_proxy_new_for_name(bus, "com.nokia.btsearch", "/com/nokia/btsearch/signal", "com.nokia.btsearch.signal" ); if( !proxy_signal ) { printf("Error: Couldn't get proxy_signal. %s\n", error->message); g_error_free(error); return 1; } // call bt search method error = NULL; /* proxy, method, error, send type, send var, ... , receive type, rec. var ... */ if( !dbus_g_proxy_call( proxy_request, "start_search", &error, G_TYPE_INVALID, G_TYPE_INVALID ) ) { printf("Error calling dbus start_search method: %s\n",error->message); g_error_free(error); return 1; } else { printf("Successfully called dbus method start_search. Setting up listener now..\n"); } dbus_g_object_register_marshaller ( g_cclosure_user_marshal_VOID__STRING_STRING_POINTER_UCHAR_UINT, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_UCHAR, G_TYPE_UINT, G_TYPE_INVALID ); dbus_g_proxy_add_signal( proxy_signal, "dev_found", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_UCHAR, G_TYPE_UINT, G_TYPE_INVALID ); dbus_g_proxy_connect_signal( proxy_signal, "dev_found", G_CALLBACK(signal_handler), NULL, NULL ); g_main_loop_run (loop); return 0; }
- Previous message: [maemo-developers] IT2006 beta, bluetooth keyboard - automatic IM switch no longer works
- Next message: [maemo-developers] Modifying the X Server
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]