switch (t) {
case MarkerBarItem:
- ruler_items.push_back (MenuElem (_("New location marker"), sigc::bind ( sigc::mem_fun(*this, &Editor::mouse_add_new_marker), where, false)));
+ ruler_items.push_back (MenuElem (_("New location marker"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_add_new_marker), where, false)));
ruler_items.push_back (MenuElem (_("Clear all locations"), sigc::mem_fun(*this, &Editor::clear_markers)));
ruler_items.push_back (MenuElem (_("Unhide locations"), sigc::mem_fun(*this, &Editor::unhide_markers)));
break;
case CdMarkerBarItem:
// TODO
- ruler_items.push_back (MenuElem (_("New CD track marker"), sigc::bind ( sigc::mem_fun(*this, &Editor::mouse_add_new_marker), where, true)));
+ ruler_items.push_back (MenuElem (_("New CD track marker"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_add_new_marker), where, true)));
break;
case TempoBarItem:
- ruler_items.push_back (MenuElem (_("New Tempo"), sigc::bind ( sigc::mem_fun(*this, &Editor::mouse_add_new_tempo_event), where)));
+ ruler_items.push_back (MenuElem (_("New Tempo"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_add_new_tempo_event), where)));
break;
case MeterBarItem:
- ruler_items.push_back (MenuElem (_("New Meter"), sigc::bind ( sigc::mem_fun(*this, &Editor::mouse_add_new_meter_event), where)));
+ ruler_items.push_back (MenuElem (_("New Meter"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_add_new_meter_event), where)));
break;
case VideoBarItem:
*/
//ruler_items.push_back (MenuElem (_("Timeline height"))); // heading
//static_cast<MenuItem*>(&ruler_items.back())->set_sensitive(false);
- ruler_items.push_back (CheckMenuElem (_("Large"), sigc::bind ( sigc::mem_fun(*this, &Editor::set_video_timeline_height), 6)));
+ ruler_items.push_back (CheckMenuElem (_("Large"), sigc::bind (sigc::mem_fun(*this, &Editor::set_video_timeline_height), 6)));
if (videotl_bar_height == 6) { static_cast<Gtk::CheckMenuItem*>(&ruler_items.back())->set_active(true);}
- ruler_items.push_back (CheckMenuElem (_("Normal"), sigc::bind ( sigc::mem_fun(*this, &Editor::set_video_timeline_height), 4)));
+ ruler_items.push_back (CheckMenuElem (_("Normal"), sigc::bind (sigc::mem_fun(*this, &Editor::set_video_timeline_height), 4)));
if (videotl_bar_height == 4) { static_cast<Gtk::CheckMenuItem*>(&ruler_items.back())->set_active(true);}
- ruler_items.push_back (CheckMenuElem (_("Small"), sigc::bind ( sigc::mem_fun(*this, &Editor::set_video_timeline_height), 3)));
+ ruler_items.push_back (CheckMenuElem (_("Small"), sigc::bind (sigc::mem_fun(*this, &Editor::set_video_timeline_height), 3)));
if (videotl_bar_height == 3) { static_cast<Gtk::CheckMenuItem*>(&ruler_items.back())->set_active(true);}
ruler_items.push_back (SeparatorElem ());
node->set_property (X_("videotl"), ruler_video_action->get_active());
_session->add_extra_xml (*node);
- _session->set_dirty ();
}
void
switch (timecode_ruler_scale) {
case timecode_show_bits:
// Find timecode time of this sample (pos) with subframe accuracy
- _session->sample_to_timecode(pos, timecode, true /* use_offset */, true /* use_subframes */ );
+ _session->sample_to_timecode(pos, timecode, true /* use_offset */, true /* use_subframes */);
for (n = 0; n < timecode_nmarks; n++) {
- _session->timecode_to_sample(timecode, pos, true /* use_offset */, true /* use_subframes */ );
+ _session->timecode_to_sample(timecode, pos, true /* use_offset */, true /* use_subframes */);
if ((timecode.subframes % timecode_mark_modulo) == 0) {
if (timecode.subframes == 0) {
mark.style = ArdourCanvas::Ruler::Mark::Major;
mark.position = pos;
marks.push_back (mark);
// Increment subframes by one
- Timecode::increment_subframes( timecode, _session->config.get_subframes_per_frame() );
+ Timecode::increment_subframes (timecode, _session->config.get_subframes_per_frame());
}
break;
case timecode_show_samples:
// Find timecode time of this sample (pos)
- _session->sample_to_timecode(pos, timecode, true /* use_offset */, false /* use_subframes */ );
+ _session->sample_to_timecode (pos, timecode, true /* use_offset */, false /* use_subframes */);
// Go to next whole sample down
- Timecode::frames_floot( timecode );
+ Timecode::frames_floot (timecode);
for (n = 0; n < timecode_nmarks; n++) {
- _session->timecode_to_sample(timecode, pos, true /* use_offset */, false /* use_subframes */ );
+ _session->timecode_to_sample (timecode, pos, true /* use_offset */, false /* use_subframes */);
if ((timecode.frames % timecode_mark_modulo) == 0) {
if (timecode.frames == 0) {
mark.style = ArdourCanvas::Ruler::Mark::Major;
}
mark.label = buf;
marks.push_back (mark);
- Timecode::increment( timecode, _session->config.get_subframes_per_frame() );
+ Timecode::increment (timecode, _session->config.get_subframes_per_frame());
}
break;
case timecode_show_seconds:
// Find timecode time of this sample (pos)
- _session->sample_to_timecode(pos, timecode, true /* use_offset */, false /* use_subframes */ );
+ _session->sample_to_timecode (pos, timecode, true /* use_offset */, false /* use_subframes */);
// Go to next whole second down
- Timecode::seconds_floor( timecode );
+ Timecode::seconds_floor (timecode);
for (n = 0; n < timecode_nmarks; n++) {
- _session->timecode_to_sample(timecode, pos, true /* use_offset */, false /* use_subframes */ );
+ _session->timecode_to_sample (timecode, pos, true /* use_offset */, false /* use_subframes */);
if ((timecode.seconds % timecode_mark_modulo) == 0) {
if (timecode.seconds == 0) {
mark.style = ArdourCanvas::Ruler::Mark::Major;
}
mark.label = buf;
marks.push_back (mark);
- Timecode::increment_seconds( timecode, _session->config.get_subframes_per_frame() );
+ Timecode::increment_seconds (timecode, _session->config.get_subframes_per_frame());
}
break;
case timecode_show_minutes:
//Find timecode time of this sample (pos)
- _session->sample_to_timecode(pos, timecode, true /* use_offset */, false /* use_subframes */ );
+ _session->sample_to_timecode (pos, timecode, true /* use_offset */, false /* use_subframes */);
// Go to next whole minute down
- Timecode::minutes_floor( timecode );
+ Timecode::minutes_floor (timecode);
for (n = 0; n < timecode_nmarks; n++) {
- _session->timecode_to_sample(timecode, pos, true /* use_offset */, false /* use_subframes */ );
+ _session->timecode_to_sample (timecode, pos, true /* use_offset */, false /* use_subframes */);
if ((timecode.minutes % timecode_mark_modulo) == 0) {
if (timecode.minutes == 0) {
mark.style = ArdourCanvas::Ruler::Mark::Major;
mark.label = buf;
mark.position = pos;
marks.push_back (mark);
- Timecode::increment_minutes( timecode, _session->config.get_subframes_per_frame() );
+ Timecode::increment_minutes (timecode, _session->config.get_subframes_per_frame());
}
break;
case timecode_show_hours:
// Find timecode time of this sample (pos)
- _session->sample_to_timecode(pos, timecode, true /* use_offset */, false /* use_subframes */ );
+ _session->sample_to_timecode (pos, timecode, true /* use_offset */, false /* use_subframes */);
// Go to next whole hour down
- Timecode::hours_floor( timecode );
+ Timecode::hours_floor (timecode);
for (n = 0; n < timecode_nmarks; n++) {
- _session->timecode_to_sample(timecode, pos, true /* use_offset */, false /* use_subframes */ );
+ _session->timecode_to_sample (timecode, pos, true /* use_offset */, false /* use_subframes */);
if ((timecode.hours % timecode_mark_modulo) == 0) {
mark.style = ArdourCanvas::Ruler::Mark::Major;
snprintf (buf, sizeof(buf), "%s%02u:%02u:%02u:%02u", timecode.negative ? "-" : "", timecode.hours, timecode.minutes, timecode.seconds, timecode.frames);
mark.label = buf;
mark.position = pos;
marks.push_back (mark);
- Timecode::increment_hours( timecode, _session->config.get_subframes_per_frame() );
+ Timecode::increment_hours (timecode, _session->config.get_subframes_per_frame());
}
break;
case timecode_show_many_hours:
// Find timecode time of this sample (pos)
- _session->sample_to_timecode(pos, timecode, true /* use_offset */, false /* use_subframes */ );
+ _session->sample_to_timecode (pos, timecode, true /* use_offset */, false /* use_subframes */);
// Go to next whole hour down
Timecode::hours_floor (timecode);
- for (n = 0; n < timecode_nmarks; ) {
- _session->timecode_to_sample(timecode, pos, true /* use_offset */, false /* use_subframes */ );
+ for (n = 0; n < timecode_nmarks;) {
+ _session->timecode_to_sample (timecode, pos, true /* use_offset */, false /* use_subframes */);
if ((timecode.hours % timecode_mark_modulo) == 0) {
mark.style = ArdourCanvas::Ruler::Mark::Major;
snprintf (buf, sizeof(buf), "%s%02u:%02u:%02u:%02u", timecode.negative ? "-" : "", timecode.hours, timecode.minutes, timecode.seconds, timecode.frames);
bbt_accent_modulo = 2; // XXX YIKES
break;
case GridTypeBeatDiv6:
- bbt_beat_subdivision = 6;
+ bbt_beat_subdivision = 3;
bbt_accent_modulo = 2; // XXX YIKES
break;
case GridTypeBeatDiv7:
bbt_accent_modulo = 2; // XXX YIKES
break;
case GridTypeBeatDiv8:
- bbt_beat_subdivision = 8;
+ bbt_beat_subdivision = 4;
bbt_accent_modulo = 2;
break;
case GridTypeBeatDiv10:
- bbt_beat_subdivision = 10;
+ bbt_beat_subdivision = 5;
bbt_accent_modulo = 2; // XXX YIKES
break;
case GridTypeBeatDiv12:
- bbt_beat_subdivision = 12;
+ bbt_beat_subdivision = 3;
bbt_accent_modulo = 3;
break;
case GridTypeBeatDiv14:
- bbt_beat_subdivision = 14;
+ bbt_beat_subdivision = 7;
bbt_accent_modulo = 3; // XXX YIKES!
break;
case GridTypeBeatDiv16:
- bbt_beat_subdivision = 16;
+ bbt_beat_subdivision = 4;
bbt_accent_modulo = 4;
break;
case GridTypeBeatDiv20:
- bbt_beat_subdivision = 20;
+ bbt_beat_subdivision = 5;
bbt_accent_modulo = 5;
break;
case GridTypeBeatDiv24:
- bbt_beat_subdivision = 24;
+ bbt_beat_subdivision = 6;
bbt_accent_modulo = 6;
break;
case GridTypeBeatDiv28:
- bbt_beat_subdivision = 28;
+ bbt_beat_subdivision = 7;
bbt_accent_modulo = 7;
break;
case GridTypeBeatDiv32:
- bbt_beat_subdivision = 32;
+ bbt_beat_subdivision = 4;
bbt_accent_modulo = 8;
break;
case GridTypeBar:
bbt_beat_subdivision = 4;
break;
case GridTypeNone:
- case GridTypeSmpte:
+ case GridTypeTimecode:
case GridTypeMinSec:
- case GridTypeSamples:
+ case GridTypeCDFrame:
bbt_beat_subdivision = 4;
break;
}
}
//set upper limits on the beat_density based on the user's grid selection
- if ( _grid_type == GridTypeBar ) {
+ if (_grid_type == GridTypeBar) {
beat_density = fmax (beat_density, 16.01);
- } else if ( _grid_type == GridTypeBeat ) {
- beat_density = fmax (beat_density, 4.001);
- } else if ( _grid_type == GridTypeBeatDiv4) {
- beat_density = fmax (beat_density, 2.001);
- } else if ( _grid_type == GridTypeBeatDiv8) {
+ } else if (_grid_type == GridTypeBeat) {
+ beat_density = fmax (beat_density, 4.01);
+ } else if (_grid_type == GridTypeBeatDiv2) {
+ beat_density = fmax (beat_density, 2.01);
+ } else if (_grid_type == GridTypeBeatDiv4) {
beat_density = fmax (beat_density, 1.001);
- } else if ( _grid_type == GridTypeBeatDiv16) {
+ } else if (_grid_type == GridTypeBeatDiv8) {
+ beat_density = fmax (beat_density, 0.501);
+ } else if (_grid_type == GridTypeBeatDiv16) {
beat_density = fmax (beat_density, 0.2501);
- } else if ( _grid_type == GridTypeBeatDiv32) {
+ } else if (_grid_type == GridTypeBeatDiv32) {
beat_density = fmax (beat_density, 0.12501);
}
- if (beat_density > 8192) {
+ if (beat_density > 2048) {
bbt_ruler_scale = bbt_show_many;
- } else if (beat_density > 1024) {
- bbt_ruler_scale = bbt_show_64;
} else if (beat_density > 512) {
+ bbt_ruler_scale = bbt_show_64;
+ } else if (beat_density > 256) {
bbt_ruler_scale = bbt_show_16;
- } else if (beat_density > 128) {
+ } else if (beat_density > 64) {
bbt_ruler_scale = bbt_show_4;
} else if (beat_density > 16) {
bbt_ruler_scale = bbt_show_1;
} else if (beat_density > 4) {
- bbt_ruler_scale = bbt_show_beats;
+ bbt_ruler_scale = bbt_show_quarters;
+ } else if (beat_density > 2) {
+ bbt_ruler_scale = bbt_show_eighths;
} else if (beat_density > 1) {
- bbt_ruler_scale = bbt_show_ticks;
- } else if (beat_density > 0.25) {
- bbt_ruler_scale = bbt_show_ticks_detail;
+ bbt_ruler_scale = bbt_show_sixteenths;
} else {
- bbt_ruler_scale = bbt_show_ticks_super_detail;
+ bbt_ruler_scale = bbt_show_thirtyseconds;
}
}
switch (bbt_ruler_scale) {
- case bbt_show_beats:
+ case bbt_show_quarters:
beats = distance (grid.begin(), grid.end());
bbt_nmarks = beats + 2;
}
break;
- case bbt_show_ticks:
+ case bbt_show_eighths:
beats = distance (grid.begin(), grid.end());
bbt_nmarks = (beats + 2) * bbt_beat_subdivision;
break;
- case bbt_show_ticks_detail:
+ case bbt_show_sixteenths:
beats = distance (grid.begin(), grid.end());
bbt_nmarks = (beats + 2) * bbt_beat_subdivision;
break;
- case bbt_show_ticks_super_detail:
+ case bbt_show_thirtyseconds:
beats = distance (grid.begin(), grid.end());
bbt_nmarks = (beats + 2) * bbt_beat_subdivision;
case bbt_show_many:
bbt_nmarks = 1;
- snprintf (buf, sizeof(buf), "cannot handle %" PRIu32 " bars", bbt_bars );
+ snprintf (buf, sizeof(buf), "cannot handle %" PRIu32 " bars", bbt_bars);
mark.style = ArdourCanvas::Ruler::Mark::Major;
mark.label = buf;
mark.position = lower;
}
static void
-sample_to_clock_parts ( samplepos_t sample,
- samplepos_t sample_rate,
- long *hrs_p,
- long *mins_p,
- long *secs_p,
- long *millisecs_p)
-
+sample_to_clock_parts (samplepos_t sample,
+ samplepos_t sample_rate,
+ long* hrs_p,
+ long* mins_p,
+ long* secs_p,
+ long* millisecs_p)
{
samplepos_t left;
long hrs;
lower = 0;
}
- if ( minsec_mark_interval== 0) { //we got here too early; divide-by-zero imminent
+ if (minsec_mark_interval == 0) { //we got here too early; divide-by-zero imminent
return;
}
-
+
pos = (((1000 * (samplepos_t) floor(lower)) + (minsec_mark_interval/2))/minsec_mark_interval) * minsec_mark_interval;
switch (minsec_ruler_scale) {
break;
case minsec_show_many_hours:
- for (n = 0; n < minsec_nmarks; ) {
+ for (n = 0; n < minsec_nmarks;) {
sample_to_clock_parts (pos, _session->sample_rate(), &hrs, &mins, &secs, &millisecs);
if (hrs % minsec_mark_modulo == 0) {
mark.style = ArdourCanvas::Ruler::Mark::Major;