From 6785d3b436e9b92cfee94c470ed9565c4305f741 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Tue, 16 Sep 2008 12:31:14 +0000 Subject: [PATCH] * do not show messages about missing plugins when previewing presets (closes #2110203) * clear effect view before loading settings in effectChain git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1612 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 17 +++++++++++++++++ include/effect_chain.h | 9 +++++++-- include/effect_rack_view.h | 3 +-- include/engine.h | 11 +++++++++++ plugins/ladspa_effect/ladspa_effect.cpp | 10 +++++++--- src/core/effect_chain.cpp | 11 +++++++---- src/core/engine.cpp | 3 ++- src/core/preset_preview_play_handle.cpp | 4 ++++ src/gui/widgets/effect_rack_view.cpp | 2 ++ 9 files changed, 58 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 958a7a334..f9f1134c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2008-09-16 Tobias Doerffel + + * plugins/ladspa_effect/ladspa_effect.cpp: + * include/engine.h: + * include/effect_rack_view.h: + * include/effect_chain.h: + * src/core/effect_chain.cpp: + * src/core/preset_preview_play_handle.cpp: + * src/core/engine.cpp: + * src/gui/widgets/effect_rack_view.cpp: + - do not show messages about missing plugins when previewing + presets (closes #2110203) + - clear effect view before loading settings in effectChain + + * CMakeLists.txt: + improved out-of-tree builds + 2008-09-14 Csaba Hruska * src/core/audio/audio_portaudio.cpp: diff --git a/include/effect_chain.h b/include/effect_chain.h index 02d1f4efc..8849648cd 100644 --- a/include/effect_chain.h +++ b/include/effect_chain.h @@ -27,15 +27,16 @@ #define _EFFECT_CHAIN_H #include "mv_base.h" -#include "journalling_object.h" +#include "serializing_object.h" #include "mixer.h" #include "automatable_model.h" class effect; -class effectChain : public journallingObject, public model +class effectChain : public model, public serializingObject { + Q_OBJECT public: effectChain( model * _parent ); virtual ~effectChain(); @@ -68,6 +69,10 @@ private: friend class effectRackView; + +signals: + void aboutToClear( void ); + } ; #endif diff --git a/include/effect_rack_view.h b/include/effect_rack_view.h index deb3ebec7..d4ba3eb76 100644 --- a/include/effect_rack_view.h +++ b/include/effect_rack_view.h @@ -45,10 +45,9 @@ public: effectRackView( effectChain * _model, QWidget * _parent = NULL ); virtual ~effectRackView(); - void clearViews( void ); - public slots: + void clearViews( void ); void moveUp( effectView * _view ); void moveDown( effectView * _view ); void deletePlugin( effectView * _view ); diff --git a/include/engine.h b/include/engine.h index 638abdd2e..bac427a53 100644 --- a/include/engine.h +++ b/include/engine.h @@ -60,6 +60,16 @@ public: return( s_hasGUI ); } + static void setSuppressMessages( bool _on ) + { + s_suppressMessages = _on; + } + + static bool suppressMessages( void ) + { + return !s_hasGUI || s_suppressMessages; + } + // core static mixer * getMixer( void ) { @@ -151,6 +161,7 @@ public: private: static bool s_hasGUI; + static bool s_suppressMessages; static float s_framesPerTick; // core diff --git a/plugins/ladspa_effect/ladspa_effect.cpp b/plugins/ladspa_effect/ladspa_effect.cpp index 22e008b10..a61df3a32 100644 --- a/plugins/ladspa_effect/ladspa_effect.cpp +++ b/plugins/ladspa_effect/ladspa_effect.cpp @@ -71,9 +71,13 @@ ladspaEffect::ladspaEffect( model * _parent, ladspa2LMMS * manager = engine::getLADSPAManager(); if( manager->getDescription( m_key ) == NULL ) { - QMessageBox::warning( 0, "Effect", - "Unknown LADSPA plugin requested: " + m_key.second, - QMessageBox::Ok, QMessageBox::NoButton ); + if( !engine::suppressMessages() ) + { + QMessageBox::warning( 0, tr( "Effect" ), + tr( "Unknown LADSPA plugin %1 requested." ). + arg( m_key.second ), + QMessageBox::Ok, QMessageBox::NoButton ); + } setOkay( FALSE ); return; } diff --git a/src/core/effect_chain.cpp b/src/core/effect_chain.cpp index e95c8e1b7..6211ec766 100644 --- a/src/core/effect_chain.cpp +++ b/src/core/effect_chain.cpp @@ -1,5 +1,3 @@ -#ifndef SINGLE_SOURCE_COMPILE - /* * effect_chain.cpp - class for processing and effects chain * @@ -38,6 +36,7 @@ effectChain::effectChain( model * _parent ) : model( _parent ), + serializingObject(), m_enabledModel( FALSE, NULL, tr( "Effects enabled" ) ) { } @@ -253,7 +252,9 @@ bool effectChain::isRunning( void ) void effectChain::clear( void ) { - m_enabledModel.setValue( FALSE ); + emit aboutToClear(); + + m_enabledModel.setValue( false ); for( int i = 0; i < m_effects.count(); ++i ) { delete m_effects[i]; @@ -262,4 +263,6 @@ void effectChain::clear( void ) } -#endif + +#include "moc_effect_chain.cxx" + diff --git a/src/core/engine.cpp b/src/core/engine.cpp index 7d0597a04..ded865e40 100644 --- a/src/core/engine.cpp +++ b/src/core/engine.cpp @@ -45,7 +45,8 @@ #include "song.h" -bool engine::s_hasGUI = TRUE; +bool engine::s_hasGUI = true; +bool engine::s_suppressMessages = false; float engine::s_framesPerTick; mixer * engine::s_mixer = NULL; fxMixer * engine::s_fxMixer = NULL; diff --git a/src/core/preset_preview_play_handle.cpp b/src/core/preset_preview_play_handle.cpp index 2d2f2d2b8..237a27f2a 100644 --- a/src/core/preset_preview_play_handle.cpp +++ b/src/core/preset_preview_play_handle.cpp @@ -120,6 +120,8 @@ presetPreviewPlayHandle::presetPreviewPlayHandle( const QString & _preset_file, const bool j = engine::getProjectJournal()->isJournalling(); engine::getProjectJournal()->setJournalling( FALSE ); + engine::setSuppressMessages( true ); + if( _load_by_plugin ) { instrument * i = s_previewTC->previewInstrumentTrack()-> @@ -145,6 +147,8 @@ presetPreviewPlayHandle::presetPreviewPlayHandle( const QString & _preset_file, mmp.content().firstChild().toElement() ); } + engine::setSuppressMessages( false ); + // make sure, our preset-preview-track does not appear in any MIDI- // devices list, so just disable receiving/sending MIDI-events at all s_previewTC->previewInstrumentTrack()->m_midiPort.setMode( diff --git a/src/gui/widgets/effect_rack_view.cpp b/src/gui/widgets/effect_rack_view.cpp index 12c5028fc..4905cb3ab 100644 --- a/src/gui/widgets/effect_rack_view.cpp +++ b/src/gui/widgets/effect_rack_view.cpp @@ -246,6 +246,8 @@ void effectRackView::modelChanged( void ) { clearViews(); m_effectsGroupBox->setModel( &fxChain()->m_enabledModel ); + connect( fxChain(), SIGNAL( aboutToClear() ), + this, SLOT( clearViews() ) ); update(); }