[vlc-devel] [PATCH 06/12] vlc_player: add angle_selection event

Thomas Guillem thomas at gllm.fr
Fri Apr 3 09:03:21 CEST 2020



On Thu, Apr 2, 2020, at 20:40, Francois Cartegnie wrote:
> ---
>  include/vlc_player.h                          | 12 ++++++++++++
>  .../gui/macosx/playlist/VLCPlayerController.m |  1 +
>  modules/gui/qt/player/player_controller.cpp   |  1 +
>  modules/gui/skins2/src/vlcproc.cpp            |  1 +
>  test/src/player/player.c                      | 19 +++++++++++++++++++
>  5 files changed, 34 insertions(+)
> 
> diff --git a/include/vlc_player.h b/include/vlc_player.h
> index 6643f2ebed..aabc265a40 100644
> --- a/include/vlc_player.h
> +++ b/include/vlc_player.h
> @@ -2846,6 +2846,18 @@ struct vlc_player_cbs
>          const struct vlc_player_chapter *new_chapter, size_t new_chapter_idx,
>          void *data);
>  
> +    /**
> +     * Called when a new viewing angle is selected
> +     *
> +     * ??

Remove the ?? line if you have nothing to comment.

> +     *
> +     * @param player locked player instance
> +     * @param angle_idx new selected angle index
> +     * @param data opaque pointer set by vlc_player_AddListener()
> +     */
> +    void (*on_angle_selection_changed)(vlc_player_t *player,
> +                                       unsigned char angle_idx, void 
> *data);
> +
>      /**
>       * Called when the media has a teletext menu
>       *
> diff --git a/modules/gui/macosx/playlist/VLCPlayerController.m 
> b/modules/gui/macosx/playlist/VLCPlayerController.m
> index 1698f9b36f..e935c4de21 100644
> --- a/modules/gui/macosx/playlist/VLCPlayerController.m
> +++ b/modules/gui/macosx/playlist/VLCPlayerController.m
> @@ -484,6 +484,7 @@ static const struct vlc_player_cbs player_callbacks 
> = {
>      cb_player_titles_changed,
>      cb_player_title_selection_changed,
>      cb_player_chapter_selection_changed,
> +    nullptr,
>      cb_player_teletext_menu_availability_changed,
>      cb_player_teletext_enabled_changed,
>      cb_player_teletext_page_changed,
> diff --git a/modules/gui/qt/player/player_controller.cpp 
> b/modules/gui/qt/player/player_controller.cpp
> index 724232062b..b7443337e3 100644
> --- a/modules/gui/qt/player/player_controller.cpp
> +++ b/modules/gui/qt/player/player_controller.cpp
> @@ -948,6 +948,7 @@ static const struct vlc_player_cbs player_cbs = {
>      on_player_titles_changed,
>      on_player_title_selection_changed,
>      on_player_chapter_selection_changed,
> +    nullptr,
>      on_player_teletext_menu_changed,
>      on_player_teletext_enabled_changed,
>      on_player_teletext_page_changed,
> diff --git a/modules/gui/skins2/src/vlcproc.cpp 
> b/modules/gui/skins2/src/vlcproc.cpp
> index ed8cbe846d..cfd2faad46 100644
> --- a/modules/gui/skins2/src/vlcproc.cpp
> +++ b/modules/gui/skins2/src/vlcproc.cpp
> @@ -396,6 +396,7 @@ VlcProc::VlcProc( intf_thread_t *pIntf ): 
> SkinObject( pIntf ),
>      on_player_titles_changed,
>      NULL, //on_player_title_selection_changed,
>      NULL, //on_player_chapter_selection_changed,
> +    NULL, //on_player_chapter_angle_changed,
>      NULL, //on_player_teletext_menu_changed,
>      NULL, //on_player_teletext_enabled_changed,
>      NULL, //on_player_teletext_page_changed,
> diff --git a/test/src/player/player.c b/test/src/player/player.c
> index f465f96c0c..9af3a620d1 100644
> --- a/test/src/player/player.c
> +++ b/test/src/player/player.c
> @@ -69,6 +69,12 @@ struct report_chapter_selection
>      size_t chapter_idx;
>  };
>  
> +
> +struct report_angle_selection
> +{
> +    unsigned char angle;
> +};
> +
>  struct report_category_delay
>  {
>      enum es_format_category_e cat;
> @@ -111,6 +117,7 @@ struct report_media_subitems
>      X(vlc_player_title_list *, on_titles_changed) \
>      X(size_t, on_title_selection_changed) \
>      X(struct report_chapter_selection, on_chapter_selection_changed) \
> +    X(struct report_angle_selection, on_angle_selection_changed) \
>      X(struct report_category_delay, on_category_delay_changed) \
>      X(bool, on_recording_changed) \
>      X(struct report_signal, on_signal_changed) \
> @@ -425,6 +432,18 @@ player_on_chapter_selection_changed(vlc_player_t *player,
>      (void) chapter;
>  }
>  
> +static void
> +player_on_angle_selection_changed(vlc_player_t *player,
> +                                  unsigned char angle,
> +                                  void *data)
> +{
> +    struct ctx *ctx = get_ctx(player, data);
> +    struct report_angle_selection report = {
> +        .angle = angle,
> +    };
> +    VEC_PUSH(on_angle_selection_changed, report);
> +}
> +
>  static void
>  player_on_category_delay_changed(vlc_player_t *player,
>                                   enum es_format_category_e cat, 
> vlc_tick_t new_delay,
> -- 
> 2.25.1
> 
> _______________________________________________
> 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