triggerbox: barcnt -> beatcnt (gui part)

This commit is contained in:
Ben Loftis 2022-01-26 10:17:53 -06:00
parent efb44fc640
commit 289199d01d
2 changed files with 20 additions and 53 deletions

View File

@ -53,8 +53,8 @@ using std::min;
AudioTriggerPropertiesBox::AudioTriggerPropertiesBox ()
: _length_clock (X_("regionlength"), true, "", true, false, true)
, _start_clock (X_("regionstart"), true, "", false, false)
, _bar_adjustment( 1, 0.001, 1000.0, 1.0, 4.0, 0)
, _bar_spinner (_bar_adjustment)
, _beat_adjustment( 1, 0.001, 1000.0, 1.0, 4.0, 0)
, _beat_spinner (_beat_adjustment)
, _stretch_toggle (ArdourButton::led_default_elements)
, _abpm_label (ArdourButton::Text)
, _ignore_changes (false)
@ -88,20 +88,13 @@ AudioTriggerPropertiesBox::AudioTriggerPropertiesBox ()
row++;
_meter_label.set_text(_("Meter:"));
_meter_label.set_alignment (1.0, 0.5);
bpm_table->attach (_meter_label, 0, 1, row, row + 1, Gtk::FILL, Gtk::SHRINK);
bpm_table->attach (_meter_selector, 1, 4, row, row + 1, Gtk::FILL, Gtk::SHRINK);
row++;
_length_label.set_text(_("Clip Length:"));
_length_label.set_alignment (1.0, 0.5);
_bar_label.set_text(_("(bars)"));
_bar_label.set_alignment (0.0, 0.5);
_beat_label.set_text(_("(beats)"));
_beat_label.set_alignment (0.0, 0.5);
bpm_table->attach (_length_label,0, 1, row, row + 1, Gtk::FILL, Gtk::SHRINK);
bpm_table->attach (_bar_spinner, 1, 2, row, row + 1, Gtk::FILL, Gtk::SHRINK);
bpm_table->attach (_bar_label, 2, 4, row, row + 1, Gtk::FILL, Gtk::SHRINK);
bpm_table->attach (_beat_spinner, 1, 2, row, row + 1, Gtk::FILL, Gtk::SHRINK);
bpm_table->attach (_beat_label, 2, 4, row, row + 1, Gtk::FILL, Gtk::SHRINK);
ArdourWidgets::Frame* eTempoBox = manage (new ArdourWidgets::Frame);
eTempoBox->set_label("Stretch Options");
@ -138,13 +131,6 @@ AudioTriggerPropertiesBox::AudioTriggerPropertiesBox ()
using namespace Menu_Helpers;
_meter_selector.set_text ("??");
_meter_selector.set_name ("generic button");
_meter_selector.set_sizing_text ("4/4");
_meter_selector.AddMenuElem (MenuElem ("3/4", sigc::bind (sigc::mem_fun(*this, &AudioTriggerPropertiesBox::meter_changed), Temporal::Meter(3,4))));
_meter_selector.AddMenuElem (MenuElem ("4/4", sigc::bind (sigc::mem_fun(*this, &AudioTriggerPropertiesBox::meter_changed), Temporal::Meter(4,4))));
_meter_selector.AddMenuElem (MenuElem ("5/4", sigc::bind (sigc::mem_fun(*this, &AudioTriggerPropertiesBox::meter_changed), Temporal::Meter(5,4))));
_stretch_selector.set_text ("??");
_stretch_selector.set_name ("generic button");
_stretch_selector.set_sizing_text (TriggerUI::longest_stretch_mode);
@ -154,8 +140,8 @@ AudioTriggerPropertiesBox::AudioTriggerPropertiesBox ()
_stretch_toggle.signal_clicked.connect (sigc::mem_fun (*this, &AudioTriggerPropertiesBox::toggle_stretch));
_bar_spinner.set_can_focus(false);
_bar_spinner.signal_changed ().connect (sigc::mem_fun (*this, &AudioTriggerPropertiesBox::bars_changed));
_beat_spinner.set_can_focus(false);
_beat_spinner.signal_changed ().connect (sigc::mem_fun (*this, &AudioTriggerPropertiesBox::beats_changed));
}
AudioTriggerPropertiesBox::~AudioTriggerPropertiesBox ()
@ -222,7 +208,7 @@ AudioTriggerPropertiesBox::on_trigger_changed (const PBD::PropertyChange& pc)
_length_clock.set (at->current_length ()); // set_duration() ?
}
if (pc.contains (Properties::tempo_meter) || pc.contains (Properties::follow_length)) {
if ( pc.contains (Properties::tempo_meter) || pc.contains (Properties::follow_length)) {
char buf[32];
sprintf(buf, "%3.2f", at->segment_tempo ());
@ -230,9 +216,7 @@ AudioTriggerPropertiesBox::on_trigger_changed (const PBD::PropertyChange& pc)
ArdourWidgets::set_tooltip (_abpm_label, string_compose ("Clip Tempo, used for stretching. Estimated tempo (from file) was: %1", trigger->estimated_tempo ()));
_meter_selector.set_text (string_compose ("%1/%2", at->meter().divisions_per_bar(), at->meter().note_value()));
_bar_adjustment.set_value(at->segment_barcnt());
_beat_adjustment.set_value(at->segment_beatcnt());
}
if (pc.contains (Properties::stretch_mode) || pc.contains (Properties::stretchable)) {
@ -244,22 +228,18 @@ AudioTriggerPropertiesBox::on_trigger_changed (const PBD::PropertyChange& pc)
if (follow_widgets_sensitive) {
_stretch_selector.set_sensitive(true);
_meter_selector.set_sensitive(true);
_bar_spinner.set_sensitive(true);
_bar_label.set_sensitive(true);
_beat_spinner.set_sensitive(true);
_beat_label.set_sensitive(true);
_length_label.set_sensitive(true);
_meter_label.set_sensitive(true);
_bpm_label.set_sensitive(true);
_half_button.set_sensitive(true);
_dbl_button.set_sensitive(true);
_abpm_label.set_sensitive(true);
} else {
_stretch_selector.set_sensitive(false);
_meter_selector.set_sensitive(false);
_bar_spinner.set_sensitive(false);
_bar_label.set_sensitive(false);
_beat_spinner.set_sensitive(false);
_beat_label.set_sensitive(false);
_length_label.set_sensitive(false);
_meter_label.set_sensitive(false);
_bpm_label.set_sensitive(false);
_half_button.set_sensitive(false);
_dbl_button.set_sensitive(false);
@ -271,17 +251,7 @@ AudioTriggerPropertiesBox::on_trigger_changed (const PBD::PropertyChange& pc)
}
void
AudioTriggerPropertiesBox::meter_changed (Temporal::Meter m)
{
TriggerPtr trigger (tref.trigger());
boost::shared_ptr<AudioTrigger> at = boost::dynamic_pointer_cast<AudioTrigger> (trigger);
if (at) {
at->set_segment_meter(m);
}
}
void
AudioTriggerPropertiesBox::bars_changed ()
AudioTriggerPropertiesBox::beats_changed ()
{
if (_ignore_changes) {
return;
@ -290,7 +260,7 @@ AudioTriggerPropertiesBox::bars_changed ()
TriggerPtr trigger (tref.trigger());
boost::shared_ptr<AudioTrigger> at = boost::dynamic_pointer_cast<AudioTrigger> (trigger);
if (at) {
at->set_segment_barcnt (_bar_adjustment.get_value());
at->set_segment_beatcnt (_beat_adjustment.get_value());
}
}

View File

@ -65,7 +65,7 @@ protected:
void meter_changed (Temporal::Meter m);
void bars_changed();
void beats_changed();
private:
@ -78,13 +78,10 @@ private:
Gtk::Label _bpm_label;
Gtk::Label _length_label;
Gtk::Label _bar_label;
Gtk::Label _meter_label;
Gtk::Label _beat_label;
ArdourWidgets::ArdourDropdown _meter_selector;
Gtk::Adjustment _bar_adjustment;
Gtk::SpinButton _bar_spinner;
Gtk::Adjustment _beat_adjustment;
Gtk::SpinButton _beat_spinner;
ArdourWidgets::ArdourButton _stretch_toggle;