summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--src/notifications/notifier_fallback.cpp30
-rw-r--r--src/notifications/notifier_null.cpp9
-rw-r--r--src/settings.hpp3
4 files changed, 33 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6804671..05ee200 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -83,7 +83,7 @@ endif ()
if (NOT WIN32)
target_sources(abaddon PRIVATE src/notifications/notifier_gio.cpp)
else ()
- target_sources(abaddon PRIVATE src/notifications/notifier_null.cpp)
+ target_sources(abaddon PRIVATE src/notifications/notifier_fallback.cpp)
endif ()
if (IXWebSocket_LIBRARIES)
diff --git a/src/notifications/notifier_fallback.cpp b/src/notifications/notifier_fallback.cpp
new file mode 100644
index 0000000..00e9d4a
--- /dev/null
+++ b/src/notifications/notifier_fallback.cpp
@@ -0,0 +1,30 @@
+#include "notifier.hpp"
+
+/* no actual notifications, just sounds
+ GNotification has no win32 backend, and WinToast uses headers msys2 doesnt provide
+ maybe it can be LoadLibrary'd in :s
+*/
+
+Notifier::Notifier() {
+#ifdef ENABLE_NOTIFICATION_SOUNDS
+ if (ma_engine_init(nullptr, &m_engine) != MA_SUCCESS) {
+ printf("failed to initialize miniaudio engine\n");
+ }
+#endif
+}
+
+Notifier::~Notifier() {
+#ifdef ENABLE_NOTIFICATION_SOUNDS
+ ma_engine_uninit(&m_engine);
+#endif
+}
+
+void Notifier::Notify(const Glib::ustring &id, const Glib::ustring &title, const Glib::ustring &text, const Glib::ustring &default_action, const std::string &icon_path) {
+#ifdef ENABLE_NOTIFICATION_SOUNDS
+ if (Abaddon::Get().GetSettings().NotificationsPlaySound) {
+ ma_engine_play_sound(&m_engine, Abaddon::Get().GetResPath("/sound/message.mp3").c_str(), nullptr);
+ }
+#endif
+}
+
+void Notifier::Withdraw(const Glib::ustring &id) {}
diff --git a/src/notifications/notifier_null.cpp b/src/notifications/notifier_null.cpp
deleted file mode 100644
index 1da99fd..0000000
--- a/src/notifications/notifier_null.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-#include "notifier.hpp"
-
-Notifier::Notifier() {}
-
-Notifier::~Notifier() {}
-
-void Notifier::Notify(const Glib::ustring &id, const Glib::ustring &title, const Glib::ustring &text, const Glib::ustring &default_action, const std::string &icon_path) {}
-
-void Notifier::Withdraw(const Glib::ustring &id) {}
diff --git a/src/settings.hpp b/src/settings.hpp
index 419734c..42f4838 100644
--- a/src/settings.hpp
+++ b/src/settings.hpp
@@ -47,10 +47,11 @@ public:
// [notifications]
#ifdef _WIN32
bool NotificationsEnabled { false };
+ bool NotificationsPlaySound { false };
#else
bool NotificationsEnabled { true };
-#endif
bool NotificationsPlaySound { true };
+#endif
// [voice]
#ifdef WITH_RNNOISE