+headphoned (1.3) diablo; urgency=low
+
+ * Add support for pausing Panucci
+
+ -- Thomas Perl <thp@thpinfo.com> Thu, 19 Nov 2009 23:42:38 +0100
+
headphoned (1.2) diablo; urgency=low
* Fix a typo in the package description.
Section: user/multimedia
Priority: extra
Maintainer: Thomas Perl <thp@thpinfo.com>
-Build-Depends: debhelper (>= 5), libosso-dev, libgconf2-dev, libglib2.0-dev
+Build-Depends: debhelper (>= 5), libosso-dev, libgconf2-dev, libglib2.0-dev, libdbus-1-dev
Standards-Version: 3.7.2
Package: headphoned
connection state of headphones on the N800/N810. Whenever the
headphones are unplugged, headphoned will send a "pause" signal
to the mediaplayer to avoid "public transport situations".
+ .
+ Supported applications: Media Player and Panucci
XB-Maemo-Icon-26: iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAAXNSR0IArs4c
6QAAAMlQTFRFAAD4ra2t8/PzT09PSkpKtra28/Lyw8PD+fn5cnJy8vHx8O/v
7+7uyMjIoaGhZmZm4+Pj0NDQzc3NhYWFYmJipaWlXV1dr6+vk5OTuLi46unp
OBJS = src/headphoned.o
PROG = headphoned
-CFLAGS += `pkg-config --cflags glib-2.0 gconf-2.0 libosso` -Os -Wall
-LDFLAGS += `pkg-config --libs glib-2.0 gconf-2.0 libosso`
+CFLAGS += `pkg-config --cflags glib-2.0 gconf-2.0 libosso dbus-1` -Os -Wall
+LDFLAGS += `pkg-config --libs glib-2.0 gconf-2.0 libosso dbus-1`
DESTDIR ?=
PREFIX ?= /usr
#include <glib.h>
#include <gconf/gconf-client.h>
#include <libosso.h>
+#include <dbus/dbus.h>
#define STATE_FILE "/sys/devices/platform/gpio-switch/headphone/state"
#define STATE_CONNECTED_STR "connected"
#define MEDIA_SERVER_PATH "/com/nokia/osso_media_server"
#define MEDIA_SERVER_INTF "com.nokia.osso_media_server.music"
+#define PANUCCI_SRVC "org.panucci.panucciInterface"
+#define PANUCCI_PATH "/panucciInterface"
+#define PANUCCI_INTF "org.panucci.panucciInterface"
+
// Volume control is currently broken, as something is messing
// with the controls from outside this process in GConf..
//#define ENABLE_VOLUME_CONTROL
typedef struct {
GConfClient* client;
+ DBusConnection* session_bus;
osso_context_t* osso;
guint state;
gint volume[STATE_COUNT];
gconf_client_notify_add(this->client, GCONF_VOLUME_CONTROL,
on_volume_changed, this, NULL, NULL);
#endif
+
+ this->session_bus = dbus_bus_get(DBUS_BUS_SESSION, NULL);
this->initial = TRUE;
return this;
headphoned->state = STATE_DISCONNECTED;
#ifdef ENABLE_PAUSE_ON_DISCONNECT
if (headphoned->initial == FALSE) {
+ /* Nokia Media Player */
osso_rpc_run(headphoned->osso,
MEDIA_SERVER_SRVC,
MEDIA_SERVER_PATH,
"pause",
NULL,
DBUS_TYPE_INVALID);
+
+ /* Panucci */
+ if (dbus_bus_name_has_owner(headphoned->session_bus,
+ PANUCCI_SRVC,
+ NULL)) {
+ osso_rpc_run(headphoned->osso,
+ PANUCCI_SRVC,
+ PANUCCI_PATH,
+ PANUCCI_INTF,
+ "pause",
+ NULL,
+ DBUS_TYPE_INVALID);
+ }
}
#endif
}