From a67fff57b9a0c12ca90fc37905893891c99234b4 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Thu, 8 Aug 2013 16:43:39 -0500 Subject: add accessible-name property to the ng sound indicator --- src/service.vala | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/service.vala b/src/service.vala index 8fbd871..690fdce 100644 --- a/src/service.vala +++ b/src/service.vala @@ -125,8 +125,20 @@ public class IndicatorSound.Service { else icon = "audio-volume-high-panel"; - var root_action = this.actions.lookup ("root") as SimpleAction; - root_action.set_state (new Variant.parsed ("{ 'icon': %v }", serialize_themed_icon (icon))); + string accessible_name; + if (this.volume_control.mute) { + accessible_name = "Volume (muted)"; + } else { + int volume_int = (int)(volume * 100); + accessible_name = @"Volume ($volume_int%)"; + } + + var root_action = actions.lookup ("root") as SimpleAction; + var builder = new VariantBuilder (new VariantType ("a{sv}")); + builder.add ("{sv}", "accessible-desc", new Variant.string (accessible_name)); + builder.add ("{sv}", "icon", serialize_themed_icon (icon)); + builder.add ("{sv}", "visible", new Variant.boolean (true)); + root_action.set_state (builder.end()); } Action create_mute_action () { -- cgit v1.2.3 From 796a887cf88c1ad23ab06e89435ca1e04080aaee Mon Sep 17 00:00:00 2001 From: Pete Woods Date: Fri, 16 Aug 2013 04:13:41 +0100 Subject: Build using cmake --- src/CMakeLists.txt | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/Makefile.am | 37 --------------- src/service.vala | 3 -- src/sound-menu.vala | 3 ++ 4 files changed, 131 insertions(+), 40 deletions(-) create mode 100644 src/CMakeLists.txt delete mode 100644 src/Makefile.am (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..21931b9 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,128 @@ + +########################### +# Vala Generation +########################### + +set(HEADER_PATH "${CMAKE_CURRENT_BINARY_DIR}/indicator-sound-service.h") +set(SYMBOLS_PATH "${CMAKE_CURRENT_BINARY_DIR}/indicator-sound-service.def") + +vala_init(indicator-sound-service + PACKAGES + config + gio-2.0 + gio-unix-2.0 + libxml-2.0 + libpulse + libpulse-mainloop-glib + OPTIONS + --ccode + --thread + --vapidir=${CMAKE_SOURCE_DIR}/vapi/ + --vapidir=. + --target-glib=2.36 +) + +vala_add(indicator-sound-service + service.vala + DEPENDS + sound-menu + volume-control + media-player + media-player-list +) +vala_add(indicator-sound-service + main.vala + DEPENDS + service +) +vala_add(indicator-sound-service + volume-control.vala +) +vala_add(indicator-sound-service + media-player.vala + DEPENDS + mpris2-interfaces +) +vala_add(indicator-sound-service + media-player-list.vala + DEPENDS + media-player + mpris2-watcher +) +vala_add(indicator-sound-service + mpris2-interfaces.vala +) +vala_add(indicator-sound-service + mpris2-watcher.vala + DEPENDS + media-player + mpris2-interfaces + freedesktop-interfaces +) +vala_add(indicator-sound-service + freedesktop-interfaces.vala +) +vala_add(indicator-sound-service + sound-menu.vala + DEPENDS + media-player +) + +vala_finish(indicator-sound-service + SOURCES + project_VALA_SOURCES + OUTPUTS + project_VALA_C + GENERATE_HEADER + ${HEADER_PATH} + GENERATE_SYMBOLS + ${SYMBOLS_PATH} +) + +set_source_files_properties( + ${project_VALA_SOURCES} + PROPERTIES + HEADER_FILE_ONLY TRUE +) + +set( + INDICATOR_SOUND_SOURCES + ${project_VALA_SOURCES} + ${project_VALA_C} + ${SYMBOLS_PATH} +) + +########################### +# Executable +########################### + +add_definitions( + -w +) + +add_executable( + indicator-sound-service-bin + ${INDICATOR_SOUND_SOURCES} +) + +set_target_properties( + indicator-sound-service-bin + PROPERTIES + OUTPUT_NAME "indicator-sound-service" +) + +target_link_libraries( + indicator-sound-service-bin + ${PULSEAUDIO_LIBRARIES} + ${SOUNDSERVICE_LIBRARIES} +) + +########################### +# Installation +########################### + +install( + TARGETS indicator-sound-service-bin + RUNTIME DESTINATION ${CMAKE_INSTALL_LIBEXECDIR} +) + diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index 8af02ce..0000000 --- a/src/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -pkglibexec_PROGRAMS = indicator-sound-service - -indicator_sound_service_SOURCES = \ - service.vala \ - main.vala \ - volume-control.vala \ - media-player.vala \ - media-player-list.vala \ - mpris2-interfaces.vala \ - mpris2-watcher.vala \ - freedesktop-interfaces.vala \ - sound-menu.vala - -indicator_sound_service_VALAFLAGS = \ - --ccode \ - --vapidir=$(top_srcdir)/vapi/ \ - --vapidir=./ \ - --thread \ - --pkg config \ - --pkg gio-2.0 \ - --pkg gio-unix-2.0 \ - --pkg libxml-2.0 \ - --pkg libpulse \ - --pkg libpulse-mainloop-glib \ - --target-glib=2.36 - -# -w to disable warnings for vala-generated code -indicator_sound_service_CFLAGS = $(PULSEAUDIO_CFLAGS) \ - $(SOUNDSERVICE_CFLAGS) \ - $(GCONF_CFLAGS) \ - $(COVERAGE_CFLAGS) \ - -DLIBEXECDIR=\"$(libexecdir)\" \ - -w \ - -DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" - -indicator_sound_service_LDADD = $(PULSEAUDIO_LIBS) $(SOUNDSERVICE_LIBS) $(GCONF_LIBS) -indicator_sound_service_LDFLAGS = $(COVERAGE_LDFLAGS) diff --git a/src/service.vala b/src/service.vala index 690fdce..ac3ba5b 100644 --- a/src/service.vala +++ b/src/service.vala @@ -17,9 +17,6 @@ * Lars Uebernickel */ -/* Icon.serialize() is not yet in gio-2.0.vapi; remove this when it is */ -extern Variant? g_icon_serialize (Icon icon); - public class IndicatorSound.Service { public Service () { this.settings = new Settings ("com.canonical.indicator.sound"); diff --git a/src/sound-menu.vala b/src/sound-menu.vala index de5500e..415a5be 100644 --- a/src/sound-menu.vala +++ b/src/sound-menu.vala @@ -17,6 +17,9 @@ * Lars Uebernickel */ +/* Icon.serialize() is not yet in gio-2.0.vapi; remove this when it is */ +extern Variant? g_icon_serialize (Icon icon); + class SoundMenu: Object { public SoundMenu (string settings_action) { -- cgit v1.2.3 From 0660fc4e9439b99ac3b75d656b2e60b629e3e745 Mon Sep 17 00:00:00 2001 From: Pete Woods Date: Fri, 16 Aug 2013 04:58:55 +0100 Subject: Clean up the build / installation --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 21931b9..ec43b8f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -123,6 +123,6 @@ target_link_libraries( install( TARGETS indicator-sound-service-bin - RUNTIME DESTINATION ${CMAKE_INSTALL_LIBEXECDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/indicator-sound/ ) -- cgit v1.2.3 From 7009ba12b5c14eb064062b575b586e528b65ada3 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Thu, 22 Aug 2013 11:15:09 -0500 Subject: don't use deprecated GSimpleActionGroup APIs --- src/service.vala | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/service.vala b/src/service.vala index ac3ba5b..4d64502 100644 --- a/src/service.vala +++ b/src/service.vala @@ -28,7 +28,7 @@ public class IndicatorSound.Service { this.players.player_removed.connect (this.player_removed); this.actions = new SimpleActionGroup (); - this.actions.add_entries (action_entries, this); + this.actions.add_action_entries (action_entries, this); this.actions.add_action (this.create_mute_action ()); this.actions.add_action (this.create_volume_action ()); this.actions.add_action (this.create_mic_volume_action ()); @@ -130,7 +130,7 @@ public class IndicatorSound.Service { accessible_name = @"Volume ($volume_int%)"; } - var root_action = actions.lookup ("root") as SimpleAction; + var root_action = actions.lookup_action ("root") as SimpleAction; var builder = new VariantBuilder (new VariantType ("a{sv}")); builder.add ("{sv}", "accessible-desc", new Variant.string (accessible_name)); builder.add ("{sv}", "icon", serialize_themed_icon (icon)); @@ -158,7 +158,7 @@ public class IndicatorSound.Service { } void volume_changed (double volume) { - var volume_action = this.actions.lookup ("volume") as SimpleAction; + var volume_action = this.actions.lookup_action ("volume") as SimpleAction; volume_action.set_state (volume); this.update_root_icon (); @@ -223,7 +223,7 @@ public class IndicatorSound.Service { bool update_player_actions () { foreach (var player in this.players) { - SimpleAction? action = this.actions.lookup (player.id) as SimpleAction; + SimpleAction? action = this.actions.lookup_action (player.id) as SimpleAction; if (action != null) action.set_state (this.action_state_for_player (player)); } @@ -249,11 +249,11 @@ public class IndicatorSound.Service { SimpleAction action = new SimpleAction.stateful (player.id, null, this.action_state_for_player (player)); action.activate.connect ( () => { player.launch (); }); - this.actions.insert (action); + this.actions.add_action (action); var play_action = new SimpleAction.stateful ("play." + player.id, null, player.state); play_action.activate.connect ( () => player.play_pause () ); - this.actions.insert (play_action); + this.actions.add_action (play_action); player.notify.connect ( (object, pspec) => { if (pspec.name == "state") play_action.set_state (player.state); @@ -261,15 +261,15 @@ public class IndicatorSound.Service { var next_action = new SimpleAction ("next." + player.id, null); next_action.activate.connect ( () => player.next () ); - this.actions.insert (next_action); + this.actions.add_action (next_action); var prev_action = new SimpleAction ("previous." + player.id, null); prev_action.activate.connect ( () => player.previous () ); - this.actions.insert (prev_action); + this.actions.add_action (prev_action); var playlist_action = new SimpleAction ("play-playlist." + player.id, VariantType.STRING); playlist_action.activate.connect ( (parameter) => player.activate_playlist_by_name (parameter.get_string ()) ); - this.actions.insert (playlist_action); + this.actions.add_action (playlist_action); player.notify.connect (this.eventually_update_player_actions); @@ -277,11 +277,11 @@ public class IndicatorSound.Service { } void player_removed (MediaPlayer player) { - this.actions.remove (player.id); - this.actions.remove ("play." + player.id); - this.actions.remove ("next." + player.id); - this.actions.remove ("previous." + player.id); - this.actions.remove ("play-playlist." + player.id); + this.actions.remove_action (player.id); + this.actions.remove_action ("play." + player.id); + this.actions.remove_action ("next." + player.id); + this.actions.remove_action ("previous." + player.id); + this.actions.remove_action ("play-playlist." + player.id); this.menus.@foreach ( (profile, menu) => menu.remove_player (player)); -- cgit v1.2.3