mpris mostly works, still need to init the state though

This commit is contained in:
2026-02-03 11:22:57 +01:00
parent 9c70065bf6
commit b9f5eea4af
10 changed files with 170 additions and 22 deletions

View File

@@ -26,10 +26,13 @@ class MprisController {
void next_song();
void previous_song();
void emit_seeked(int64_t position_us);
void set_position(const std::string &track_id, int64_t position_us);
sigc::signal<void(const MprisPlayer2Message &)> &signal_mpris_updated();
sigc::signal<void(PlaybackStatus)> &signal_playback_status_changed();
sigc::signal<void(int64_t)> &signal_playback_position_changed();
sigc::signal<void(const std::string &)> &signal_player_registered();
sigc::signal<void(const std::string &)> &signal_player_deregistered();
private:
MprisController();
@@ -43,13 +46,22 @@ class MprisController {
Glib::RefPtr<Gio::DBus::Connection> m_connection;
Glib::RefPtr<Gio::DBus::Proxy> m_proxy;
Glib::RefPtr<Gio::DBus::Proxy> m_dbus_proxy;
std::string m_player_bus_name = "org.mpris.MediaPlayer2.spotify";
sigc::signal<void(const MprisPlayer2Message &)> mprisUpdatedSignal;
sigc::signal<void(PlaybackStatus)> playbackStatusChangedSignal;
sigc::signal<void(int64_t)> playbackPositionChangedSignal;
sigc::signal<void(const std::string &)> playerRegisteredSignal;
sigc::signal<void(const std::string &)> playerDeregisteredSignal;
void on_bus_connected(const Glib::RefPtr<Gio::AsyncResult> &result);
void signalNotification();
void on_dbus_signal(const Glib::ustring &sender_name,
const Glib::ustring &signal_name,
const Glib::VariantContainerBase &parameters);
void handle_player_registered(const std::string &bus_name);
void handle_player_deregistered(const std::string &bus_name);
// Called when the song changes
void on_properties_changed(const Gio::DBus::Proxy::MapChangedProperties &changed_properties,