46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <functional>
|
|
#include <map>
|
|
#include <memory>
|
|
#include <string>
|
|
#include <sys/types.h>
|
|
#include <vector>
|
|
#include "gdkmm/pixbuf.h"
|
|
#include "glibmm/variant.h"
|
|
|
|
struct MprisPlayer2Message {
|
|
std::string title;
|
|
std::vector<std::string> artist;
|
|
std::string artwork_url;
|
|
std::string track_id;
|
|
int64_t length_ms;
|
|
|
|
std::function<void()> play_pause;
|
|
std::function<void()> next;
|
|
std::function<void()> 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<std::string> actions;
|
|
NotificationUrgency urgency = NORMAL;
|
|
int32_t expire_timeout;
|
|
// Callback to invoke when an action is triggered
|
|
std::function<void(const std::string& action_id)> on_action;
|
|
// Guard to prevent multiple action invocations across mirrors
|
|
std::shared_ptr<bool> actionInvoked;
|
|
// image data (if any) from dbus
|
|
std::optional<Glib::RefPtr<Gdk::Pixbuf>> imageData;
|
|
}; |