From 6fc2eba70bdcc28f67389ffebfcbf4519e7a90ca Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sat, 25 Oct 2008 15:16:09 +0000 Subject: [PATCH] do not inline code for fetching value from controller and thus reduce header dependencies git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1802 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 21 +++++++++++++++++++++ include/automatable_model.h | 16 ++++++---------- src/core/audio/audio_alsa.cpp | 1 + src/core/audio/audio_jack.cpp | 1 + src/core/audio/audio_oss.cpp | 1 + src/core/automatable_model.cpp | 14 ++++++++++++++ src/core/controller.cpp | 1 + src/core/envelope_and_lfo_parameters.cpp | 1 + src/core/piano.cpp | 1 + src/gui/fx_mixer_view.cpp | 1 + src/gui/widgets/automatable_button.cpp | 1 + src/gui/widgets/automatable_slider.cpp | 1 + src/gui/widgets/combobox.cpp | 1 + src/gui/widgets/envelope_and_lfo_view.cpp | 1 + src/gui/widgets/fader.cpp | 1 + src/gui/widgets/instrument_midi_io_view.cpp | 2 ++ src/gui/widgets/knob.cpp | 1 + src/gui/widgets/lcd_spinbox.cpp | 1 + src/tracks/automation_track.cpp | 1 + 19 files changed, 58 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1bb6e901e..0c2aec95b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,26 @@ 2008-10-25 Tobias Doerffel + * include/automatable_model.h: + * src/core/automatable_model.cpp: + * src/core/audio/audio_alsa.cpp: + * src/core/audio/audio_oss.cpp: + * src/core/audio/audio_jack.cpp: + * src/core/envelope_and_lfo_parameters.cpp: + * src/core/piano.cpp: + * src/core/controller.cpp: + * src/gui/fx_mixer_view.cpp: + * src/gui/widgets/combobox.cpp: + * src/gui/widgets/envelope_and_lfo_view.cpp: + * src/gui/widgets/knob.cpp: + * src/gui/widgets/instrument_midi_io_view.cpp: + * src/gui/widgets/automatable_slider.cpp: + * src/gui/widgets/lcd_spinbox.cpp: + * src/gui/widgets/fader.cpp: + * src/gui/widgets/automatable_button.cpp: + * src/tracks/automation_track.cpp: + do not inline code for fetching value from controller and thus reduce + header dependencies + * plugins/vst_effect/CMakeLists.txt: * plugins/vestige/CMakeLists.txt: * plugins/vst_base/CMakeLists.txt: diff --git a/include/automatable_model.h b/include/automatable_model.h index cd1da11c7..5e5f2e4a7 100644 --- a/include/automatable_model.h +++ b/include/automatable_model.h @@ -30,7 +30,6 @@ #include "journalling_object.h" #include "mv_base.h" -#include "controller_connection.h" // simple way to map a property of a view to a model @@ -60,6 +59,9 @@ +class controllerConnection; + + class EXPORT automatableModel : public model, public journallingObject { Q_OBJECT @@ -119,20 +121,14 @@ public: { if( unlikely( m_controllerConnection != NULL ) ) { - const T v = minValue() + - castValue( m_range * - m_controllerConnection->currentValue( - _frameOffset ) ); - if( typeInfo::isEqual( m_step, 1 ) ) - { - return castValue( roundf( (float) v ) ); - } - return v; + return castValue( controllerValue( _frameOffset ) ); } return castValue( m_value ); } + float controllerValue( int _frameOffset ) const; + template inline T initValue( void ) const diff --git a/src/core/audio/audio_alsa.cpp b/src/core/audio/audio_alsa.cpp index 52d311189..d2786b3dd 100644 --- a/src/core/audio/audio_alsa.cpp +++ b/src/core/audio/audio_alsa.cpp @@ -35,6 +35,7 @@ #include "endian_handling.h" #include "config_mgr.h" +#include "engine.h" #include "lcd_spinbox.h" #include "gui_templates.h" #include "templates.h" diff --git a/src/core/audio/audio_jack.cpp b/src/core/audio/audio_jack.cpp index f668dcc66..8f7b64307 100644 --- a/src/core/audio/audio_jack.cpp +++ b/src/core/audio/audio_jack.cpp @@ -39,6 +39,7 @@ #include "debug.h" +#include "engine.h" #include "templates.h" #include "gui_templates.h" #include "config_mgr.h" diff --git a/src/core/audio/audio_oss.cpp b/src/core/audio/audio_oss.cpp index 0a1d24f48..a3be7fb43 100644 --- a/src/core/audio/audio_oss.cpp +++ b/src/core/audio/audio_oss.cpp @@ -36,6 +36,7 @@ #include "endian_handling.h" #include "lcd_spinbox.h" +#include "engine.h" #include "gui_templates.h" #include "templates.h" diff --git a/src/core/automatable_model.cpp b/src/core/automatable_model.cpp index f12290d9a..6c81141fe 100644 --- a/src/core/automatable_model.cpp +++ b/src/core/automatable_model.cpp @@ -417,6 +417,20 @@ void automatableModel::setControllerConnection( controllerConnection * _c ) +float automatableModel::controllerValue( int _frameOffset ) const +{ + const float v = m_minValue + + ( m_range * m_controllerConnection->currentValue( + _frameOffset ) ); + if( typeInfo::isEqual( m_step, 1 ) ) + { + return qRound( v ); + } + return v; +} + + + void automatableModel::unlinkControllerConnection( void ) { diff --git a/src/core/controller.cpp b/src/core/controller.cpp index 5ac52aaff..f3e8c582e 100644 --- a/src/core/controller.cpp +++ b/src/core/controller.cpp @@ -34,6 +34,7 @@ #include "engine.h" #include "mixer.h" #include "controller.h" +#include "controller_connection.h" #include "controller_dialog.h" #include "lfo_controller.h" #include "midi_controller.h" diff --git a/src/core/envelope_and_lfo_parameters.cpp b/src/core/envelope_and_lfo_parameters.cpp index def89f739..f18c257b7 100644 --- a/src/core/envelope_and_lfo_parameters.cpp +++ b/src/core/envelope_and_lfo_parameters.cpp @@ -32,6 +32,7 @@ #include "debug.h" #include "engine.h" +#include "mixer.h" #include "mmp.h" #include "oscillator.h" diff --git a/src/core/piano.cpp b/src/core/piano.cpp index aa50940c7..a731900d4 100644 --- a/src/core/piano.cpp +++ b/src/core/piano.cpp @@ -50,6 +50,7 @@ #include "automation_pattern.h" #include "caption_menu.h" #include "embed.h" +#include "engine.h" #include "gui_templates.h" #include "instrument_track.h" #include "knob.h" diff --git a/src/gui/fx_mixer_view.cpp b/src/gui/fx_mixer_view.cpp index e120b87fc..30c4d82fa 100644 --- a/src/gui/fx_mixer_view.cpp +++ b/src/gui/fx_mixer_view.cpp @@ -36,6 +36,7 @@ #include "fx_mixer_view.h" #include "fader.h" #include "effect_rack_view.h" +#include "engine.h" #include "embed.h" #include "main_window.h" #include "lcd_spinbox.h" diff --git a/src/gui/widgets/automatable_button.cpp b/src/gui/widgets/automatable_button.cpp index bf7f1dad4..fee79649a 100644 --- a/src/gui/widgets/automatable_button.cpp +++ b/src/gui/widgets/automatable_button.cpp @@ -32,6 +32,7 @@ #include #include "caption_menu.h" +#include "engine.h" #include "embed.h" #include "main_window.h" diff --git a/src/gui/widgets/automatable_slider.cpp b/src/gui/widgets/automatable_slider.cpp index 6ce0d1d23..83474f9f2 100644 --- a/src/gui/widgets/automatable_slider.cpp +++ b/src/gui/widgets/automatable_slider.cpp @@ -33,6 +33,7 @@ #include "caption_menu.h" #include "embed.h" +#include "engine.h" #include "main_window.h" diff --git a/src/gui/widgets/combobox.cpp b/src/gui/widgets/combobox.cpp index efae33c4c..5d67fb595 100644 --- a/src/gui/widgets/combobox.cpp +++ b/src/gui/widgets/combobox.cpp @@ -37,6 +37,7 @@ #include "automation_pattern.h" #include "caption_menu.h" +#include "engine.h" #include "embed.h" #include "gui_templates.h" #include "main_window.h" diff --git a/src/gui/widgets/envelope_and_lfo_view.cpp b/src/gui/widgets/envelope_and_lfo_view.cpp index 91afd5026..f665c22ba 100644 --- a/src/gui/widgets/envelope_and_lfo_view.cpp +++ b/src/gui/widgets/envelope_and_lfo_view.cpp @@ -39,6 +39,7 @@ #include "gui_templates.h" #include "knob.h" #include "led_checkbox.h" +#include "mixer.h" #include "mmp.h" #include "oscillator.h" #include "pixmap_button.h" diff --git a/src/gui/widgets/fader.cpp b/src/gui/widgets/fader.cpp index eb398c500..e27540553 100644 --- a/src/gui/widgets/fader.cpp +++ b/src/gui/widgets/fader.cpp @@ -51,6 +51,7 @@ #include "fader.h" #include "embed.h" +#include "engine.h" #include "caption_menu.h" #include "main_window.h" diff --git a/src/gui/widgets/instrument_midi_io_view.cpp b/src/gui/widgets/instrument_midi_io_view.cpp index 7149bc98e..1299a1a94 100644 --- a/src/gui/widgets/instrument_midi_io_view.cpp +++ b/src/gui/widgets/instrument_midi_io_view.cpp @@ -29,11 +29,13 @@ #include "instrument_midi_io_view.h" #include "midi_port_menu.h" +#include "engine.h" #include "embed.h" #include "group_box.h" #include "gui_templates.h" #include "lcd_spinbox.h" #include "midi_client.h" +#include "mixer.h" #include "tooltip.h" diff --git a/src/gui/widgets/knob.cpp b/src/gui/widgets/knob.cpp index bf8d05b6d..138bea0c3 100644 --- a/src/gui/widgets/knob.cpp +++ b/src/gui/widgets/knob.cpp @@ -43,6 +43,7 @@ #include "caption_menu.h" #include "config_mgr.h" +#include "controller_connection.h" #include "embed.h" #include "engine.h" #include "gui_templates.h" diff --git a/src/gui/widgets/lcd_spinbox.cpp b/src/gui/widgets/lcd_spinbox.cpp index ccd0e15fd..7a954241c 100644 --- a/src/gui/widgets/lcd_spinbox.cpp +++ b/src/gui/widgets/lcd_spinbox.cpp @@ -36,6 +36,7 @@ #include "lcd_spinbox.h" #include "caption_menu.h" +#include "engine.h" #include "embed.h" #include "gui_templates.h" #include "templates.h" diff --git a/src/tracks/automation_track.cpp b/src/tracks/automation_track.cpp index f734751b0..233715cdf 100644 --- a/src/tracks/automation_track.cpp +++ b/src/tracks/automation_track.cpp @@ -29,6 +29,7 @@ #include "automation_track.h" #include "automation_pattern.h" +#include "engine.h" #include "embed.h" #include "project_journal.h" #include "string_pair_drag.h"