aboutsummaryrefslogtreecommitdiff
path: root/include/Notification.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/Notification.hpp')
-rw-r--r--include/Notification.hpp32
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