diff options
Diffstat (limited to 'include/Notification.hpp')
-rw-r--r-- | include/Notification.hpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/Notification.hpp b/include/Notification.hpp new file mode 100644 index 0000000..22f2f77 --- /dev/null +++ b/include/Notification.hpp @@ -0,0 +1,32 @@ +#pragma once + +#include "Program.h" +#include <assert.h> +#include <string> + +namespace QuickMedia { + enum class Urgency { + LOW, + NORMAL, + CRITICAL + }; + + static const char* urgency_string(Urgency urgency) { + switch(urgency) { + case Urgency::LOW: + return "low"; + case Urgency::NORMAL: + return "normal"; + case Urgency::CRITICAL: + return "critical"; + } + assert(false); + return nullptr; + } + + static void show_notification(const std::string &title, const std::string &description, Urgency urgency = Urgency::NORMAL) { + const char *args[] = { "notify-send", "-u", urgency_string(urgency), "--", title.c_str(), description.c_str(), nullptr }; + exec_program_async(args, nullptr); + printf("Notification: title: %s, description: %s\n", title.c_str(), description.c_str()); + } +}
\ No newline at end of file |