From fe152801f6352f7912ec8f6ea661e81b8382a236 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Wed, 17 Jun 2009 10:37:09 +0200 Subject: [PATCH] ResourcePreviewer: no preview for unhandled resource types Don't do anything in case a ResourceItem can't be previewed. Up to now a default sine sound was played back even when just clicking a directory item. Signed-off-by: Tobias Doerffel --- src/core/ResourcePreviewer.cpp | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/src/core/ResourcePreviewer.cpp b/src/core/ResourcePreviewer.cpp index 0857558e3..2e40213f3 100644 --- a/src/core/ResourcePreviewer.cpp +++ b/src/core/ResourcePreviewer.cpp @@ -77,15 +77,16 @@ void ResourcePreviewer::preview( ResourceItem * _item ) engine::getProjectJournal()->setJournalling( false ); engine::setSuppressMessages( true ); - // restore default settings, in case we're going to load an incomplete - // preset or are going to preview a sample (which should be played at - // a default instrument track) - m_previewTrack->loadTrackSpecificSettings( - m_defaultSettings.content().firstChild().toElement() ); - + // handle individual resource types + bool handledItem = true; switch( _item->type() ) { case ResourceItem::TypePreset: + // restore default settings, in case we're going to load + // an incomplete preset + m_previewTrack->loadTrackSpecificSettings( + m_defaultSettings.content(). + firstChild().toElement() ); // fetch data, load into multimedia project and // load it as preset m_previewTrack->loadTrackSpecificSettings( @@ -97,6 +98,14 @@ void ResourcePreviewer::preview( ResourceItem * _item ) case ResourceItem::TypeSample: case ResourceItem::TypeSoundFont: { + // restore default settings we are going to preview a + // sample (which should be played at a default + // instrument track) + m_previewTrack->loadTrackSpecificSettings( + m_defaultSettings.content(). + firstChild().toElement() ); + // if neccessary, load according instrument for the + // file to be previewed instrument * i = m_previewTrack->getInstrument(); const QString ext = QFileInfo( _item->name() ). suffix().toLower(); @@ -113,16 +122,22 @@ void ResourcePreviewer::preview( ResourceItem * _item ) } break; } + default: + handledItem = false; + break; } // re-enable journalling engine::setSuppressMessages( false ); engine::getProjectJournal()->setJournalling( j ); - // playback default note - m_previewTrack->processInEvent( - midiEvent( MidiNoteOn, 0, DefaultKey, MidiMaxVelocity ), + if( handledItem ) + { + // playback default note + m_previewTrack->processInEvent( + midiEvent( MidiNoteOn, 0, DefaultKey, MidiMaxVelocity ), midiTime() ); + } }