endif
if USE_MPRIS
-shairport_sync_SOURCES += mpris-service.c mpris-interface.c mpris-player-interface.c
-BUILT_SOURCES += mpris-interface.h mpris-interface.c mpris-player-interface.h mpris-player-interface.c
+shairport_sync_SOURCES += mpris-service.c mpris-interface.c
+BUILT_SOURCES += mpris-interface.h mpris-interface.c
# We don't want to install this header
noinst_HEADERS += $(BUILT_SOURCES)
# Correctly clean the generated headers, but keep the xml description
mpris-interface.h mpris-interface.c: org.mpris.MediaPlayer2.xml
gdbus-codegen --interface-prefix org.mpris --generate-c-code mpris-interface org.mpris.MediaPlayer2.xml
-
-mpris-player-interface.h mpris-player-interface.c: org.mpris.MediaPlayer2.Player.xml
- gdbus-codegen --interface-prefix org.mpris --generate-c-code mpris-player-interface org.mpris.MediaPlayer2.Player.xml
endif
noinst_PROGRAMS =
if USE_MPRIS_CLIENT
#Make it, but don't install it anywhere
noinst_PROGRAMS += shairport-sync-mpris-test-client
-shairport_sync_mpris_test_client_SOURCES = mpris-interface.c mpris-interface.h mpris-player-interface.c mpris-player-interface.h shairport-sync-mpris-test-client.c
+shairport_sync_mpris_test_client_SOURCES = mpris-interface.c mpris-interface.h shairport-sync-mpris-test-client.c
endif
install-exec-hook:
#define MPRIS_SERVICE_H
#include "mpris-interface.h"
-#include "mpris-player-interface.h"
MediaPlayer2 *mprisPlayerSkeleton;
MediaPlayer2Player *mprisPlayerPlayerSkeleton;
+++ /dev/null
-<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
-"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
-
-<node>
- <interface name='org.mpris.MediaPlayer2.Player'>
- <method name='Next'/>
- <method name='Previous'/>
- <method name='Pause'/>
- <method name='PlayPause'/>
- <method name='Stop'/>
- <method name='Play'/>
- <method name='Seek'>
- <arg direction='in' name='Offset' type='x'/>
- </method>
- <method name='SetPosition'>
- <arg direction='in' name='TrackId' type='o'/>
- <arg direction='in' name='Position' type='x'/>
- </method>
- <method name='OpenUri'>
- <arg direction='in' name='Uri' type='s'/>
- </method>
- <signal name='Seeked'>
- <arg name='Position' type='x'/>
- </signal>
- <property name='PlaybackStatus' type='s' access='read'/>
- <property name='LoopStatus' type='s' access='readwrite'/>
- <property name='Rate' type='d' access='readwrite'/>
- <property name='Shuffle' type='b' access='readwrite'/>
- <property name='Metadata' type='a{sv}' access='read'>
- <annotation name="org.qtproject.QtDBus.QtTypeName" value="QVariantMap"/>
- </property>
- <property name='Volume' type='d' access='read'/>
- <property name='Position' type='x' access='read'/>
- <property name='MinimumRate' type='d' access='read'/>
- <property name='MaximumRate' type='d' access='read'/>
- <property name='CanGoNext' type='b' access='read'/>
- <property name='CanGoPrevious' type='b' access='read'/>
- <property name='CanPlay' type='b' access='read'/>
- <property name='CanPause' type='b' access='read'/>
- <property name='CanSeek' type='b' access='read'/>
- <property name='CanControl' type='b' access='read'/>
- </interface>
-</node>
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
-
<node>
- <interface name="org.mpris.MediaPlayer2">
- <method name="Raise"/>
-
- <method name="Quit"/>
-
- <property name="CanQuit" type="b" access="read"/>
-
- <property name="CanRaise" type="b" access="read"/>
-
- <property name="HasTrackList" type="b" access="read"/>
-
- <property name="Identity" type="s" access="read"/>
-
- <property name="DesktopEntry" type="s" access="read"/>
-
- <property name="SupportedUriSchemes" type="as" access="read"/>
-
- <property name="SupportedMimeTypes" type="as" access="read"/>
- </interface>
+ <interface name="org.mpris.MediaPlayer2">
+ <method name="Raise"/>
+ <method name="Quit"/>
+ <property name="CanQuit" type="b" access="read"/>
+ <property name="CanRaise" type="b" access="read"/>
+ <property name="HasTrackList" type="b" access="read"/>
+ <property name="Identity" type="s" access="read"/>
+ <property name="DesktopEntry" type="s" access="read"/>
+ <property name="SupportedUriSchemes" type="as" access="read"/>
+ <property name="SupportedMimeTypes" type="as" access="read"/>
+ </interface>
+ <interface name='org.mpris.MediaPlayer2.Player'>
+ <method name='Next'/>
+ <method name='Previous'/>
+ <method name='Pause'/>
+ <method name='PlayPause'/>
+ <method name='Stop'/>
+ <method name='Play'/>
+ <method name='Seek'>
+ <arg direction='in' name='Offset' type='x'/>
+ </method>
+ <method name='SetPosition'>
+ <arg direction='in' name='TrackId' type='o'/>
+ <arg direction='in' name='Position' type='x'/>
+ </method>
+ <method name='OpenUri'>
+ <arg direction='in' name='Uri' type='s'/>
+ </method>
+ <signal name='Seeked'>
+ <arg name='Position' type='x'/>
+ </signal>
+ <property name='PlaybackStatus' type='s' access='read'/>
+ <property name='LoopStatus' type='s' access='readwrite'/>
+ <property name='Rate' type='d' access='readwrite'/>
+ <property name='Shuffle' type='b' access='readwrite'/>
+ <property name='Metadata' type='a{sv}' access='read'>
+ <annotation name="org.qtproject.QtDBus.QtTypeName" value="QVariantMap"/>
+ </property>
+ <property name='Volume' type='d' access='read'/>
+ <property name='Position' type='x' access='read'/>
+ <property name='MinimumRate' type='d' access='read'/>
+ <property name='MaximumRate' type='d' access='read'/>
+ <property name='CanGoNext' type='b' access='read'/>
+ <property name='CanGoPrevious' type='b' access='read'/>
+ <property name='CanPlay' type='b' access='read'/>
+ <property name='CanPause' type='b' access='read'/>
+ <property name='CanSeek' type='b' access='read'/>
+ <property name='CanControl' type='b' access='read'/>
+ </interface>
</node>
#include "mpris-interface.h"
-#include "mpris-player-interface.h"
#include <popt.h>
#include <stdio.h>
#include <stdlib.h>
pthread_create(&dbus_thread, NULL, &dbus_thread_func, NULL);
- MediaPlayer2Player *proxy;
+ GError *error1 = NULL;
+ MediaPlayer2 *proxy1 = media_player2_proxy_new_for_bus_sync(gbus_type_selected, G_DBUS_PROXY_FLAGS_NONE,
+ "org.mpris.MediaPlayer2.ShairportSync",
+ "/org/mpris/MediaPlayer2", NULL, &error1);
+ if (error1)
+ printf("Error proxying MediaPlayer2");
+ g_signal_connect(proxy1, "g-properties-changed", G_CALLBACK(on_properties_changed), NULL);
- GError *error = NULL;
- proxy = media_player2_player_proxy_new_for_bus_sync(gbus_type_selected, G_DBUS_PROXY_FLAGS_NONE,
+ GError *error2 = NULL;
+ MediaPlayer2Player *proxy2 = media_player2_player_proxy_new_for_bus_sync(gbus_type_selected, G_DBUS_PROXY_FLAGS_NONE,
"org.mpris.MediaPlayer2.ShairportSync",
- "/org/mpris/MediaPlayer2", NULL, &error);
- g_signal_connect(proxy, "g-properties-changed", G_CALLBACK(on_properties_changed), NULL);
+ "/org/mpris/MediaPlayer2", NULL, &error2);
+ if (error2)
+ printf("Error proxying MediaPlayer2Player");
+ g_signal_connect(proxy2, "g-properties-changed", G_CALLBACK(on_properties_changed), NULL);
+
// g_main_loop_quit(loop);
pthread_join(dbus_thread, NULL);
printf("exiting program.\n");
- g_object_unref(proxy);
+ g_object_unref(proxy1);
+ g_object_unref(proxy2);
return 0;
}