From c5280c26ce54df998b632b1a40b0f8cba21ce265 Mon Sep 17 00:00:00 2001 From: Javier Serrano Polo Date: Thu, 24 Aug 2006 00:18:36 +0000 Subject: [PATCH] allow access to the frozen pattern git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@359 0778d3d1-df1d-0410-868b-ea421aaaa00d --- include/pattern.h | 5 +++++ src/tracks/pattern.cpp | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/include/pattern.h b/include/pattern.h index 2f86f98bb..7e5f92f48 100644 --- a/include/pattern.h +++ b/include/pattern.h @@ -139,6 +139,11 @@ public: return( m_frozenPattern != NULL ); } + sampleBuffer * getFrozenPattern( void ) + { + return( m_frozenPattern ); + } + // if channel-track recognizes that this pattern is frozen, it calls // this instead of playing all the notes void FASTCALL playFrozenData( sampleFrame * _ab, diff --git a/src/tracks/pattern.cpp b/src/tracks/pattern.cpp index 47fba394c..635bcb40a 100644 --- a/src/tracks/pattern.cpp +++ b/src/tracks/pattern.cpp @@ -147,7 +147,10 @@ pattern::~pattern() m_notes.clear(); m_frozenPatternMutex.lock(); - delete m_frozenPattern; + if( m_frozenPattern ) + { + sharedObject::unref( m_frozenPattern ); + } m_frozenPatternMutex.unlock(); } @@ -396,6 +399,7 @@ void pattern::checkType( void ) +//TODO: remove this method, check mutex void pattern::playFrozenData( sampleFrame * _ab, const f_cnt_t _start_frame, const fpab_t _frames ) { @@ -608,7 +612,7 @@ void pattern::unfreeze( void ) if( m_frozenPattern != NULL ) { m_frozenPatternMutex.lock(); - delete m_frozenPattern; + sharedObject::unref( m_frozenPattern ); m_frozenPattern = NULL; m_frozenPatternMutex.unlock(); update();