| @@ -37,6 +37,10 @@ using namespace std; | |||
| extern Timeline *timeline; | |||
| static inline float | |||
| fade_gain ( Region::fade_type_e type, nframes_t index, nframes_t nframes ); | |||
| Fl_Boxtype Region::_box = FL_UP_BOX; | |||
| Fl_Color Region::_selection_color = FL_MAGENTA; | |||
| @@ -490,7 +494,7 @@ Region::draw ( int X, int Y, int W, int H ) | |||
| selected() ? fl_invert_color( _color ) : _color ); | |||
| } | |||
| delete pbuf; | |||
| delete[] pbuf; | |||
| /* for ( int i = _clip->channels(); i--; ) */ | |||
| /* Waveform::draw( rx, X, (y() + Fl::box_dy( box() )) + (i * ch), W, */ | |||
| @@ -499,6 +503,42 @@ Region::draw ( int X, int Y, int W, int H ) | |||
| /* _scale, selected() ? fl_invert_color( _color ) : _color ); */ | |||
| /* draw fades */ | |||
| { | |||
| fl_color( FL_BLACK ); | |||
| fl_line_style( FL_SOLID, 2 ); | |||
| Fade fade = _fade_in; | |||
| fade.length = 20000; | |||
| fade.type = Cosine; | |||
| fl_begin_line(); | |||
| const int height = h(); | |||
| const int width = timeline->ts_to_x( fade.length ); | |||
| for ( int i = X; i < line_x() + width; i++ ) | |||
| { | |||
| const int x = i; | |||
| const int y = this->y() + (height * (1.0f - fade_gain( fade.type, timeline->x_to_ts( i - this->x() ), fade.length ))); | |||
| fl_vertex( x, y ); | |||
| } | |||
| fl_end_line(); | |||
| fl_line_style( FL_SOLID, 0 ); | |||
| } | |||
| timeline->draw_measure_lines( rx, Y, rw, H, _box_color ); | |||
| fl_color( FL_BLACK ); | |||
| @@ -534,6 +574,8 @@ Region::normalize ( void ) | |||
| } | |||
| /**********/ | |||
| /* Engine */ | |||
| /**********/ | |||
| @@ -545,7 +587,7 @@ Region::normalize ( void ) | |||
| static inline float | |||
| fade_gain ( Region::fade_type_e type, nframes_t index, nframes_t nframes ) | |||
| { | |||
| float g = 0; | |||
| float g; | |||
| const float fi = index / (float)nframes; | |||
| @@ -564,6 +606,8 @@ fade_gain ( Region::fade_type_e type, nframes_t index, nframes_t nframes ) | |||
| case Region::Parabolic: | |||
| g = 1.0f - (1.0f - fi) * (1.0f - fi); | |||
| break; | |||
| default: | |||
| g = 1.0f; | |||
| } | |||
| return g; | |||