mirror of
https://github.com/uowuo/abaddon.git
synced 2024-09-20 06:51:51 +00:00
notification sounds with miniaudio
This commit is contained in:
parent
64085fafec
commit
fbbfdc9606
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -63,7 +63,7 @@ jobs:
|
|||
with:
|
||||
cond: ${{ matrix.mindeps == true }}
|
||||
if_true: |
|
||||
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=${{ matrix.buildtype }} -DUSE_LIBHANDY=OFF
|
||||
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=${{ matrix.buildtype }} -DUSE_LIBHANDY=OFF -DUSE_MINIAUDIO=OFF
|
||||
cmake --build build
|
||||
if_false: |
|
||||
cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE=${{ matrix.buildtype }}
|
||||
|
|
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -7,3 +7,6 @@
|
|||
[submodule "subprojects/keychain"]
|
||||
path = subprojects/keychain
|
||||
url = https://github.com/hrantzsch/keychain
|
||||
[submodule "subprojects/miniaudio"]
|
||||
path = subprojects/miniaudio
|
||||
url = https://github.com/mackron/miniaudio
|
||||
|
|
|
@ -9,6 +9,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
|
|||
|
||||
option(USE_LIBHANDY "Enable features that require libhandy (default)" ON)
|
||||
option(USE_KEYCHAIN "Store the token in the keychain (default)" ON)
|
||||
option(USE_MINIAUDIO "Enable features that require miniaudio (default)" ON)
|
||||
|
||||
find_package(nlohmann_json REQUIRED)
|
||||
find_package(CURL)
|
||||
|
@ -123,3 +124,8 @@ if (USE_KEYCHAIN)
|
|||
target_compile_definitions(abaddon PRIVATE WITH_KEYCHAIN)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (USE_MINIAUDIO)
|
||||
target_include_directories(abaddon PUBLIC subprojects/miniaudio)
|
||||
target_compile_definitions(abaddon PRIVATE WITH_MINIAUDIO)
|
||||
endif ()
|
||||
|
|
|
@ -2,9 +2,19 @@
|
|||
#include <glibmm/ustring.h>
|
||||
#include <gdkmm/pixbuf.h>
|
||||
|
||||
#ifdef WITH_MINIAUDIO
|
||||
#include <miniaudio.h>
|
||||
#endif
|
||||
|
||||
class Notifier {
|
||||
public:
|
||||
Notifier();
|
||||
~Notifier();
|
||||
|
||||
void Notify(const Glib::ustring &title, const Glib::ustring &text, const Glib::ustring &default_action);
|
||||
|
||||
private:
|
||||
#ifdef WITH_MINIAUDIO
|
||||
ma_engine m_engine;
|
||||
#endif
|
||||
};
|
||||
|
|
|
@ -1,11 +1,30 @@
|
|||
#include "notifier.hpp"
|
||||
#include <giomm/notification.h>
|
||||
|
||||
Notifier::Notifier() {}
|
||||
#define MINIAUDIO_IMPLEMENTATION
|
||||
#include <miniaudio.h>
|
||||
|
||||
Notifier::Notifier() {
|
||||
#ifdef WITH_MINIAUDIO
|
||||
if (ma_engine_init(nullptr, &m_engine) != MA_SUCCESS) {
|
||||
printf("failed to initialize miniaudio engine\n");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Notifier::~Notifier() {
|
||||
#ifdef WITH_MINIAUDIO
|
||||
ma_engine_uninit(&m_engine);
|
||||
#endif
|
||||
}
|
||||
|
||||
void Notifier::Notify(const Glib::ustring &title, const Glib::ustring &text, const Glib::ustring &default_action) {
|
||||
auto n = Gio::Notification::create(title);
|
||||
n->set_body(text);
|
||||
n->set_default_action(default_action);
|
||||
Abaddon::Get().GetApp()->send_notification(n);
|
||||
|
||||
#ifdef WITH_MINIAUDIO
|
||||
ma_engine_play_sound(&m_engine, Abaddon::Get().GetResPath("/sound/message.mp3").c_str(), nullptr);
|
||||
#endif
|
||||
}
|
||||
|
|
1
subprojects/miniaudio
Submodule
1
subprojects/miniaudio
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit c153a947919808419b0bf3f56b6f2ee606d6c5f4
|
Loading…
Reference in New Issue
Block a user