aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/accounts-service-user.vala4
-rw-r--r--src/service.vala9
-rw-r--r--src/volume-control.vala5
3 files changed, 13 insertions, 5 deletions
diff --git a/src/accounts-service-user.vala b/src/accounts-service-user.vala
index ec52730..e8db7c4 100644
--- a/src/accounts-service-user.vala
+++ b/src/accounts-service-user.vala
@@ -35,6 +35,7 @@ public class AccountsServiceUser : Object {
return _silentMode;
}
set {
+ _silentMode = value;
if (syssoundproxy != null)
syssoundproxy.silent_mode = value;
}
@@ -211,7 +212,8 @@ public class AccountsServiceUser : Object {
}
});
- this.silentMode = this.syssoundproxy.silent_mode;
+ this._silentMode = this.syssoundproxy.silent_mode;
+ this.notify_property("silentMode");
} catch (Error e) {
this.syssoundproxy = null;
warning("Unable to get proxy to system sound settings: %s", e.message);
diff --git a/src/service.vala b/src/service.vala
index f4f13ab..fb56215 100644
--- a/src/service.vala
+++ b/src/service.vala
@@ -237,6 +237,8 @@ public class IndicatorSound.Service: Object {
string icon;
if (this.volume_control.mute)
icon = this.mute_blocks_sound ? "audio-volume-muted-blocking-panel" : "audio-volume-muted-panel";
+ else if (this.accounts_service != null && this.accounts_service.silentMode)
+ icon = "audio-volume-muted-panel";
else if (volume <= 0.0)
icon = "audio-volume-low-zero-panel";
else if (volume <= 0.3)
@@ -249,6 +251,9 @@ public class IndicatorSound.Service: Object {
string accessible_name;
if (this.volume_control.mute) {
accessible_name = _("Volume (muted)");
+ } else if (this.accounts_service != null && this.accounts_service.silentMode) {
+ int volume_int = (int)(volume * 100);
+ accessible_name = "%s (%s %d%%)".printf (_("Volume"), _("silent"), volume_int);
} else {
int volume_int = (int)(volume * 100);
accessible_name = "%s (%d%%)".printf (_("Volume"), volume_int);
@@ -495,13 +500,13 @@ public class IndicatorSound.Service: Object {
action.set_state (this.action_state_for_player (player));
action.set_enabled (player.can_raise);
}
-
+
SimpleAction? greeter_action = this.actions.lookup_action (player.id + ".greeter") as SimpleAction;
if (greeter_action != null) {
greeter_action.set_state (this.action_state_for_player (player, greeter_show_track()));
greeter_action.set_enabled (player.can_raise);
}
-
+
/* If we're playing then put that data in accounts service */
if (player.is_running && export_to_accounts_service && accounts_service != null) {
accounts_service.player = player;
diff --git a/src/volume-control.vala b/src/volume-control.vala
index 193e621..c5e1883 100644
--- a/src/volume-control.vala
+++ b/src/volume-control.vala
@@ -179,9 +179,10 @@ public class VolumeControl : Object
* checking for the port name. On touch (with the pulseaudio droid element)
* the headset/headphone port is called 'output-headset' and 'output-headphone'.
* On the desktop this is usually called 'analog-output-headphones' */
- if (i.active_port.name == "output-wired_headset" ||
+ if (i.active_port != null && (
+ i.active_port.name == "output-wired_headset" ||
i.active_port.name == "output-wired_headphone" ||
- i.active_port.name == "analog-output-headphones") {
+ i.active_port.name == "analog-output-headphones")) {
_active_port_headphone = true;
} else {
_active_port_headphone = false;