From 543d9e4432f144f3b2140336cb8e416d8ed567ab Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Sun, 20 Apr 2008 22:05:25 -0500 Subject: [PATCH] Work on restorability of tracks. --- Timeline/Audio_Sequence.H | 6 ++++++ Timeline/Control_Sequence.C | 28 ++++++++++++++++++++++++++++ Timeline/Control_Sequence.H | 19 ++++++------------- Timeline/Loggable.C | 2 +- Timeline/Region.H | 3 +++ Timeline/Sequence.C | 4 ++-- Timeline/Track.C | 7 +++++++ Timeline/Track.H | 3 ++- 8 files changed, 55 insertions(+), 17 deletions(-) diff --git a/Timeline/Audio_Sequence.H b/Timeline/Audio_Sequence.H index 9566cf8..1bcd78d 100644 --- a/Timeline/Audio_Sequence.H +++ b/Timeline/Audio_Sequence.H @@ -74,6 +74,12 @@ public: Audio_Sequence ( Track *track ) : Sequence( 0, 0, 0, 0, track ) { + + _track = track; + + if ( track ) + track->add( this ); + log_create(); } diff --git a/Timeline/Control_Sequence.C b/Timeline/Control_Sequence.C index 9e72878..9c80132 100644 --- a/Timeline/Control_Sequence.C +++ b/Timeline/Control_Sequence.C @@ -20,6 +20,34 @@ #include "Control_Sequence.H" #include "Track.H" + + +Control_Sequence::Control_Sequence ( Track *track ) : Sequence( 0, 0, 0, 0 ) +{ + init(); + + _track = track; + + if ( track ) + track->add( this ); + + log_create(); +} + + +Control_Sequence::~Control_Sequence ( ) +{ + log_destroy(); +} + +void +Control_Sequence::init ( void ) +{ + _track = NULL; + + color( fl_darker( FL_GREEN ) ); +} + void Control_Sequence::get ( Log_Entry &e ) { diff --git a/Timeline/Control_Sequence.H b/Timeline/Control_Sequence.H index c2296bc..0cabe16 100644 --- a/Timeline/Control_Sequence.H +++ b/Timeline/Control_Sequence.H @@ -25,32 +25,25 @@ class Control_Sequence : public Sequence { + void init ( void ); + protected: void get ( Log_Entry &e ); void set ( Log_Entry &e ); - Control_Sequence ( ) : Sequence( 0, 0, 1, 1 ) + Control_Sequence ( ) : Sequence( 0, 0, 0, 1 ) { - + init(); } public: LOG_CREATE_FUNC( Control_Sequence ); - Control_Sequence ( Track *track ) : Sequence( 0, 0, 0, 0, track ) - { - color( fl_darker( FL_GREEN ) ); - - log_create(); - } - - ~Control_Sequence ( ) - { - log_destroy(); - } + Control_Sequence ( Track * ); + ~Control_Sequence ( ); const char *class_name ( void ) { return "Control_Sequence"; } diff --git a/Timeline/Loggable.C b/Timeline/Loggable.C index b60f393..a50acb2 100644 --- a/Timeline/Loggable.C +++ b/Timeline/Loggable.C @@ -380,7 +380,7 @@ Loggable::flush ( void ) { if ( ! _fp ) { - printf( "error: no log file open!\n" ); +// printf( "error: no log file open!\n" ); while ( ! _transaction.empty() ) { diff --git a/Timeline/Region.H b/Timeline/Region.H index d0cf533..80aead4 100644 --- a/Timeline/Region.H +++ b/Timeline/Region.H @@ -109,6 +109,7 @@ protected: { e.add( ":source", _clip ? _clip->name() : "" ); e.add( ":gain", _scale ); + e.add( ":color", (int)_box_color ); Sequence_Widget::get( e ); } @@ -124,6 +125,8 @@ protected: if ( ! strcmp( s, ":gain" ) ) _scale = atof( v ); + if ( ! strcmp( s, ":color" ) ) + _box_color = (Fl_Color)atoi( v ); else if ( ! strcmp( s, ":source" ) ) { if ( ! ( _clip = Audio_File::from_file( v ) ) ) diff --git a/Timeline/Sequence.C b/Timeline/Sequence.C index d384ada..e1afbd5 100644 --- a/Timeline/Sequence.C +++ b/Timeline/Sequence.C @@ -33,8 +33,8 @@ Sequence::Sequence ( int X, int Y, int W, int H, Track *track ) : Fl_Widget( X, _name = NULL; _track = track; - if ( track ) - track->add( this ); +/* if ( track ) */ +/* track->add( this ); */ box( FL_DOWN_BOX ); color( fl_darker( FL_GRAY ) ); diff --git a/Timeline/Track.C b/Timeline/Track.C index c5fd208..5d8a043 100644 --- a/Timeline/Track.C +++ b/Timeline/Track.C @@ -303,6 +303,9 @@ void Track::remove ( Sequence *t ) { takes->remove( t ); + + resize(); + // take_menu->remove( t->name() ); } @@ -310,6 +313,8 @@ void Track::remove ( Control_Sequence *t ) { control->remove( t ); + + resize(); } void @@ -329,6 +334,8 @@ Track::track ( Sequence * t ) void Track::add ( Control_Sequence *t ) { + printf( "adding control sequence\n" ); + t->track( this ); control->add( t ); diff --git a/Timeline/Track.H b/Timeline/Track.H index 2488de2..1132791 100644 --- a/Timeline/Track.H +++ b/Timeline/Track.H @@ -119,7 +119,8 @@ public: { size( atoi( v ) ); - Fl_Widget::size( w(), height() ); +// Fl_Widget::size( w(), height() ); + resize(); } else if ( ! strcmp( s, ":s" ) ) _selected = atoi( v );