#pragma once #include #include #include #include "services/dbus/messages.hpp" class MprisController { public: static std::shared_ptr getInstance(); void toggle_play(); void next_song(); void previous_song(); void emit_seeked(int64_t position_us); sigc::signal &signal_mpris_updated(); private: MprisController(); bool playerRunning = false; Glib::RefPtr m_connection; Glib::RefPtr m_proxy; sigc::signal mprisUpdatedSignal; void on_bus_connected(const Glib::RefPtr &result); void signalNotification(); // Called when the song changes void on_properties_changed(const Gio::DBus::Proxy::MapChangedProperties &changed_properties, const std::vector &invalidated_properties); };