diff options
-rw-r--r-- | src/CMakeLists.txt | 8 | ||||
-rw-r--r-- | src/info-notification.vala | 28 | ||||
-rw-r--r-- | src/main.c | 3 |
3 files changed, 34 insertions, 5 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6cd24f9..4c57477 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -44,6 +44,14 @@ vala_init(ayatana-indicator-sound-service ${VALA_DEFINE_LOMIRI_FEATURES_ENABLED} ) +set_source_files_properties (warn-notification.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-function-pointer-types") +set_source_files_properties (service.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-function-pointer-types") +set_source_files_properties (volume-control-pulse.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-function-pointer-types") +set_source_files_properties (volume-warning-pulse.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-function-pointer-types") +set_source_files_properties (media-player-user.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-function-pointer-types") +set_source_files_properties (media-player-mpris.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-function-pointer-types") +set_source_files_properties (media-player-list-mpris.c PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -Wno-incompatible-function-pointer-types") + vala_add(ayatana-indicator-sound-service notification.vala ) diff --git a/src/info-notification.vala b/src/info-notification.vala index 4379acf..4e246b2 100644 --- a/src/info-notification.vala +++ b/src/info-notification.vala @@ -39,18 +39,36 @@ public class IndicatorSound.InfoNotification: Notification /* Reset the notification */ var n = _notification; - - uint nChars = ((int32)((volume * 20) + 0.5)).clamp(0, 20); volume_label += "\n"; + int32 nValue = ((int32)((volume * 100.0) + 0.5)).clamp(0, 100); + SettingsSchemaSource pSource = SettingsSchemaSource.get_default (); + SettingsSchema pSchema = pSource.lookup ("org.gnome.desktop.a11y.applications", false); + bool bOrcaActive = false; + + if (pSchema != null) + { + Settings pSettings = new Settings ("org.gnome.desktop.a11y.applications"); + bOrcaActive = pSettings.get_boolean ("screen-reader-enabled"); + } - for (uint nChar = 0; nChar < nChars; nChar++) + if (bOrcaActive) { - volume_label += "◼"; + string sValue = nValue.to_string (); + volume_label += sValue + "%"; + } + else + { + uint nChars = ((int32)((volume * 20) + 0.5)).clamp(0, 20); + + for (uint nChar = 0; nChar < nChars; nChar++) + { + volume_label += "◼"; + } } n.update (_("Volume"), volume_label, icon); n.clear_hints(); - n.set_hint ("value", ((int32)((volume * 100.0) + 0.5)).clamp(0, 100)); + n.set_hint ("value", nValue); show_notification (); } @@ -1,5 +1,6 @@ /* * Copyright 2015 Canonical Ltd. + * Copyright 2023 Robert Tari <robert@tari.in> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +16,8 @@ */ #include <glib.h> +#include <glib/gi18n.h> +#include <glib-unix.h> #include <locale.h> #include <libnotify/notify.h> |