From 8698a264f985573e116aded51f1ec5e6bd0b33a9 Mon Sep 17 00:00:00 2001 From: Javier Serrano Polo Date: Sat, 8 Jul 2006 00:13:40 +0000 Subject: [PATCH] added automation track git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@210 0778d3d1-df1d-0410-868b-ea421aaaa00d --- include/track.h | 3 ++- src/core/track.cpp | 23 ++++++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/include/track.h b/include/track.h index 04610beb7..63334a0fe 100644 --- a/include/track.h +++ b/include/track.h @@ -397,10 +397,11 @@ public: EVENT_TRACK, VIDEO_TRACK, NULL_TRACK, + AUTOMATION_TRACK, TOTAL_TRACK_TYPES } ; - track( trackContainer * _tc ); + track( trackContainer * _tc, bool _create_widget = TRUE ); virtual ~track(); static track * FASTCALL create( trackTypes _tt, trackContainer * _tc ); diff --git a/src/core/track.cpp b/src/core/track.cpp index b04b4fd4a..d5411eb0f 100644 --- a/src/core/track.cpp +++ b/src/core/track.cpp @@ -51,6 +51,7 @@ #include "track.h" #include "track_container.h" +#include "automation_track.h" #include "instrument_track.h" #include "bb_track.h" #include "sample_track.h" @@ -1473,14 +1474,18 @@ midiTime trackWidget::endPosition( const midiTime & _pos_start ) // track // =========================================================================== -track::track( trackContainer * _tc ) : +track::track( trackContainer * _tc, bool _create_widget ) : journallingObject( _tc->eng() ), - m_trackContainer( _tc ) + m_trackContainer( _tc ), + m_trackWidget( NULL ) { - m_trackWidget = new trackWidget( this, + if( _create_widget ) + { + m_trackWidget = new trackWidget( this, m_trackContainer->containerWidget() ); - m_trackContainer->addTrack( this ); + m_trackContainer->addTrack( this ); + } } @@ -1488,10 +1493,13 @@ track::track( trackContainer * _tc ) : track::~track() { - m_trackContainer->removeTrack( this ); + if( m_trackWidget != NULL ) + { + m_trackContainer->removeTrack( this ); - delete m_trackWidget; - m_trackWidget = NULL; + delete m_trackWidget; + m_trackWidget = NULL; + } } @@ -1512,6 +1520,7 @@ track * track::create( trackTypes _tt, trackContainer * _tc ) case SAMPLE_TRACK: t = new sampleTrack( _tc ); break; // case EVENT_TRACK: // case VIDEO_TRACK: + case AUTOMATION_TRACK: t = new automationTrack( _tc ); break; default: break; }