Fixup tempo/time points, which were broken by recent renaming.

This commit is contained in:
Jonathan Moore Liles 2008-05-07 17:55:01 -05:00
parent e050332e36
commit 9df497a50a
7 changed files with 72 additions and 72 deletions

View File

@ -173,5 +173,14 @@ Project::create ( const char *name, const char *template_name )
/* TODO: copy template */ /* TODO: copy template */
return open( name ); if ( open( name ) )
{
/* add the bare essentials */
timeline->beats_per_minute( 0, 120 );
timeline->time( 0, 4, 4 );
return true;
}
else
return false;
} }

View File

@ -25,26 +25,29 @@
void void
Tempo_Point::get ( Log_Entry &e ) const Tempo_Point::get ( Log_Entry &e ) const
{ {
e.add( ":start", _r->offset ); Sequence_Point::get( e );
e.add( ":tempo", _tempo ); e.add( ":tempo", _tempo );
} }
void void
Tempo_Point::set ( Log_Entry &e ) Tempo_Point::set ( Log_Entry &e )
{ {
Sequence_Point::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;
e.get( i, &s, &v ); e.get( i, &s, &v );
if ( ! strcmp( s, ":start" ) ) if ( ! strcmp( s, ":tempo" ) )
_r->offset = atol( v );
else if ( ! strcmp( s, ":tempo" ) )
_tempo = atof( v ); _tempo = atof( v );
/* FIXME: we need to add this to the time track on creation!!! */ /* /\* FIXME: we need to add this to the time track on creation!!! *\/ */
timeline->tempo_track->add( this ); /* timeline->tempo_track->add( this ); */
} }
timeline->redraw(); timeline->redraw();
@ -53,13 +56,20 @@ Tempo_Point::set ( Log_Entry &e )
} }
Tempo_Point::Tempo_Point ( )
{
timeline->tempo_track->add( this );
}
Tempo_Point::Tempo_Point ( nframes_t when, float bpm ) Tempo_Point::Tempo_Point ( nframes_t when, float bpm )
{ {
_tempo = bpm; _tempo = bpm;
_r->offset = when; _r->start = when;
_make_label(); _make_label();
timeline->tempo_track->add( this );
log_create(); log_create();
} }

View File

@ -42,9 +42,7 @@ protected:
virtual void get ( Log_Entry &e ) const; virtual void get ( Log_Entry &e ) const;
void set ( Log_Entry &e ); void set ( Log_Entry &e );
Tempo_Point ( ) Tempo_Point ( );
{
}
public: public:

View File

@ -24,7 +24,9 @@
void void
Time_Point::get ( Log_Entry &e ) const Time_Point::get ( Log_Entry &e ) const
{ {
e.add( ":start", _r->offset );
Sequence_Point::get( e );
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 );
} }
@ -32,24 +34,48 @@ Time_Point::get ( Log_Entry &e ) const
void void
Time_Point::set ( Log_Entry &e ) Time_Point::set ( Log_Entry &e )
{ {
Sequence_Point::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;
e.get( i, &s, &v ); e.get( i, &s, &v );
if ( ! strcmp( s, ":start" ) ) if ( ! strcmp( s, ":beats_per_bar" ) )
_r->offset = atol( v );
else if ( ! strcmp( s, ":beats_per_bar" ) )
_time.beats_per_bar = atoi( v ); _time.beats_per_bar = atoi( v );
else if ( ! strcmp( s, ":beat_type" ) ) else if ( ! strcmp( s, ":beat_type" ) )
_time.beat_type = atoi( v ); _time.beat_type = atoi( v );
/* FIXME: we need to add this to the time track on creation!!! */ /* /\* FIXME: we need to add this to the time track on creation!!! *\/ */
timeline->time_track->add( this ); /* timeline->time_track->add( this ); */
} }
timeline->redraw(); timeline->redraw();
_make_label(); _make_label();
} }
Time_Point::Time_Point ( ) : _time( 4, 4 )
{
timeline->time_track->add( this );
}
Time_Point::Time_Point ( nframes_t when, int bpb, int note ) : _time( bpb, note )
{
_r->offset = when;
_make_label();
timeline->time_track->add( this );
log_create();
}
Time_Point::Time_Point ( const Time_Point &rhs )
{
_r->offset = rhs._r->offset;
_time = rhs._time;
}

