aboutsummaryrefslogtreecommitdiff
path: root/src/sound-service.c
diff options
context:
space:
mode:
authorConor Curran <conor.curran@canonical.com>2011-08-10 17:16:04 +0100
committerConor Curran <conor.curran@canonical.com>2011-08-10 17:16:04 +0100
commit161c8c52715995d2c9e0b9cb04236aaa078c4e8f (patch)
treee739b873d9a333bf4e93a19f01fd536fc6a1f55a /src/sound-service.c
parent7cb21f1a155f52646030e987ab60503b02a04496 (diff)
parent82a8f86a7088a2e144c89373174c8e03a597f277 (diff)
downloadayatana-indicator-sound-161c8c52715995d2c9e0b9cb04236aaa078c4e8f.tar.gz
ayatana-indicator-sound-161c8c52715995d2c9e0b9cb04236aaa078c4e8f.tar.bz2
ayatana-indicator-sound-161c8c52715995d2c9e0b9cb04236aaa078c4e8f.zip
player and track specific support is in
Diffstat (limited to 'src/sound-service.c')
-rw-r--r--src/sound-service.c49
1 files changed, 40 insertions, 9 deletions
diff --git a/src/sound-service.c b/src/sound-service.c
index a368081..0170f81 100644
--- a/src/sound-service.c
+++ b/src/sound-service.c
@@ -17,19 +17,18 @@ You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <locale.h>
+
#include "sound-service.h"
#include "pulseaudio-mgr.h"
#include "sound-service-dbus.h"
#include "music-player-bridge.h"
-#include <locale.h>
-
static GMainLoop *mainloop = NULL;
-
-/**********************************************************************************************************************/
+static MusicPlayerBridge* player_bridge = NULL;
+/***********************************************************************************************************/
// Init and exit functions
/**********************************************************************************************************************/
-
/**
service_shutdown:
When the service interface starts to shutdown, we
@@ -55,6 +54,32 @@ get_greeter_mode (void)
return (g_strcmp0(var, "1") == 0);
}
+void
+on_player_specific_item_requested (SoundServiceDbus* sound_service,
+ const gchar* desktop_id,
+ const gchar* player_object_path,
+ gpointer userdata)
+{
+ if (player_bridge != NULL){
+ music_player_bridge_enable_player_specific_items_for_client (player_bridge,
+ desktop_id,
+ player_object_path);
+ }
+}
+
+void
+on_track_specific_item_requested (SoundServiceDbus* sound_service,
+ const gchar* desktop_id,
+ const gchar* player_object_path,
+ gpointer userdata)
+{
+ if (player_bridge != NULL){
+ music_player_bridge_enable_track_specific_items_for_client (player_bridge,
+ desktop_id,
+ player_object_path);
+ }
+}
+
/**
main:
**/
@@ -68,20 +93,26 @@ main (int argc, char ** argv)
bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
setlocale (LC_ALL, "");
- IndicatorService *service = indicator_service_new_version(INDICATOR_SOUND_DBUS_NAME,
- INDICATOR_SOUND_DBUS_VERSION);
+ IndicatorService *service = indicator_service_new_version (INDICATOR_SOUND_DBUS_NAME,
+ INDICATOR_SOUND_DBUS_VERSION);
g_signal_connect(G_OBJECT(service),
INDICATOR_SERVICE_SIGNAL_SHUTDOWN,
G_CALLBACK(service_shutdown), NULL);
SoundServiceDbus* sound_service = g_object_new(SOUND_SERVICE_DBUS_TYPE, NULL);
+ g_signal_connect(G_OBJECT(sound_service),
+ "track-specific-item-requested",
+ G_CALLBACK(on_track_specific_item_requested), NULL);
+ g_signal_connect(G_OBJECT(sound_service),
+ "player-specific-item-requested",
+ G_CALLBACK(on_player_specific_item_requested), NULL);
greeter_mode = get_greeter_mode();
DbusmenuMenuitem* root_menuitem = sound_service_dbus_create_root_item(sound_service, greeter_mode);
if (!greeter_mode) {
- MusicPlayerBridge* server = music_player_bridge_new();
- music_player_bridge_set_root_menu_item(server, root_menuitem);
+ player_bridge = music_player_bridge_new();
+ music_player_bridge_set_root_menu_item(player_bridge, root_menuitem);
}
// Run the loop