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.
This commit is contained in:
Alexandre Janniaux 2021-07-13 13:51:48 +02:00 committed by Jean-Baptiste Kempf
parent a28a9dd75c
commit 1f743fa704
1 changed files with 18 additions and 13 deletions

View File

@ -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)