region tempo and meter are optional (gui)

This commit is contained in:
Paul Davis
2025-08-10 07:35:55 -06:00
parent 832683cb01
commit ea4737079d
3 changed files with 17 additions and 7 deletions

View File

@@ -1168,8 +1168,10 @@ CueEditor::set_region (std::shared_ptr<Region> r)
_region = r;
std::shared_ptr<TempoMap> tmap (new TempoMap (_region->tempo(), _region->meter()));
start_local_tempo_map (tmap);
if (_region->tempo() && _region->meter()) {
std::shared_ptr<TempoMap> tmap (new TempoMap (_region->tempo().value(), _region->meter().value()));
start_local_tempo_map (tmap);
}
if (!get_canvas()->is_visible()) {
_visible_pending_region = r;

View File

@@ -352,7 +352,7 @@ PianoRollHeaderBase::render (ArdourCanvas::Rect const & self, ArdourCanvas::Rect
Gtkmm2ext::set_source_rgba (cr, bg);
assert (_scroomer_size = width() - kbd_width);
assert (_scroomer_size == width() - kbd_width);
double x = _scroomer_size;
double y = positions[n];

View File

@@ -318,12 +318,20 @@ void
RegionEditor::tempo_changed (PBD::PropertyChange const & changed)
{
if (changed.contains (Properties::region_tempo)) {
Temporal::Tempo tempo (_region->tempo());
_region_tempo_entry.set_text (string_compose ("%1 bpm", tempo.quarter_notes_per_minute()));
if (_region->tempo()) {
Temporal::Tempo tempo (_region->tempo().value());
_region_tempo_entry.set_text (string_compose ("%1 bpm", tempo.quarter_notes_per_minute()));
} else {
_region_tempo_entry.set_text (_("undefined"));
}
}
if (changed.contains (Properties::region_meter)) {
Temporal::Meter meter (_region->meter());
_region_meter_entry.set_text (string_compose ("%1/%2", meter.divisions_per_bar(), meter.note_value()));
if (_region->meter()) {
Temporal::Meter meter (_region->meter().value());
_region_meter_entry.set_text (string_compose ("%1/%2", meter.divisions_per_bar(), meter.note_value()));
} else {
_region_meter_entry.set_text (_("undefined"));
}
}
}