mirror of
https://github.com/LMMS/lmms.git
synced 2026-03-10 18:19:42 -04:00
ResourcePreviewer: save and restore default settings of InstrumentTrack
After instantiation of InstrumentTrack save its settings so we can restore it each time before previewing resources. Otherwise preview of incomplete presets or just samples could be distorted by settings of previosly loaded preset. Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
#define _RESOURCE_PREVIEWER_H
|
||||
|
||||
#include "track_container.h"
|
||||
#include "mmp.h"
|
||||
|
||||
class Piano;
|
||||
class ResourceItem;
|
||||
@@ -57,6 +58,8 @@ private:
|
||||
PreviewTrackContainer m_previewTrackContainer;
|
||||
instrumentTrack * m_previewTrack;
|
||||
|
||||
multimediaProject m_defaultSettings;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
|
||||
ResourcePreviewer::ResourcePreviewer() :
|
||||
m_previewTrackContainer(),
|
||||
m_previewTrack( NULL )
|
||||
m_previewTrack( NULL ),
|
||||
m_defaultSettings( multimediaProject::InstrumentTrackSettings )
|
||||
{
|
||||
// do not clutter global journal with items due to changing settings
|
||||
// in preview classes
|
||||
@@ -45,10 +46,14 @@ ResourcePreviewer::ResourcePreviewer() :
|
||||
m_previewTrack = dynamic_cast<instrumentTrack *>(
|
||||
track::create( track::InstrumentTrack,
|
||||
&m_previewTrackContainer ) );
|
||||
|
||||
// save default settings so we can restore them later
|
||||
m_previewTrack->saveSettings( m_defaultSettings,
|
||||
m_defaultSettings.content() );
|
||||
|
||||
// make sure a default instrument is loaded
|
||||
m_previewTrack->loadInstrument( "tripleoscillator" );
|
||||
m_previewTrack->setJournalling( false );
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -72,6 +77,12 @@ 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() );
|
||||
|
||||
switch( _item->type() )
|
||||
{
|
||||
case ResourceItem::TypePreset:
|
||||
|
||||
Reference in New Issue
Block a user