VFrame *title_bar = new VFrame(tw, th, colormodel);
uint8_t cr = (color>>16), cg = (color>>8), cb = (color>>0);
uint8_t **bar_rows = title_bar->get_rows();
+ const uint8_t gap_grey = 0x4a;
if( th > 0 ) {
uint8_t *cp = bar_rows[0];
for( int x=0; x<tw; ++x ) {
- cp[0] = cp[1] = cp[2] = 0;
+ cp[0] = cp[1] = cp[2] = gap_grey;
if( bpp > 3 ) cp[3] = 0xff;
cp += bpp;
}
for( int y=1; y<th; ++y ) {
uint8_t *cp = bar_rows[y];
if( tw > 0 ) {
- cp[0] = cp[1] = cp[2] = 0;
+ cp[0] = cp[1] = cp[2] = gap_grey;
if( bpp > 3 ) cp[3] = 0xff;
cp += bpp;
}
cp += bpp;
}
if( tw > 1 ) {
- cp[0] = cp[1] = cp[2] = 0;
+ cp[0] = cp[1] = cp[2] = gap_grey;
if( bpp > 3 ) cp[3] = 0xff;
}
}
char title[BCTEXTLEN];
edit->get_title(title);
- color = color ? ~color & 0xffffff : mwindow->theme->title_color;
- canvas->set_color(color);
+ canvas->set_color(mwindow->theme->title_color);
canvas->set_font(mwindow->theme->title_font);
// Justify the text on the left boundary of the edit if it is visible.
{
w++;
Indexable *indexable = edit->get_source();
- int center_pixel = mwindow->edl->local_session->zoom_track / 2;
+ int rect_audio = mwindow->preferences->rectify_audio;
+ int center_pixel = !rect_audio ?
+ mwindow->edl->local_session->zoom_track / 2 :
+ mwindow->edl->local_session->zoom_track ;
if( edit->track->show_titles() )
center_pixel += mwindow->theme->get_image("title_bg_data")->get_h();
- int64_t scale_y = mwindow->edl->local_session->zoom_y;
+ int64_t scale_y = !rect_audio ?
+ mwindow->edl->local_session->zoom_y :
+ mwindow->edl->local_session->zoom_y * 2;
int y_max = center_pixel + scale_y / 2 - 1;
double project_zoom = mwindow->edl->local_session->zoom_sample;
if( !result ) {
double *samples = buffer->get_data();
- int y1 = center_pixel - samples[0] * scale_y / 2;
+ double sample = !rect_audio ? samples[0] : fabs(samples[0]);
+ int y1 = center_pixel - sample * scale_y / 2;
int y2 = CLIP(y1, 0, y_max);
for( int x0=0; x0<w; ++x0 ) {
int j = speed_position * asset_over_session - start_position;
CLAMP(j, 0, sample_size);
int y0 = y2;
- y1 = center_pixel - samples[j] * scale_y / 2;
+ sample = !rect_audio ? samples[j] : fabs(samples[j]);
+ y1 = center_pixel - sample * scale_y / 2;
y2 = CLIP(y1, 0, y_max);
//printf("ResourcePixmap::draw_audio_source %d %d %d\n", __LINE__, y1, y2);
canvas->draw_line(x0, y0, x2, y2, this);
WaveCacheItem *item = mwindow->wave_cache->get_wave(indexable->id,
edit->channel, prev_position, next_position);
if( item ) {
+ double item_low = !rect_audio ? item->low : fabs(item->low);
//printf("ResourcePixmap::draw_audio_source %d\n", __LINE__);
- int y_lo = (int)(center_pixel - item->low * scale_y / 2);
+ int y_lo = (int)(center_pixel - item_low * scale_y / 2);
int y1 = CLIP(y_lo, 0, y_max);
- int y_hi = (int)(center_pixel - item->high * scale_y / 2);
+ double item_high = !rect_audio ? item->high : fabs(item->high);
+ int y_hi = (int)(center_pixel - item_high * scale_y / 2);
int y2 = CLIP(y_hi, 0, y_max);
if( !first_pixel ) {
y_lo = MIN(y1,prev_y2);
void ResourcePixmap::draw_wave(TrackCanvas *canvas,
int x, double high, double low)
{
- int top_pixel = 0;
- if( mwindow->edl->session->show_titles )
- top_pixel += mwindow->theme->get_image("title_bg_data")->get_h();
- int center_pixel = mwindow->edl->local_session->zoom_track / 2 + top_pixel;
+ int rect_audio = mwindow->preferences->rectify_audio;
+ if( rect_audio ) { low = fabs(low); high = fabs(high); }
+ int top_pixel = mwindow->edl->session->show_titles ? 0 :
+ mwindow->theme->get_image("title_bg_data")->get_h();
+ int center_pixel = !rect_audio ?
+ mwindow->edl->local_session->zoom_track / 2 + top_pixel :
+ mwindow->edl->local_session->zoom_track + top_pixel ;
+ int scale_y = !rect_audio ?
+ mwindow->edl->local_session->zoom_y / 2 :
+ mwindow->edl->local_session->zoom_y ;
int bottom_pixel = top_pixel + mwindow->edl->local_session->zoom_track;
- int y1 = (int)(center_pixel -
- low * mwindow->edl->local_session->zoom_y / 2);
- int y2 = (int)(center_pixel -
- high * mwindow->edl->local_session->zoom_y / 2);
+ int y1 = (int)(center_pixel - low * scale_y);
+ int y2 = (int)(center_pixel - high * scale_y);
CLAMP(y1, top_pixel, bottom_pixel);
CLAMP(y2, top_pixel, bottom_pixel);
canvas->set_color(mwindow->theme->audio_color);