Timeline: Don't forget to log changing takes after the fact.

pull/119/merge
Jonathan Moore Liles 2020-10-25 21:57:21 -07:00
parent 0157734a30
commit 54e8737a90
2 changed files with 31 additions and 5 deletions

View File

@ -177,7 +177,8 @@ Audio_Sequence::set ( Log_Entry &e )
assert( t ); assert( t );
t->sequence( this ); /* FIXME: this causes the sequences to be set twice in the replay logic, first when the sequence is created, then when track sequence is assigned. */
t->sequence( this );
} }
else if ( ! strcmp( ":name", s ) ) else if ( ! strcmp( ":name", s ) )
name( v ); name( v );

View File

@ -134,7 +134,7 @@ Track::init ( void )
_name = NULL; _name = NULL;
_selected = false; _selected = false;
_size = 1; _size = 1;
record_ds = NULL; record_ds = NULL;
playback_ds = NULL; playback_ds = NULL;
@ -604,6 +604,15 @@ Track::remove ( Audio_Sequence *t )
if ( ! takes ) if ( ! takes )
return; return;
Loggable::block_start();
Logger log(this);
if ( t->id() == 0x2785 )
{
WARNING( "****** 0x2785 removed here *****");
}
if ( sequence() == t ) if ( sequence() == t )
{ {
pack->remove( t ); pack->remove( t );
@ -617,8 +626,10 @@ Track::remove ( Audio_Sequence *t )
else else
takes->remove( t ); takes->remove( t );
/* delete t; */ delete t;
Loggable::block_end();
adjust_size(); adjust_size();
} }
@ -647,9 +658,18 @@ Track::remove ( Control_Sequence *t )
void void
Track::sequence ( Audio_Sequence * t ) Track::sequence ( Audio_Sequence * t )
{ {
Logger log(this);
/* FIXME: testing */
if ( sequence() != NULL && sequence()->id() == 0x2785 )
{
DMESSAGE( "****** Here *****");
}
if ( sequence() == t ) if ( sequence() == t )
{ {
DMESSAGE( "Attempt to set sequence twice" ); /* ASSERT( false, "Attempt to set same sequence twice" ); */
DMESSAGE( "Attempt to set same sequence twice, %p == %p", t, sequence() );
return; return;
} }
@ -873,8 +893,13 @@ Track::menu_cb ( const Fl_Menu_ *m )
else if ( !strcmp( picked, "Takes/New" ) ) else if ( !strcmp( picked, "Takes/New" ) )
{ {
timeline->track_lock.wrlock(); timeline->track_lock.wrlock();
Loggable::block_start();
sequence( (Audio_Sequence*)sequence()->clone_empty() ); sequence( (Audio_Sequence*)sequence()->clone_empty() );
timeline->track_lock.unlock(); timeline->track_lock.unlock();
Loggable::block_end();
} }
else if ( !strcmp( picked, "Takes/Remove" ) ) else if ( !strcmp( picked, "Takes/Remove" ) )
{ {
@ -909,7 +934,7 @@ Track::menu_cb ( const Fl_Menu_ *m )
else if ( !strncmp( picked, "Takes/", sizeof( "Takes/" ) - 1 ) ) else if ( !strncmp( picked, "Takes/", sizeof( "Takes/" ) - 1 ) )
{ {
Audio_Sequence* s = (Audio_Sequence*)m->mvalue()->user_data(); Audio_Sequence* s = (Audio_Sequence*)m->mvalue()->user_data();
timeline->track_lock.wrlock(); timeline->track_lock.wrlock();
sequence( s ); sequence( s );
timeline->track_lock.unlock(); timeline->track_lock.unlock();