[vlc-devel] [PATCH 09/11] vlc_player: add vlc_player_[GetSelected, Select]Angle

Thomas Guillem thomas at gllm.fr
Tue May 5 21:17:22 CEST 2020


Is there a way to know how many ANGLEs are available?

On Tue, May 5, 2020, at 17:57, Francois Cartegnie wrote:
> ---
>  include/vlc_player.h | 17 +++++++++++++++++
>  src/libvlccore.sym   |  2 ++
>  src/player/player.c  | 22 ++++++++++++++++++++++
>  3 files changed, 41 insertions(+)
> 
> diff --git a/include/vlc_player.h b/include/vlc_player.h
> index cbd74b86a1..ef4e2fb871 100644
> --- a/include/vlc_player.h
> +++ b/include/vlc_player.h
> @@ -1162,6 +1162,23 @@ vlc_player_SelectNextChapter(vlc_player_t *player);
>  VLC_API void
>  vlc_player_SelectPrevChapter(vlc_player_t *player);
>  
> +/**
> + * Get the viewing angle of the current media
> + *
> + * @param player locked player instance
> + */
> +VLC_API unsigned
> +vlc_player_GetSelectedAngle(vlc_player_t *player);
> +
> +/**
> + * Select the viewing angle for the current media
> + *
> + * @param player locked player instance
> + * @param angle valid angle for the current title
> + */
> +VLC_API void
> +vlc_player_SelectAngle(vlc_player_t *player, unsigned angle);
> +
>  /** @} vlc_player__titles */
>  
>  /**
> diff --git a/src/libvlccore.sym b/src/libvlccore.sym
> index 504801246b..2a733758cf 100644
> --- a/src/libvlccore.sym
> +++ b/src/libvlccore.sym
> @@ -800,6 +800,7 @@ vlc_player_GetProgramAt
>  vlc_player_GetProgramCount
>  vlc_player_GetRate
>  vlc_player_GetRenderer
> +vlc_player_GetSelectedAngle
>  vlc_player_GetSelectedChapterIdx
>  vlc_player_GetSelectedTitleIdx
>  vlc_player_GetSignal
> @@ -835,6 +836,7 @@ vlc_player_RestorePlaybackPos
>  vlc_player_Resume
>  vlc_player_SeekByPos
>  vlc_player_SeekByTime
> +vlc_player_SelectAngle
>  vlc_player_SelectCategoryLanguage
>  vlc_player_SelectChapter
>  vlc_player_SelectChapterIdx
> diff --git a/src/player/player.c b/src/player/player.c
> index a1a39a28f5..6ae7ef5119 100644
> --- a/src/player/player.c
> +++ b/src/player/player.c
> @@ -839,6 +839,16 @@ vlc_player_GetSelectedTitleIdx(vlc_player_t *player)
>      return input->title_selected;
>  }
>  
> +unsigned
> +vlc_player_GetSelectedAngle(vlc_player_t *player)
> +{
> +    struct vlc_player_input *input = vlc_player_get_input_locked(player);
> +
> +    if (!input)
> +        return 0;
> +    return input->angle_selected;
> +}
> +
>  static ssize_t
>  vlc_player_GetTitleIdx(vlc_player_t *player,
>                         const struct vlc_player_title *title)
> @@ -949,6 +959,18 @@ vlc_player_SelectPrevChapter(vlc_player_t *player)
>          vlc_player_osd_Message(player, _("Previous chapter"));
>  }
>  
> +void
> +vlc_player_SelectAngle(vlc_player_t *player, unsigned angle)
> +{
> +    struct vlc_player_input *input = vlc_player_get_input_locked(player);
> +    if (!input)
> +        return;
> +    int ret = input_ControlPushHelper(input->thread, INPUT_CONTROL_SET_ANGLE,
> +                                      &(vlc_value_t){ .i_int = angle });
> +    if (ret == VLC_SUCCESS)
> +        vlc_player_osd_Message(player, _("Viewing angle %u"), angle);
> +}
> +
>  void
>  vlc_player_Lock(vlc_player_t *player)
>  {
> -- 
> 2.25.4
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list