Skip to content

media-keys: Fix MprisController no longer working

Since commit e4297f2a ("media-keys: Use G_DECLARE_FINAL_TYPE for MprisController"), the MPRIS support in g-s-d no longer works.

This is caused by the mpris_proxy_ready_cb changes, after the troublesome commit, the MprisController self pointer is retreived by the mpris_proxy_ready_cb like this:

  MprisController *self = MPRIS_CONTROLLER (object);

But the object parameter to the GAsyncReadyCallback is the source object, which in this case is the just created GDBusProxy, not our MprisController object, leading to these warnings:

gsd-media-keys[x]: invalid cast from 'GDBusProxy' to 'MprisController'

Our MprisController is passed through the user_data pointer, so this commit fixes the code to use this instead.

This fixes the warning and more importantly also makes the MPRIS support work again, since it now will now properly set self->mpris_client_proxy again.

Fixes: #437 (closed)

Merge request reports