<html><head></head><body>Looks OK but smwhy don't you use separate callback instead of matching the string?<br><br><div class="gmail_quote">Le 20 mai 2019 18:35:13 GMT+03:00, Romain Vimont <rom1v@videolabs.io> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Expose the "device" event on the aout via a player callback.<hr> include/vlc_player.h | 9 +++++++++<br> src/input/player.c | 11 +++++++++++<br> 2 files changed, 20 insertions(+)<br><br>diff --git a/include/vlc_player.h b/include/vlc_player.h<br>index d4c49fa89d..054c4abae3 100644<br>--- a/include/vlc_player.h<br>+++ b/include/vlc_player.h<br>@@ -944,6 +944,15 @@ struct vlc_player_aout_cbs<br> */<br> void (*on_mute_changed)(vlc_player_t *player,<br> bool new_muted, void *data);<br>+<br>+ /**<br>+ * Called when the audio device has changed<br>+ *<br>+ * @param player unlocked player instance<br>+ * @param device the device name<br>+ */<br>+ void (*on_device_changed)(vlc_player_t *player, const char *device,<br>+ void *data);<br> };<br> <br> /**<br>diff --git a/src/input/player.c b/src/input/player.c<br>index e01701ba65..e81c717f36 100644<br>--- a/src/input/player.c<br>+++ b/src/input/player.c<br>@@ -3044,6 +3044,15 @@ vlc_player_AoutCallback(vlc_object_t *this, const char *var,<br> vlc_player_vout_OSDVolume(player, true);<br> }<br> }<br>+ else if (strcmp(var, "device") == 0)<br>+ {<br>+ const char *old = oldval.psz_string;<br>+ const char *new = newval.psz_string;<br>+ /* support NULL values for string comparison */<br>+ if (old != new && (!old || !new || strcmp(old, new)))<br>+ vlc_player_aout_SendEvent(player, on_device_changed,<br>+ newval.psz_string);<br>+ }<br> else<br> vlc_assert_unreachable();<br> <br>@@ -3513,6 +3522,7 @@ vlc_player_New(vlc_object_t *parent, enum vlc_player_lock_type lock_type,<br> {<br> var_AddCallback(aout, "volume", vlc_player_AoutCallback, player);<br> var_AddCallback(aout, "mute", vlc_player_AoutCallback, player);<br>+ var_AddCallback(aout, "device", vlc_player_AoutCallback, player);<br> var_AddCallback(player, "corks", vlc_player_CorkCallback, NULL);<br> input_resource_PutAout(player->resource, aout);<br> }<br>@@ -3534,6 +3544,7 @@ error:<br> {<br> var_DelCallback(aout, "volume", vlc_player_AoutCallback, player);<br> var_DelCallback(aout, "mute", vlc_player_AoutCallback, player);<br>+ var_DelCallback(aout, "device", vlc_player_AoutCallback, player);<br> var_DelCallback(player, "corks", vlc_player_AoutCallback, NULL);<br> }<br> if (player->resource)</pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>