add notification sounds only to windows

This commit is contained in:
ouwou
2023-12-29 02:06:54 -05:00
parent 15d94ba4ae
commit d2ff7112aa
4 changed files with 33 additions and 11 deletions

View File

@@ -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)

View File

@@ -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) {}

View File

@@ -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) {}

View File

@@ -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