[maemo-developers] Low Battery signal N800/N810
From: kumar lomash kumar.lomash at gmail.comDate: Mon May 5 08:21:05 EEST 2008
- Previous message: Low Battery signal N800/N810
- Next message: autoconf upgrade problem
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Thanks Kees, Actually I was looking for some API which could poll these messages for me inside my application so that I could attach it to my g_main loop and do other things in the same thread. Luckily for me I found the solution in the source code of ACMonitor. Here is what I did for battery: battery_info_get kind of registers the callback for battery signals, bme_message_handler is called everytime a signal is sent from com.nokia.bme Code: - #define BME_SIG_PATH "/com/nokia/bme/signal" #define BME_SIG_IFC "com.nokia.bme.signal" #define BME_REQ_PATH "/com/nokia/bme/request" #define BME_REQ_IFC "com.nokia.bme.request" void battery_info_get() { DBusMessage *db_msg; DBusConnection *db_conn; DBusError dberror; GMainLoop *loop; dbus_error_init(&dberror); prog_data.db_conn = db_conn = dbus_bus_get(DBUS_BUS_SYSTEM, &dberror); if(db_conn == NULL) { printf("Failed to open connection to system message bus: %s\n", dberror.message); dbus_error_free(&dberror); return; } dbus_bus_add_match(db_conn, "type='signal',path='"BME_SIG_PATH"',interface='"BME_SIG_IFC"'",NULL); dbus_connection_add_filter(db_conn, (DBusHandleMessageFunction)bme_message_handler, NULL, NULL); db_msg = dbus_message_new_signal(BME_REQ_PATH, BME_REQ_IFC, "status_info_req"); dbus_connection_send(db_conn, db_msg, NULL); dbus_connection_flush(db_conn); dbus_message_unref(db_msg); dbus_connection_setup_with_g_main(db_conn, NULL); } static DBusHandlerResult bme_message_handler(DBusConnection *_conn, DBusMessage *_msg, gpointer *ctx) { if(dbus_message_get_type(_msg) == DBUS_MESSAGE_TYPE_SIGNAL) { const char *member; member = dbus_message_get_member(_msg); if(!strcmp(member, "battery_low")) { prog_data.battery_low = TRUE; /* Do something */ } else if(!strcmp(member, "charger_charging_on")) { prog_data.charging = TRUE; } else if(!strcmp(member, "charger_charging_off")) { prog_data.charging = FALSE; } printf("dbus-printed %s\n", member); } return DBUS_HANDLER_RESULT_HANDLED; } On Mon, May 5, 2008 at 12:56 AM, Kees Jongenburger < kees.jongenburger at gmail.com> wrote: > Hi > > I am fairly new to dbus but if you run dbus-monitor --system from a > console > and hover over the battery monitor applet you will see what calls are used > to > get this information. > > Nokia-N810-50-2:~# dbus-monitor --system > signal sender=org.freedesktop.DBus -> dest=:1.67 > path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; > member=NameAcquired > string ":1.67" > signal sender=:1.20 -> dest=(null destination) > path=/com/nokia/bme/request; interface=com.nokia.bme.request; > member=timeleft_info_req > signal sender=:1.9 -> dest=(null destination) > path=/com/nokia/bme/signal; interface=com.nokia.bme.signal; > member=battery_timeleft > uint32 5280 > uint32 120 > > > Hope this helps greetings > > > On Mon, Apr 28, 2008 at 8:26 AM, kumar lomash <kumar.lomash at gmail.com> > wrote: > > Hi, > > > > I have been trying to get a signal when battery status (time left, etc) > > changes. I understand that I will have to use lib osso APIs for this, > but I > > am unable to find a service prvider (e.g. com.nokia.battery ???) to > connect > > to. > > Is this documented somewhere? I could not find anything on this. > > > > Can someone please send details of which service/interface to connect > to? > > > > Thanks a lot, > > Lomash > > > > _______________________________________________ > > maemo-developers mailing list > > maemo-developers at maemo.org > > https://lists.maemo.org/mailman/listinfo/maemo-developers > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.maemo.org/pipermail/maemo-developers/attachments/20080505/82a72088/attachment.htm
- Previous message: Low Battery signal N800/N810
- Next message: autoconf upgrade problem
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]