@@ -6,7 +6,7 @@ FLTK_LIBS := `fltk-config --ldflags` | |||||
JACK_LIBS := `pkg-config --libs jack` | JACK_LIBS := `pkg-config --libs jack` | ||||
SNDFILE_LIBS := `pkg-config --libs sndfile` | SNDFILE_LIBS := `pkg-config --libs sndfile` | ||||
CXXFLAGS := -DVERSION=\"$(VERSION)\" -ggdb -Wall -O0 -fno-rtti -fno-exceptions | |||||
CXXFLAGS := -DVERSION=\"$(VERSION)\" -ggdb -Wextra -Wno-missing-field-initializers -O0 -fno-rtti -fno-exceptions | |||||
all: makedepend FL Timeline Mixer | all: makedepend FL Timeline Mixer | ||||
@@ -77,10 +77,9 @@ public: | |||||
log_create(); | log_create(); | ||||
} | } | ||||
Annotation_Point ( const Annotation_Point &rhs ) | |||||
Annotation_Point ( const Annotation_Point &rhs ) : Sequence_Point( rhs ) | |||||
{ | { | ||||
_r->start = rhs._r->start; | |||||
_label = strdup( rhs._label ); | |||||
log_create(); | |||||
} | } | ||||
~Annotation_Point ( ) | ~Annotation_Point ( ) | ||||
@@ -62,12 +62,11 @@ Annotation_Region::Annotation_Region ( Sequence *sequence, nframes_t when, const | |||||
log_create(); | log_create(); | ||||
} | } | ||||
Annotation_Region::Annotation_Region ( const Annotation_Region &rhs ) | |||||
Annotation_Region::Annotation_Region ( const Annotation_Region &rhs ) : Sequence_Region( rhs ) | |||||
{ | { | ||||
_r->start = rhs._r->start; | |||||
_r->length = rhs._r->length; | |||||
_label = strdup( rhs._label ); | _label = strdup( rhs._label ); | ||||
log_create(); | |||||
} | } | ||||
@@ -49,6 +49,8 @@ protected: | |||||
_label = NULL; | _label = NULL; | ||||
} | } | ||||
Annotation_Region ( const Annotation_Region &rhs ); | |||||
public: | public: | ||||
/* for loggable */ | /* for loggable */ | ||||
@@ -56,7 +58,6 @@ public: | |||||
SEQUENCE_WIDGET_CLONE_FUNC( Annotation_Region ); | SEQUENCE_WIDGET_CLONE_FUNC( Annotation_Region ); | ||||
Annotation_Region ( Sequence *track, nframes_t when, const char *name ); | Annotation_Region ( Sequence *track, nframes_t when, const char *name ); | ||||
Annotation_Region ( const Annotation_Region &rhs ); | |||||
virtual ~Annotation_Region ( ); | virtual ~Annotation_Region ( ); | ||||
void draw_box ( void ); | void draw_box ( void ); | ||||
@@ -127,9 +127,9 @@ Audio_Region::init ( void ) | |||||
} | } | ||||
/* copy constructor */ | /* copy constructor */ | ||||
Audio_Region::Audio_Region ( const Audio_Region & rhs ) | |||||
Audio_Region::Audio_Region ( const Audio_Region & rhs ) : Sequence_Region( rhs ) | |||||
{ | { | ||||
*((Sequence_Region*)this) = (Sequence_Region &)rhs; | |||||
// *((Sequence_Region*)this) = (Sequence_Region &)rhs; | |||||
_clip = rhs._clip; | _clip = rhs._clip; | ||||
_scale = rhs._scale; | _scale = rhs._scale; | ||||
@@ -29,10 +29,11 @@ Control_Point::Control_Point ( Sequence *t, nframes_t when, float y ) | |||||
log_create(); | log_create(); | ||||
} | } | ||||
Control_Point::Control_Point ( const Control_Point &rhs ) | |||||
Control_Point::Control_Point ( const Control_Point &rhs ) : Sequence_Point( rhs ) | |||||
{ | { | ||||
_r->start = rhs._r->start; | |||||
_y = rhs._y; | _y = rhs._y; | ||||
log_create(); | |||||
} | } | ||||
void | void | ||||
@@ -36,6 +36,8 @@ protected: | |||||
virtual void get ( Log_Entry &e ) const; | virtual void get ( Log_Entry &e ) const; | ||||
virtual void set ( Log_Entry &e ); | virtual void set ( Log_Entry &e ); | ||||
Control_Point ( const Control_Point &rhs ); | |||||
public: | public: | ||||
@@ -44,7 +46,6 @@ public: | |||||
SEQUENCE_WIDGET_CLONE_FUNC( Control_Point ); | SEQUENCE_WIDGET_CLONE_FUNC( Control_Point ); | ||||
Control_Point ( Sequence *t, nframes_t when, float y ); | Control_Point ( Sequence *t, nframes_t when, float y ); | ||||
Control_Point ( const Control_Point &rhs ); | |||||
~Control_Point ( ) | ~Control_Point ( ) | ||||
{ | { | ||||
@@ -223,6 +223,13 @@ protected: | |||||
void log_create ( void ) const; | void log_create ( void ) const; | ||||
void log_destroy ( void ) const; | void log_destroy ( void ) const; | ||||
/* leaf subclasses *must* call log_create() at the end of their copy contructors */ | |||||
Loggable ( const Loggable &rhs ) | |||||
{ | |||||
/* FIXME: get a real id here!!! */ | |||||
_id = 0; | |||||
} | |||||
public: | public: | ||||
// virtual const char *class_name ( void ) const = 0; | // virtual const char *class_name ( void ) const = 0; | ||||
@@ -28,8 +28,6 @@ Sequence_Point::get ( Log_Entry &e ) const | |||||
void | void | ||||
Sequence_Point::set ( Log_Entry &e ) | Sequence_Point::set ( Log_Entry &e ) | ||||
{ | { | ||||
Sequence_Widget::set( e ); | |||||
for ( int i = 0; i < e.size(); ++i ) | for ( int i = 0; i < e.size(); ++i ) | ||||
{ | { | ||||
const char *s, *v; | const char *s, *v; | ||||
@@ -42,6 +40,8 @@ Sequence_Point::set ( Log_Entry &e ) | |||||
} | } | ||||
} | } | ||||
Sequence_Widget::set( e ); | |||||
} | } | ||||
static void | static void | ||||
@@ -31,6 +31,12 @@ protected: | |||||
void get ( Log_Entry &e ) const; | void get ( Log_Entry &e ) const; | ||||
void set ( Log_Entry &e ); | void set ( Log_Entry &e ); | ||||
Sequence_Point ( const Sequence_Point &rhs ) : Sequence_Widget( rhs ) | |||||
{ | |||||
if ( _label ) | |||||
_label = strdup( rhs._label ); | |||||
} | |||||
public: | public: | ||||
const char *name ( void ) const { return _label; } | const char *name ( void ) const { return _label; } | ||||
@@ -43,6 +43,11 @@ protected: | |||||
} | } | ||||
Sequence_Region ( const Sequence_Region &rhs ) : Sequence_Widget( rhs ) | |||||
{ | |||||
} | |||||
public: | public: | ||||
LOG_NAME_FUNC( Region ); | LOG_NAME_FUNC( Region ); | ||||
@@ -64,8 +64,6 @@ class Sequence_Widget : public Loggable | |||||
static Fl_Color _selection_color; | static Fl_Color _selection_color; | ||||
/* can't have this */ | |||||
Sequence_Widget ( const Sequence_Widget &rhs ); | |||||
protected: | protected: | ||||
@@ -82,6 +80,20 @@ protected: | |||||
virtual void get ( Log_Entry &e ) const; | virtual void get ( Log_Entry &e ) const; | ||||
virtual void set ( Log_Entry &e ); | virtual void set ( Log_Entry &e ); | ||||
/* careful with this, it doesn't journal */ | |||||
Sequence_Widget ( const Sequence_Widget &rhs ) : Loggable( rhs ) | |||||
{ | |||||
_drag = NULL; | |||||
_sequence = rhs._sequence; | |||||
_range = rhs._range; | |||||
_r = &_range; | |||||
_color = rhs._color; | |||||
_box_color = rhs._box_color; | |||||
}; | |||||
public: | public: | ||||
Sequence_Widget ( ) | Sequence_Widget ( ) | ||||
@@ -25,8 +25,9 @@ | |||||
void | void | ||||
Tempo_Point::get ( Log_Entry &e ) const | Tempo_Point::get ( Log_Entry &e ) const | ||||
{ | { | ||||
Sequence_Point::get( e ); | |||||
// Sequence_Point::get( e ); | |||||
e.add( ":start", start() ); | |||||
e.add( ":tempo", _tempo ); | e.add( ":tempo", _tempo ); | ||||
} | } | ||||
@@ -55,10 +55,11 @@ public: | |||||
~Tempo_Point ( ); | ~Tempo_Point ( ); | ||||
Tempo_Point ( const Tempo_Point &rhs ) | |||||
Tempo_Point ( const Tempo_Point &rhs ) : Sequence_Point( rhs ) | |||||
{ | { | ||||
_r->offset = rhs._r->offset; | |||||
_tempo = rhs._tempo; | _tempo = rhs._tempo; | ||||
log_create(); | |||||
} | } | ||||
@@ -24,9 +24,9 @@ | |||||
void | void | ||||
Time_Point::get ( Log_Entry &e ) const | Time_Point::get ( Log_Entry &e ) const | ||||
{ | { | ||||
// Sequence_Point::get( e ); | |||||
Sequence_Point::get( e ); | |||||
e.add( ":start", start() ); | |||||
e.add( ":beats_per_bar", _time.beats_per_bar ); | e.add( ":beats_per_bar", _time.beats_per_bar ); | ||||
e.add( ":beat_type", _time.beat_type ); | e.add( ":beat_type", _time.beat_type ); | ||||
} | } | ||||
@@ -74,8 +74,9 @@ Time_Point::Time_Point ( nframes_t when, int bpb, int note ) : _time( bpb, note | |||||
log_create(); | log_create(); | ||||
} | } | ||||
Time_Point::Time_Point ( const Time_Point &rhs ) | |||||
Time_Point::Time_Point ( const Time_Point &rhs ) : Sequence_Point( rhs ) | |||||
{ | { | ||||
_r->offset = rhs._r->offset; | |||||
_time = rhs._time; | _time = rhs._time; | ||||
log_create(); | |||||
} | } |