Thanks Kees,<br><br>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. <br>
Here is what I did for battery:<br>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<br>Code: -<br>#define BME_SIG_PATH &quot;/com/nokia/bme/signal&quot;<br>
#define BME_SIG_IFC&nbsp; &quot;com.nokia.bme.signal&quot;<br>#define BME_REQ_PATH &quot;/com/nokia/bme/request&quot;<br>#define BME_REQ_IFC&nbsp; &quot;com.nokia.bme.request&quot;<br>void battery_info_get()<br>{<br>&nbsp; &nbsp;&nbsp;&nbsp; DBusMessage *db_msg;<br>
&nbsp;&nbsp;&nbsp; DBusConnection *db_conn;<br>&nbsp;&nbsp;&nbsp; DBusError&nbsp; dberror;<br>&nbsp;&nbsp;&nbsp; GMainLoop *loop;<br><br>&nbsp;&nbsp;&nbsp; dbus_error_init(&amp;dberror);<br>&nbsp;&nbsp;&nbsp; prog_data.db_conn = db_conn = dbus_bus_get(DBUS_BUS_SYSTEM, &amp;dberror);<br>&nbsp;&nbsp;&nbsp; if(db_conn == NULL)<br>
&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; printf(&quot;Failed to open connection to system message bus: %s\n&quot;, dberror.message);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; dbus_error_free(&amp;dberror);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; dbus_bus_add_match(db_conn, &quot;type=&#39;signal&#39;,path=&#39;&quot;BME_SIG_PATH&quot;&#39;,interface=&#39;&quot;BME_SIG_IFC&quot;&#39;&quot;,NULL);<br>
&nbsp;&nbsp;&nbsp; dbus_connection_add_filter(db_conn, (DBusHandleMessageFunction)bme_message_handler, NULL, NULL);<br>&nbsp;&nbsp;&nbsp; db_msg = dbus_message_new_signal(BME_REQ_PATH, BME_REQ_IFC, &quot;status_info_req&quot;);<br>&nbsp;&nbsp;&nbsp; dbus_connection_send(db_conn, db_msg, NULL);<br>
&nbsp;&nbsp;&nbsp; dbus_connection_flush(db_conn);<br>&nbsp;&nbsp;&nbsp; dbus_message_unref(db_msg);<br>&nbsp;&nbsp;&nbsp; dbus_connection_setup_with_g_main(db_conn, NULL);&nbsp;&nbsp;&nbsp;&nbsp; <br>}<br><br>static DBusHandlerResult bme_message_handler(DBusConnection *_conn, DBusMessage *_msg, gpointer *ctx)<br>
{<br>&nbsp;&nbsp;&nbsp; if(dbus_message_get_type(_msg) == DBUS_MESSAGE_TYPE_SIGNAL)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; const char *member;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; member = dbus_message_get_member(_msg);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(!strcmp(member, &quot;battery_low&quot;))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; prog_data.battery_low = TRUE;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* Do something */<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else if(!strcmp(member, &quot;charger_charging_on&quot;))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; prog_data.charging = TRUE;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else if(!strcmp(member, &quot;charger_charging_off&quot;))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; prog_data.charging = FALSE;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; printf(&quot;dbus-printed %s\n&quot;, member);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; return DBUS_HANDLER_RESULT_HANDLED;<br>
}<br><div class="gmail_quote">On Mon, May 5, 2008 at 12:56 AM, Kees Jongenburger &lt;<a href="mailto:kees.jongenburger@gmail.com">kees.jongenburger@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi<br>
<br>
I am fairly new to dbus but if you run dbus-monitor --system from a console<br>
and hover over the battery monitor applet you will see what calls are used to<br>
get this information.<br>
<br>
Nokia-N810-50-2:~# dbus-monitor --system<br>
signal sender=org.freedesktop.DBus -&gt; dest=:1.67<br>
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;<br>
member=NameAcquired<br>
 &nbsp; string &quot;:1.67&quot;<br>
signal sender=:1.20 -&gt; dest=(null destination)<br>
path=/com/nokia/bme/request; interface=com.nokia.bme.request;<br>
member=timeleft_info_req<br>
signal sender=:1.9 -&gt; dest=(null destination)<br>
path=/com/nokia/bme/signal; interface=com.nokia.bme.signal;<br>
member=battery_timeleft<br>
 &nbsp; uint32 5280<br>
 &nbsp; uint32 120<br>
<br>
<br>
Hope this helps greetings<br>
<div><div></div><div class="Wj3C7c"><br>
<br>
On Mon, Apr 28, 2008 at 8:26 AM, kumar lomash &lt;<a href="mailto:kumar.lomash@gmail.com">kumar.lomash@gmail.com</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; I have been trying to get a signal when battery status (time left, etc)<br>
&gt; changes. I understand that I will have to use lib osso APIs for this, but I<br>
&gt; am unable to find a service prvider (e.g. com.nokia.battery ???) to connect<br>
&gt; to.<br>
&gt; &nbsp;Is this documented somewhere? I could not find anything on this.<br>
&gt;<br>
&gt; Can someone please send details of which service/interface to connect to?<br>
&gt;<br>
&gt; Thanks a lot,<br>
&gt; Lomash<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; &nbsp;maemo-developers mailing list<br>
&gt; &nbsp;<a href="mailto:maemo-developers@maemo.org">maemo-developers@maemo.org</a><br>
&gt; &nbsp;<a href="https://lists.maemo.org/mailman/listinfo/maemo-developers" target="_blank">https://lists.maemo.org/mailman/listinfo/maemo-developers</a><br>
&gt;<br>
&gt;<br>
</blockquote></div><br>