X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmtimebar.C;h=60d71da1b36478d4a818502a73c9e2049f8890e9;hp=bf00a1b7e1a49f5e4ee0b94a245e9bd9876271b2;hb=84ac8a2bb3357c04a3f67cf763b0f61ddbbd021d;hpb=55b362978e0118efc34c0a654b19c99484c0f346 diff --git a/cinelerra-5.1/cinelerra/mtimebar.C b/cinelerra-5.1/cinelerra/mtimebar.C index bf00a1b7..60d71da1 100644 --- a/cinelerra-5.1/cinelerra/mtimebar.C +++ b/cinelerra-5.1/cinelerra/mtimebar.C @@ -101,10 +101,11 @@ void MTimeBar::stop_transport() gui->stop_transport("MTimeBar::stop_transport"); } -#define TEXT_MARGIN 4 -#define TICK_SPACING 5 -#define LINE_MARGIN 3 -#define TICK_MARGIN 16 +#define TEXT_MARGIN xS(4) +#define TICK_SPACING xS(5) +#define LINE_MARGIN yS(3) +#define TICK_MARGIN yS(16) + void MTimeBar::draw_time() { @@ -307,6 +308,7 @@ void MTimeBar::draw_time() } case TIME_FRAMES: + case TIME_TIMECODE: case TIME_HMSF: // One frame per text mark if(frame_seconds >= min_time) @@ -362,11 +364,14 @@ void MTimeBar::draw_time() // Set tick interval tick_interval = text_interval; + double timecode_offset = 0; switch(mwindow->edl->session->time_format) { - case TIME_HMSF: + case TIME_TIMECODE: + timecode_offset = mwindow->get_timecode_offset(); // fall thru case TIME_FEET_FRAMES: + case TIME_HMSF: case TIME_FRAMES: if(frame_seconds / time_per_pixel > TICK_SPACING) tick_interval = frame_seconds; @@ -394,12 +399,13 @@ void MTimeBar::draw_time() mwindow->edl->session->time_format, sample_rate, mwindow->edl->session->frame_rate, - mwindow->edl->session->frames_per_foot); + mwindow->edl->session->frames_per_foot, + timecode_offset); set_color(get_resources()->default_text_color); set_font(MEDIUMFONT); draw_text(pixel + TEXT_MARGIN, get_text_ascent(MEDIUMFONT), string); - draw_line(pixel, LINE_MARGIN, pixel, get_h() - 2); + draw_line(pixel, LINE_MARGIN, pixel, get_h() - yS(2)); double position2 = start_position + text_interval * (iteration + 1); int pixel2 = (int64_t)(position2 / time_per_pixel) - @@ -413,7 +419,7 @@ void MTimeBar::draw_time() mwindow->edl->local_session->view_start[pane->number]; if(labs(pixel - pixel1) > 1 && labs(pixel - pixel2) > 1) - draw_line(pixel, TICK_MARGIN, pixel, get_h() - 2); + draw_line(pixel, TICK_MARGIN, pixel, get_h() - yS(2)); } iteration++; } @@ -696,14 +702,16 @@ void TimeBarPopup::create_objects() add_item(items[1] = new TimeBarPopupItem(mwindow, this, TIME_HMSF_TEXT, TIME_HMSF)); add_item(items[2] = new TimeBarPopupItem(mwindow, - this, TIME_FRAMES_TEXT, TIME_FRAMES)); + this, TIME_TIMECODE_TEXT, TIME_TIMECODE)); add_item(items[3] = new TimeBarPopupItem(mwindow, - this, TIME_SAMPLES_TEXT, TIME_SAMPLES)); + this, TIME_FRAMES_TEXT, TIME_FRAMES)); add_item(items[4] = new TimeBarPopupItem(mwindow, - this, TIME_SAMPLES_HEX_TEXT, TIME_SAMPLES_HEX)); + this, TIME_SAMPLES_TEXT, TIME_SAMPLES)); add_item(items[5] = new TimeBarPopupItem(mwindow, - this, TIME_SECONDS_TEXT, TIME_SECONDS)); + this, TIME_SAMPLES_HEX_TEXT, TIME_SAMPLES_HEX)); add_item(items[6] = new TimeBarPopupItem(mwindow, + this, TIME_SECONDS_TEXT, TIME_SECONDS)); + add_item(items[7] = new TimeBarPopupItem(mwindow, this, TIME_FEET_FRAMES_TEXT, TIME_FEET_FRAMES)); }