diff options
author | André Nusser <andre.nusser@googlemail.com> | 2017-05-20 22:19:43 +0200 |
---|---|---|
committer | André Nusser <andre.nusser@googlemail.com> | 2017-05-20 22:19:43 +0200 |
commit | f9372b88e6bfec45ff1d7582425d5bee585849d5 (patch) | |
tree | 0172d8ba69a0bf4f586f759291f704fe72982329 | |
parent | 54838a283cd4fdfd5a1a44c5ef6ca0051872f107 (diff) |
Fix lazy evaluation issue in drumgizmo_plugin.cc
-rw-r--r-- | plugin/drumgizmo_plugin.cc | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/plugin/drumgizmo_plugin.cc b/plugin/drumgizmo_plugin.cc index 2b7f4b9..19b0b89 100644 --- a/plugin/drumgizmo_plugin.cc +++ b/plugin/drumgizmo_plugin.cc @@ -207,30 +207,30 @@ void DrumGizmoPlugin::onInlineRedraw(std::size_t width, bool show_image{false}; std::size_t height = 0; - if(bar_height <= max_height) { + if(bar_height <= max_height) + { show_bar = true; height += bar_height; } - if(bar_height + image_height <= max_height) { + if(bar_height + image_height <= max_height) + { show_image = true; height += image_height; } + // They have to be called seperately to avoid lazy evaluation + bool nof_changed = settingsGetter.number_of_files.hasChanged(); + bool nofl_changed = settingsGetter.number_of_files_loaded.hasChanged(); + bool dls_changed = settingsGetter.drumkit_load_status.hasChanged(); + bool context_needs_update = - !context.data || - context.width != width || - context.height != height; - bool bar_needs_update = - settingsGetter.number_of_files.hasChanged() || - settingsGetter.number_of_files_loaded.hasChanged() || - settingsGetter.drumkit_load_status.hasChanged() || - context_needs_update; + !context.data || context.width != width || context.height != height; + bool bar_needs_update = + nof_changed || nofl_changed || dls_changed || context_needs_update; bool image_needs_update = inline_image_first_draw || context_needs_update; - // TODO: settingsGetter.inline_image_filename.hasChanged(); + // TODO: settingsGetter.inline_image_filename.hasChanged(); bool something_needs_update = - context_needs_update || - bar_needs_update || - image_needs_update; + context_needs_update || bar_needs_update || image_needs_update; if (something_needs_update) { @@ -297,7 +297,7 @@ bool DrumGizmoPlugin::hasGUI() return true; } -void* DrumGizmoPlugin::createWindow(void *parent) +void* DrumGizmoPlugin::createWindow(void* parent) { plugin_gui = std::make_shared<GUI::MainWindow>(settings, parent); resizeWindow(width, height); @@ -434,7 +434,7 @@ void DrumGizmoPlugin::Output::pre(size_t nsamples) } } -void DrumGizmoPlugin::Output::run(int ch, sample_t *samples, size_t nsamples) +void DrumGizmoPlugin::Output::run(int ch, sample_t* samples, size_t nsamples) { assert(plugin.output_samples); |