#include "ardour/midi_track.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace ARDOUR;
using namespace ARDOUR_UI_UTILS;
static const uint32_t KEYBOARD_MIN_HEIGHT = 130;
MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session* sess, ArdourCanvas::Canvas& canvas)
- : AxisView(sess) // virtually inherited
- , RouteTimeAxisView(ed, sess, canvas)
+ : SessionHandlePtr (sess)
+ , RouteTimeAxisView (ed, sess, canvas)
, _ignore_signals(false)
, _range_scroomer(0)
, _piano_roll_header(0)
, controller_menu (0)
, _step_editor (0)
{
+ _midnam_model_selector.disable_scrolling();
+ _midnam_custom_device_mode_selector.disable_scrolling();
}
void
ignore_toggle = false;
if (is_midi_track()) {
- controls_ebox.set_name ("MidiTimeAxisViewControlsBaseUnselected");
- time_axis_frame.set_name ("MidiTimeAxisViewControlsBaseUnselected");
_note_mode = midi_track()->note_mode();
- } else { // MIDI bus (which doesn't exist yet..)
- controls_ebox.set_name ("MidiBusControlsBaseUnselected");
- time_axis_frame.set_name ("MidiBusControlsBaseUnselected");
}
/* if set_state above didn't create a gain automation child, we need to make one */
/* map current state of the route */
ensure_pan_views (false);
-
+ update_control_names();
processors_changed (RouteProcessorChange ());
_route->processors_changed.connect (*this, invalidator (*this),
time_axis_hbox.pack_end(*v, false, false, 0);
midi_scroomer_size_group->add_widget (*v);
- controls_ebox.set_name ("MidiTrackControlsBaseUnselected");
- time_axis_frame.set_name ("MidiTrackControlsBaseUnselected");
- controls_base_selected_name = "MidiTrackControlsBaseSelected";
- controls_base_unselected_name = "MidiTrackControlsBaseUnselected";
-
midi_view()->NoteRangeChanged.connect (
sigc::mem_fun(*this, &MidiTimeAxisView::update_range));
MidiTimeAxisView::route_active_changed ()
{
RouteUI::route_active_changed ();
+ update_control_names();
+}
+void
+MidiTimeAxisView::update_control_names ()
+{
if (is_track()) {
if (_route->active()) {
- controls_ebox.set_name ("MidiTrackControlsBaseUnselected");
- time_axis_frame.set_name ("MidiTrackControlsBaseUnselected");
controls_base_selected_name = "MidiTrackControlsBaseSelected";
controls_base_unselected_name = "MidiTrackControlsBaseUnselected";
} else {
- controls_ebox.set_name ("MidiTrackControlsBaseInactiveUnselected");
- time_axis_frame.set_name ("MidiTrackControlsBaseInactiveUnselected");
controls_base_selected_name = "MidiTrackControlsBaseInactiveSelected";
controls_base_unselected_name = "MidiTrackControlsBaseInactiveUnselected";
}
- } else {
+ } else { // MIDI bus (which doesn't exist yet..)
if (_route->active()) {
- controls_ebox.set_name ("BusControlsBaseUnselected");
- time_axis_frame.set_name ("BusControlsBaseUnselected");
controls_base_selected_name = "BusControlsBaseSelected";
controls_base_unselected_name = "BusControlsBaseUnselected";
} else {
- controls_ebox.set_name ("BusControlsBaseInactiveUnselected");
- time_axis_frame.set_name ("BusControlsBaseInactiveUnselected");
controls_base_selected_name = "BusControlsBaseInactiveSelected";
controls_base_unselected_name = "BusControlsBaseInactiveUnselected";
}
}
+
+ if (selected()) {
+ controls_ebox.set_name (controls_base_selected_name);
+ time_axis_frame.set_name (controls_base_selected_name);
+ } else {
+ controls_ebox.set_name (controls_base_unselected_name);
+ time_axis_frame.set_name (controls_base_unselected_name);
+ }
}
void
}
boost::shared_ptr<MidiRegion>
-MidiTimeAxisView::add_region (framepos_t pos, framecnt_t length, bool commit)
+MidiTimeAxisView::add_region (framepos_t pos, framecnt_t length, bool commit, const int32_t sub_num)
{
Editor* real_editor = dynamic_cast<Editor*> (&_editor);
if (commit) {
plist.add (ARDOUR::Properties::name, PBD::basename_nosuffix(src->name()));
boost::shared_ptr<Region> region = (RegionFactory::create (src, plist));
-
- playlist()->add_region (region, pos);
+ /* sets beat position */
+ region->set_position (pos, sub_num);
+ playlist()->add_region (region, pos, 1.0, false, sub_num);
_session->add_command (new StatefulDiffCommand (playlist()));
if (commit) {
}
bool
-MidiTimeAxisView::paste (framepos_t pos, const Selection& selection, PasteContext& ctx)
+MidiTimeAxisView::paste (framepos_t pos, const Selection& selection, PasteContext& ctx, const int32_t sub_num)
{
if (!_editor.internal_editing()) {
// Non-internal paste, paste regions like any other route
- return RouteTimeAxisView::paste(pos, selection, ctx);
+ return RouteTimeAxisView::paste(pos, selection, ctx, sub_num);
}
- return midi_view()->paste(pos, selection, ctx);
+ return midi_view()->paste(pos, selection, ctx, sub_num);
}