#pragma once #include #include #include #include #include #include #include #include "gdkmm/pixbuf.h" #include "glibmm/variant.h" struct MprisPlayer2Message { std::string title; std::vector artist; std::string artwork_url; int64_t length_ms; std::function play_pause; std::function next; std::function previous; }; enum NotificationUrgency { LOW = 0, NORMAL = 1, CRITICAL = 2 }; struct NotifyMessage { std::string app_name; uint32_t replaces_id; std::string app_icon; std::string summary; std::string body; std::vector actions; NotificationUrgency urgency = NORMAL; int32_t expire_timeout; // Callback to invoke when an action is triggered std::function on_action; // Guard to prevent multiple action invocations across mirrors std::shared_ptr actionInvoked; // image data (if any) from dbus std::optional> imageData; };