From 1812769f840c508de3565793e0737fcea258c829 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Wed, 15 Dec 2021 19:27:35 -0600 Subject: [PATCH] add missing files --- gtk2_ardour/midi_trigger_properties_box.cc | 103 +++++++++++++++++++++ gtk2_ardour/midi_trigger_properties_box.h | 63 +++++++++++++ 2 files changed, 166 insertions(+) create mode 100644 gtk2_ardour/midi_trigger_properties_box.cc create mode 100644 gtk2_ardour/midi_trigger_properties_box.h diff --git a/gtk2_ardour/midi_trigger_properties_box.cc b/gtk2_ardour/midi_trigger_properties_box.cc new file mode 100644 index 0000000000..b9c485290b --- /dev/null +++ b/gtk2_ardour/midi_trigger_properties_box.cc @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2011-2017 Paul Davis + * Copyright (C) 2021 Ben Loftis + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "pbd/compose.h" +#include + +#include "gtkmm2ext/actions.h" +#include "gtkmm2ext/gui_thread.h" +#include "gtkmm2ext/utils.h" + +#include "ardour/location.h" +#include "ardour/profile.h" +#include "ardour/session.h" + +#include "widgets/ardour_button.h" + +#include "audio_clock.h" +#include "automation_line.h" +#include "control_point.h" +#include "editor.h" +#include "region_view.h" + +#include "midi_trigger_properties_box.h" + +#include "pbd/i18n.h" + +using namespace Gtk; +using namespace ARDOUR; +using namespace ArdourWidgets; +using std::max; +using std::min; + +MidiTriggerPropertiesBox::MidiTriggerPropertiesBox () +{ + _header_label.set_text (_("MIDI Trigger Properties:")); + + _header_label.set_alignment (0.0, 0.5); + pack_start (_header_label, false, false, 6); + + Gtk::Table* midi_t = manage (new Gtk::Table ()); + midi_t->set_homogeneous (true); + midi_t->set_spacings (4); + + int row = 0; + + patch_enable_button.set_text (_("Send Patches")); + patch_enable_button.set_name ("generic button"); + + midi_t->attach (patch_enable_button, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; + + cc_enable_button.set_text (_("Send CCs")); + cc_enable_button.set_name ("generic button"); + + midi_t->attach (cc_enable_button, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; + + pack_start (*midi_t); +} + +MidiTriggerPropertiesBox::~MidiTriggerPropertiesBox () +{ +} + +void +MidiTriggerPropertiesBox::set_trigger (ARDOUR::Trigger *t) +{ + ARDOUR::MIDITrigger* midi_trigger = dynamic_cast (t); + + if (!midi_trigger) { + return; + } + + _trigger = midi_trigger; + _trigger->PropertyChanged.connect (midi_state_connection, invalidator (*this), boost::bind (&MidiTriggerPropertiesBox::trigger_changed, this, _1), gui_context ()); + + PBD::PropertyChange changed; + changed.add (ARDOUR::Properties::name); + changed.add (ARDOUR::Properties::running); + trigger_changed (changed); +} + +void +MidiTriggerPropertiesBox::trigger_changed (const PBD::PropertyChange& what_changed) +{ + /* CC and Pgm stuff ...? */ +} diff --git a/gtk2_ardour/midi_trigger_properties_box.h b/gtk2_ardour/midi_trigger_properties_box.h new file mode 100644 index 0000000000..a70e0005ff --- /dev/null +++ b/gtk2_ardour/midi_trigger_properties_box.h @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 Paul Davis + * Copyright (C) 2021 Ben Loftis + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef __midi_trigger_properties_box_h__ +#define __midi_trigger_properties_box_h__ + +#include + +#include +#include +#include + +#include "ardour/ardour.h" +#include "ardour/session_handle.h" + +#include "gtkmm2ext/cairo_packer.h" + +#include "audio_trigger_properties_box.h" + +namespace ARDOUR +{ + class Session; + class Location; +} + +class MidiTriggerPropertiesBox : public TriggerPropertiesBox +{ +public: + MidiTriggerPropertiesBox (); + ~MidiTriggerPropertiesBox (); + + void set_trigger (ARDOUR::Trigger* t); + +private: + ARDOUR::MIDITrigger *_trigger; + + Gtk::Label _header_label; + + void trigger_changed (const PBD::PropertyChange& what_changed); + + PBD::ScopedConnection midi_state_connection; + + ArdourWidgets::ArdourButton patch_enable_button; + ArdourWidgets::ArdourButton cc_enable_button; +}; + +#endif /* __midi_trigger_properties_box_h__ */