summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2008-05-08 09:53:19 +0000
committerHans Baier <hansfbaier@googlemail.com>2008-05-08 09:53:19 +0000
commitf65119016207d9c413437227bd5117fef7dc31b1 (patch)
treee3315e832c08526ee9416b4c0c80135414587da2 /gtk2_ardour
parenta42913736ab4bd1743d7c29feaaa431094ccb4c9 (diff)
* fixed some valgrind issues (uninitialized instance vars)
* Added preliminary support for program changes flags from automation lists git-svn-id: svn://localhost/ardour2/branches/3.0@3327 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/audio_clock.cc3
-rw-r--r--gtk2_ardour/midi_region_view.cc22
2 files changed, 21 insertions, 4 deletions
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc
index 3ca5ca38e4..5ce5159e72 100644
--- a/gtk2_ardour/audio_clock.cc
+++ b/gtk2_ardour/audio_clock.cc
@@ -74,7 +74,8 @@ AudioClock::AudioClock (std::string clock_name, bool transient, std::string widg
colon4 (":"),
colon5 (":"),
b1 ("|"),
- b2 ("|")
+ b2 ("|"),
+ last_when(0)
{
session = 0;
last_when = 0;
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index aa245ed0e1..5b0f3070d4 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -460,7 +460,7 @@ MidiRegionView::redisplay_model()
_model->read_lock();
- /*
+
MidiModel::Notes notes = _model->notes();
cerr << endl << "Model contains " << notes.size() << " Notes:" << endl;
for(MidiModel::Notes::iterator i = notes.begin(); i != notes.end(); ++i) {
@@ -471,13 +471,29 @@ MidiRegionView::redisplay_model()
//<< " Note-on: " << note.on_event().
//<< " Note-off: " << note.off_event()
<< endl;
- }*/
+ }
for (size_t i=0; i < _model->n_notes(); ++i) {
add_note(_model->note_at(i));
}
- // TODO: Add program changes here
+ for (Automatable::Controls::iterator
+ control = _model->controls().begin();
+ control != _model->controls().end(); ++control) {
+
+ if( control->first.type() == MidiPgmChangeAutomation ) {
+ Glib::Mutex::Lock list_lock (control->second->list()->lock());
+
+ for(AutomationList::const_iterator event = control->second->list()->begin();
+ event != control->second->list()->end(); ++event) {
+ boost::shared_ptr<MIDI::Event> midi_event(new MIDI::Event());
+ MidiControlIterator iter(control->second->list(), (*event)->when, (*event)->value);
+ _model->control_to_midi_event(*midi_event, iter);
+ add_pgm_change(midi_event);
+ }
+ break;
+ }
+ }
end_write();