| @@ -64,6 +64,7 @@ public: | |||||
| /* for loggable */ | /* for loggable */ | ||||
| LOG_CREATE_FUNC( Annotation_Point ); | LOG_CREATE_FUNC( Annotation_Point ); | ||||
| SEQUENCE_WIDGET_CLONE_FUNC( Annotation_Point ); | |||||
| Annotation_Point ( Sequence *sequence, nframes_t when, const char *name ) | Annotation_Point ( Sequence *sequence, nframes_t when, const char *name ) | ||||
| { | { | ||||
| @@ -82,11 +83,6 @@ public: | |||||
| _label = strdup( rhs._label ); | _label = strdup( rhs._label ); | ||||
| } | } | ||||
| Sequence_Widget *clone ( const Sequence_Widget *r ) | |||||
| { | |||||
| return new Annotation_Point( *(Annotation_Point*)r ); | |||||
| } | |||||
| ~Annotation_Point ( ) | ~Annotation_Point ( ) | ||||
| { | { | ||||
| log_destroy(); | log_destroy(); | ||||
| @@ -53,6 +53,7 @@ public: | |||||
| /* for loggable */ | /* for loggable */ | ||||
| LOG_CREATE_FUNC( Annotation_Region ); | LOG_CREATE_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 ); | Annotation_Region ( const Annotation_Region &rhs ); | ||||
| @@ -62,9 +63,4 @@ public: | |||||
| void draw ( void ); | void draw ( void ); | ||||
| int handle ( int m ); | int handle ( int m ); | ||||
| Sequence_Widget *clone ( const Sequence_Widget *r ) | |||||
| { | |||||
| return new Annotation_Region( *(Annotation_Region*)r ); | |||||
| } | |||||
| }; | }; | ||||
| @@ -140,12 +140,6 @@ Audio_Region::Audio_Region ( const Audio_Region & rhs ) | |||||
| log_create(); | log_create(); | ||||
| } | } | ||||
| Sequence_Widget * | |||||
| Audio_Region::clone ( const Sequence_Widget *r ) | |||||
| { | |||||
| return new Audio_Region( *(Audio_Region*)r ); | |||||
| } | |||||
| /* */ | /* */ | ||||
| Audio_Region::Audio_Region ( Audio_File *c ) | Audio_Region::Audio_Region ( Audio_File *c ) | ||||
| { | { | ||||
| @@ -383,7 +377,7 @@ Audio_Region::handle ( int m ) | |||||
| int d = (ox + X) - x(); | int d = (ox + X) - x(); | ||||
| long td = timeline->x_to_ts( d ); | long td = timeline->x_to_ts( d ); | ||||
| if ( td > 0 && os < td ) | |||||
| if ( td > 0 && os < (nframes_t)td ) | |||||
| _r->offset = 0; | _r->offset = 0; | ||||
| else | else | ||||
| _r->offset = os - td; | _r->offset = os - td; | ||||
| @@ -127,7 +127,7 @@ public: | |||||
| LOG_CREATE_FUNC( Audio_Region ); | LOG_CREATE_FUNC( Audio_Region ); | ||||
| Sequence_Widget *clone ( const Sequence_Widget *r ); | |||||
| SEQUENCE_WIDGET_CLONE_FUNC( Audio_Region ); | |||||
| ~Audio_Region ( ) | ~Audio_Region ( ) | ||||
| { | { | ||||
| @@ -41,12 +41,7 @@ public: | |||||
| /* for loggable */ | /* for loggable */ | ||||
| LOG_CREATE_FUNC( Control_Point ); | LOG_CREATE_FUNC( Control_Point ); | ||||
| Sequence_Widget *clone ( const Sequence_Widget *r ) | |||||
| { | |||||
| return new Control_Point( *(Control_Point*)r ); | |||||
| } | |||||
| 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 ( const Control_Point &rhs ); | ||||
| @@ -128,7 +128,14 @@ public: | |||||
| /* *this = rhs; */ | /* *this = rhs; */ | ||||
| /* } */ | /* } */ | ||||
| virtual Sequence_Widget *clone ( const Sequence_Widget *r ) = 0; | |||||
| #define SEQUENCE_WIDGET_CLONE_FUNC(class) \ | |||||
| virtual Sequence_Widget *clone ( void ) const \ | |||||
| { \ | |||||
| return new class ( *this ); \ | |||||
| } \ | |||||
| \ | |||||
| // virtual Sequence_Widget *clone ( const Sequence_Widget *r ) = 0; | |||||
| virtual Sequence_Widget *clone ( void ) const = 0; | |||||
| bool selected ( void ) const | bool selected ( void ) const | ||||
| { | { | ||||
| @@ -46,9 +46,10 @@ protected: | |||||
| public: | public: | ||||
| static bool edit ( float *tempo ); | |||||
| LOG_CREATE_FUNC( Tempo_Point ); | LOG_CREATE_FUNC( Tempo_Point ); | ||||
| SEQUENCE_WIDGET_CLONE_FUNC( Tempo_Point ); | |||||
| static bool edit ( float *tempo ); | |||||
| Tempo_Point ( nframes_t when, float bpm ); | Tempo_Point ( nframes_t when, float bpm ); | ||||
| @@ -60,11 +61,6 @@ public: | |||||
| _tempo = rhs._tempo; | _tempo = rhs._tempo; | ||||
| } | } | ||||
| Sequence_Widget *clone ( const Sequence_Widget *r ) | |||||
| { | |||||
| return new Tempo_Point( *(Tempo_Point*)r ); | |||||
| } | |||||
| float tempo ( void ) const | float tempo ( void ) const | ||||
| { return _tempo; } | { return _tempo; } | ||||
| @@ -69,6 +69,7 @@ protected: | |||||
| public: | public: | ||||
| LOG_CREATE_FUNC( Time_Point ); | LOG_CREATE_FUNC( Time_Point ); | ||||
| SEQUENCE_WIDGET_CLONE_FUNC( Time_Point ); | |||||
| Time_Point ( nframes_t when, int bpb, int note ); | Time_Point ( nframes_t when, int bpb, int note ); | ||||
| Time_Point ( const Time_Point &rhs ); | Time_Point ( const Time_Point &rhs ); | ||||
| @@ -78,10 +79,6 @@ public: | |||||
| log_destroy(); | log_destroy(); | ||||
| } | } | ||||
| Sequence_Widget *clone ( const Sequence_Widget *r ) | |||||
| { | |||||
| return new Time_Point( *(Time_Point*)r ); | |||||
| } | |||||
| void time ( int bpb, int note ) { _time.beats_per_bar = bpb; _time.beat_type = note; } | void time ( int bpb, int note ) { _time.beats_per_bar = bpb; _time.beat_type = note; } | ||||
| time_sig time ( void ) const { return _time; } | time_sig time ( void ) const { return _time; } | ||||