[vlc-devel] [PATCH 2/3] libvlc: expose events for the audio mute status
Harald Sitter
sitter at kde.org
Mon Jul 27 13:10:22 CEST 2015
LGTM :*
On Mon, Jul 27, 2015 at 1:07 PM, Rémi Denis-Courmont <remi at remlab.net> wrote:
> Cc: Harald Sitter <sitter at kde.org>
> ---
> include/vlc/libvlc_events.h | 2 ++
> lib/event.c | 2 ++
> lib/media_player.c | 23 +++++++++++++++++++++++
> 3 files changed, 27 insertions(+)
>
> diff --git a/include/vlc/libvlc_events.h b/include/vlc/libvlc_events.h
> index 171b8d5..a997d22 100644
> --- a/include/vlc/libvlc_events.h
> +++ b/include/vlc/libvlc_events.h
> @@ -79,6 +79,8 @@ enum libvlc_event_e {
> libvlc_MediaPlayerESSelected,
> libvlc_MediaPlayerCorked,
> libvlc_MediaPlayerUncorked,
> + libvlc_MediaPlayerMuted,
> + libvlc_MediaPlayerUnmuted,
>
> libvlc_MediaListItemAdded=0x200,
> libvlc_MediaListWillAddItem,
> diff --git a/lib/event.c b/lib/event.c
> index b164376..f26af5c 100644
> --- a/lib/event.c
> +++ b/lib/event.c
> @@ -285,6 +285,8 @@ static const event_name_t event_list[] = {
> DEF(MediaPlayerESSelected)
> DEF(MediaPlayerCorked)
> DEF(MediaPlayerUncorked)
> + DEF(MediaPlayerMuted)
> + DEF(MediaPlayerUnmuted)
>
> DEF(MediaListItemAdded)
> DEF(MediaListWillAddItem)
> diff --git a/lib/media_player.c b/lib/media_player.c
> index 462dceb..5cf5bf1 100644
> --- a/lib/media_player.c
> +++ b/lib/media_player.c
> @@ -71,6 +71,10 @@ static int
> corks_changed(vlc_object_t *obj, const char *name, vlc_value_t old,
> vlc_value_t cur, void *opaque);
>
> +static int
> +mute_changed(vlc_object_t *obj, const char *name, vlc_value_t old,
> + vlc_value_t cur, void *opaque);
> +
> static void
> add_es_callbacks( input_thread_t *p_input_thread, libvlc_media_player_t *p_mi );
>
> @@ -483,6 +487,23 @@ static int corks_changed(vlc_object_t *obj, const char *name, vlc_value_t old,
> return VLC_SUCCESS;
> }
>
> +static int mute_changed(vlc_object_t *obj, const char *name, vlc_value_t old,
> + vlc_value_t cur, void *opaque)
> +{
> + libvlc_media_player_t *mp = (libvlc_media_player_t *)obj;
> +
> + if (old.b_bool != cur.b_bool)
> + {
> + libvlc_event_t event;
> +
> + event.type = cur.b_bool ? libvlc_MediaPlayerMuted
> + : libvlc_MediaPlayerUnmuted;
> + libvlc_event_send(mp->p_event_manager, &event);
> + }
> + VLC_UNUSED(name); VLC_UNUSED(opaque);
> + return VLC_SUCCESS;
> +}
> +
> /**************************************************************************
> * Create a Media Instance object.
> *
> @@ -662,6 +683,7 @@ libvlc_media_player_new( libvlc_instance_t *instance )
> register_event(mp, Uncorked);
>
> var_AddCallback(mp, "corks", corks_changed, NULL);
> + var_AddCallback(mp, "mute", mute_changed, NULL);
>
> /* Snapshot initialization */
> register_event(mp, SnapshotTaken);
> @@ -713,6 +735,7 @@ static void libvlc_media_player_destroy( libvlc_media_player_t *p_mi )
> "snapshot-file", snapshot_was_taken, p_mi );
>
> /* Detach callback from the media player / input manager object */
> + var_DelCallback( p_mi, "mute", mute_changed, NULL );
> var_DelCallback( p_mi, "corks", corks_changed, NULL );
>
> /* No need for lock_input() because no other threads knows us anymore */
> --
> 1.9.1
>
More information about the vlc-devel
mailing list