dbus: register object path before bus names

This fixes a race condition where the player was visible on the bus
with the MPRIS name, but did not implement MPRIS.
This commit is contained in:
Rémi Denis-Courmont 2014-08-16 13:37:23 +03:00
parent 3cd098faaf
commit d32c36dc11
1 changed files with 4 additions and 4 deletions

View File

@ -199,6 +199,10 @@ static int Open( vlc_object_t *p_this )
dbus_connection_set_exit_on_disconnect( p_conn, FALSE );
/* Register the entry point object path */
dbus_connection_register_object_path( p_conn, DBUS_MPRIS_OBJECT_PATH,
&dbus_mpris_vtable, p_this );
/* register an instance-specific well known name of the form
* org.mpris.MediaPlayer2.vlc.instanceXXXX where XXXX is the
* current process's pid */
@ -227,10 +231,6 @@ static int Open( vlc_object_t *p_this )
* the only VLC instance currently connected to the bus */
dbus_bus_request_name( p_conn, DBUS_MPRIS_BUS_NAME, 0, NULL );
/* Register the entry point object path */
dbus_connection_register_object_path( p_conn, DBUS_MPRIS_OBJECT_PATH,
&dbus_mpris_vtable, p_this );
dbus_connection_flush( p_conn );
p_intf->p_sys = p_sys;