From 1f743fa704be9c2d4cc2f1ecd20d0100a06355ed Mon Sep 17 00:00:00 2001 From: Alexandre Janniaux Date: Tue, 13 Jul 2021 13:51:48 +0200 Subject: [PATCH] qt: player: use lambda to static initialize cbs The callbacks needed to be defined with the correct order and without oversight since C++14 doesn't support designated initializer. But vlc_player callbacks are all optional and there's no point in having such constraint for C++ code. Use a static lambda initializer with an initial zero-initializer to circumvent this limitation. --- modules/gui/qt/player/player_controller.cpp | 31 ++++++++++++--------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/modules/gui/qt/player/player_controller.cpp b/modules/gui/qt/player/player_controller.cpp index 7e98f2d64b..972db0d454 100644 --- a/modules/gui/qt/player/player_controller.cpp +++ b/modules/gui/qt/player/player_controller.cpp @@ -988,21 +988,26 @@ static const struct vlc_player_cbs player_cbs = { on_player_playback_restore_queried }; -static const struct vlc_player_vout_cbs player_vout_cbs = { - on_player_vout_fullscreen_changed, - on_player_vout_wallpaper_mode_changed -}; +static const vlc_player_vout_cbs player_vout_cbs = []{ + struct vlc_player_vout_cbs cbs{}; + cbs.on_fullscreen_changed = on_player_vout_fullscreen_changed; + cbs.on_wallpaper_mode_changed = on_player_vout_wallpaper_mode_changed; + return cbs; +}(); -static const struct vlc_player_aout_cbs player_aout_cbs = { - on_player_aout_volume_changed, - on_player_aout_mute_changed, - nullptr -}; +static const vlc_player_aout_cbs player_aout_cbs = []{ + struct vlc_player_aout_cbs cbs{}; + cbs.on_volume_changed = on_player_aout_volume_changed; + cbs.on_mute_changed = on_player_aout_mute_changed; + return cbs; +}(); -static const struct vlc_player_timer_cbs player_timer_cbs = { - on_player_timer_update, - on_player_timer_discontinuity, -}; +static const vlc_player_timer_cbs player_timer_cbs = []{ + struct vlc_player_timer_cbs cbs {}; + cbs.on_update = on_player_timer_update; + cbs.on_discontinuity = on_player_timer_discontinuity; + return cbs; +}(); PlayerControllerPrivate::PlayerControllerPrivate(PlayerController *playercontroller, qt_intf_t *p_intf) : q_ptr(playercontroller)