| @@ -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(); | |||||
| } | } | ||||