aboutsummaryrefslogtreecommitdiff
path: root/src/sound-state.c
diff options
context:
space:
mode:
authorDylan McCall <dylanmccall@ubuntu.com>2011-04-04 20:14:19 -0700
committerDylan McCall <dylanmccall@ubuntu.com>2011-04-04 20:14:19 -0700
commit1c1adfebc0a8c9fc1a64f89fa879823ff316ecec (patch)
tree550bacf75c64d9db6d459f465ffaeeb600d81665 /src/sound-state.c
parent15c7802a9f753b0d06e7690ae24402644cd12bfe (diff)
downloadayatana-indicator-sound-1c1adfebc0a8c9fc1a64f89fa879823ff316ecec.tar.gz
ayatana-indicator-sound-1c1adfebc0a8c9fc1a64f89fa879823ff316ecec.tar.bz2
ayatana-indicator-sound-1c1adfebc0a8c9fc1a64f89fa879823ff316ecec.zip
Sound state manager volume notification is based on new volume instead of current (old) volume.
Notifications use notification variants of audio-volume-* icons.
Diffstat (limited to 'src/sound-state.c')
-rw-r--r--src/sound-state.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/sound-state.c b/src/sound-state.c
new file mode 100644
index 0000000..72e411a
--- /dev/null
+++ b/src/sound-state.c
@@ -0,0 +1,43 @@
+/*
+Copyright 2010 Canonical Ltd.
+
+Authors:
+ Conor Curran <conor.curran@canonical.com>
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 3, as published
+by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranties of
+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
+PURPOSE. See the GNU General Public License for more details.
+
+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 "config.h"
+
+#include "sound-state.h"
+
+SoundState
+sound_state_get_from_volume (int volume_percent)
+{
+ SoundState state = LOW_LEVEL;
+
+ if (volume_percent < 30 && volume_percent > 0) {
+ state = LOW_LEVEL;
+ }
+ else if (volume_percent < 70 && volume_percent >= 30) {
+ state = MEDIUM_LEVEL;
+ }
+ else if (volume_percent >= 70) {
+ state = HIGH_LEVEL;
+ }
+ else if (volume_percent <= 0) {
+ state = ZERO_LEVEL;
+ }
+ return state;
+}
+