Added dialog to allow adding any Midi CC track.
Fix display/menu generation when adding a MIDI CC track. Fix crash bug triggered by recording MIDI track with visible CC child track. git-svn-id: svn://localhost/ardour2/trunk@2073 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
a43185634c
commit
fc7a2e9ee1
@ -84,6 +84,7 @@ gtkardour_files=Split("""
|
||||
about.cc
|
||||
actions.cc
|
||||
add_route_dialog.cc
|
||||
add_midi_cc_track_dialog.cc
|
||||
ardour_dialog.cc
|
||||
ardour_ui.cc
|
||||
ardour_ui2.cc
|
||||
|
@ -117,7 +117,7 @@ AddRouteDialog::AddRouteDialog ()
|
||||
VBox *dvbox = manage (new VBox);
|
||||
HBox *dhbox = manage (new HBox);
|
||||
|
||||
ccframe.set_label (_("Channel Configuration"));
|
||||
ccframe.set_label (_("Channel Configuration"));
|
||||
ccframe.set_shadow_type (SHADOW_IN);
|
||||
|
||||
dvbox->pack_start (channel_combo, true, false, 5);
|
||||
|
@ -175,8 +175,21 @@ MidiRegionView::show_region_editor ()
|
||||
GhostRegion*
|
||||
MidiRegionView::add_ghost (AutomationTimeAxisView& atv)
|
||||
{
|
||||
throw; // FIXME
|
||||
return NULL;
|
||||
RouteTimeAxisView* rtv = dynamic_cast<RouteTimeAxisView*>(&trackview);
|
||||
assert(rtv);
|
||||
|
||||
double unit_position = _region->position () / samples_per_unit;
|
||||
GhostRegion* ghost = new GhostRegion (atv, unit_position);
|
||||
|
||||
cerr << "FIXME: add notes to MIDI region ghost." << endl;
|
||||
|
||||
ghost->set_height ();
|
||||
ghost->set_duration (_region->length() / samples_per_unit);
|
||||
ghosts.push_back (ghost);
|
||||
|
||||
ghost->GoingAway.connect (mem_fun(*this, &MidiRegionView::remove_ghost));
|
||||
|
||||
return ghost;
|
||||
}
|
||||
|
||||
|
||||
|
@ -49,6 +49,7 @@
|
||||
#include "midi_time_axis.h"
|
||||
#include "automation_time_axis.h"
|
||||
#include "automation_midi_cc_line.h"
|
||||
#include "add_midi_cc_track_dialog.h"
|
||||
#include "canvas_impl.h"
|
||||
#include "crossfade_view.h"
|
||||
#include "enums.h"
|
||||
@ -168,10 +169,13 @@ MidiTimeAxisView::build_automation_action_menu ()
|
||||
void
|
||||
MidiTimeAxisView::add_controller_track()
|
||||
{
|
||||
/* TODO: fancy controller selection dialog here... */
|
||||
|
||||
ParamID param(MidiCCAutomation, 7);
|
||||
create_automation_child(param);
|
||||
AddMidiCCTrackDialog dialog;
|
||||
dialog.set_transient_for(editor);
|
||||
int response = dialog.run();
|
||||
if (response == Gtk::RESPONSE_ACCEPT) {
|
||||
ParamID param = dialog.parameter();
|
||||
create_automation_child(param);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1786,7 +1786,7 @@ RouteTimeAxisView::add_automation_child(ParamID param, AutomationTimeAxisView* t
|
||||
|
||||
track->Hiding.connect (bind (mem_fun (*this, &RouteTimeAxisView::automation_track_hidden), param));
|
||||
|
||||
bool hideit = true;
|
||||
bool hideit = false;
|
||||
|
||||
XMLNode* node;
|
||||
|
||||
@ -1797,14 +1797,17 @@ RouteTimeAxisView::add_automation_child(ParamID param, AutomationTimeAxisView* t
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_automation_tracks.insert(std::make_pair(param, new RouteAutomationNode(param, NULL, track)));
|
||||
|
||||
if (hideit) {
|
||||
track->hide ();
|
||||
} else {
|
||||
_show_automation.insert(param);
|
||||
_route->gui_changed ("track_height", (void *) 0); /* EMIT_SIGNAL */
|
||||
}
|
||||
|
||||
_automation_tracks.insert(std::make_pair(param, new RouteAutomationNode(param, NULL, track)));
|
||||
|
||||
build_automation_action_menu();
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user