View File

@ -56,10 +56,6 @@ class Time_Point : public Sequence_Point
snprintf( _label, 40, "%d/%d", _time.beats_per_bar, _time.beat_type ); snprintf( _label, 40, "%d/%d", _time.beats_per_bar, _time.beat_type );
} }
Time_Point ( ) : _time( 4, 4 )
{
}
protected: protected:
@ -68,23 +64,18 @@ protected:
virtual void get ( Log_Entry &e ) const; virtual void get ( Log_Entry &e ) const;
void set ( Log_Entry &e ); void set ( Log_Entry &e );
Time_Point ( );
public: public:
LOG_CREATE_FUNC( Time_Point ); LOG_CREATE_FUNC( Time_Point );
Time_Point ( nframes_t when, int bpb, int note ) : _time( bpb, note ) Time_Point ( nframes_t when, int bpb, int note );
{ Time_Point ( const Time_Point &rhs );
_r->offset = when;
_make_label();
log_create(); ~Time_Point ( )
}
Time_Point ( const Time_Point &rhs )
{ {
_r->offset = rhs._r->offset; log_destroy();
_time = rhs._time;
} }
Sequence_Widget *clone ( const Sequence_Widget *r ) Sequence_Widget *clone ( const Sequence_Widget *r )
@ -92,41 +83,9 @@ public:
return new Time_Point( *(Time_Point*)r ); return new Time_Point( *(Time_Point*)r );
} }
~Time_Point ( )
{
log_destroy();
}
/* beats_per_bar ( void ) const { return _time.beats_per_bar; } */
/* beat_type ( void ) const { return _beat_type; } */
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; }
/* Time_Point * */
/* at ( nframes_t when ) */
/* { */
/* for ( std::list <Sequence_Widget *>::const_reverse_iterator i = _widgets.rbegin(); */
/* i != _widgets.rend(); i++ ) */
/* if ( (*i)->offset() < when ) */
/* return ((Time_Point*)(*i)); */
/* return NULL; */
/* } */
/* int */
/* handle ( int m ) */
/* { */
/* int r = Sequence_Widget::handle( m ); */
/* if ( m == FL_RELEASE ) */
/* { */
/* _track->sort(); */
/* timeline->redraw(); */
/* } */
/* return r; */
/* } */
}; };
#undef __CLASS__ #undef __CLASS__

View File

@ -157,13 +157,6 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Overlay_Wi
o->align( FL_ALIGN_LEFT ); o->align( FL_ALIGN_LEFT );
tempo_track = o; tempo_track = o;
o->beats_per_minute( 0, 120 );
/* o->beats_per_minute( 48000 * 50, 250 ); */
/* o->beats_per_minute( 48000 * 120, 60 ); */
} }
{ {
@ -175,8 +168,6 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Overlay_Wi
o->align( FL_ALIGN_LEFT ); o->align( FL_ALIGN_LEFT );
time_track = o; time_track = o;
o->time( 0, 4, 4 );
} }
@ -253,6 +244,12 @@ Timeline::beats_per_minute ( nframes_t when, float bpm )
tempo_track->add( new Tempo_Point( when, bpm ) ); tempo_track->add( new Tempo_Point( when, bpm ) );
} }
void
Timeline::time ( nframes_t when, int bpb, int note_type )
{
time_track->add( new Time_Point( when, bpb, note_type ) );
}
#if 0 #if 0
struct BBT struct BBT
{ {

View File

@ -141,6 +141,7 @@ public:
float beats_per_minute ( nframes_t when ) const; float beats_per_minute ( nframes_t when ) const;
int beats_per_bar ( nframes_t when ) const; int beats_per_bar ( nframes_t when ) const;
void beats_per_minute ( nframes_t when, float bpm ); void beats_per_minute ( nframes_t when, float bpm );
void time ( nframes_t when, int bpb, int beat_type );
bool nearest_line ( nframes_t when, nframes_t *f ) const; bool nearest_line ( nframes_t when, nframes_t *f ) const;
typedef void (measure_line_callback)( nframes_t frame, int X, int Y, int H, void *arg ); typedef void (measure_line_callback)( nframes_t frame, int X, int Y, int H, void *arg );