diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-05-23 20:32:55 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-05-23 20:32:55 +0000 |
commit | e0d0735fa2c2543c6995e9128dbd16c799f4ec8f (patch) | |
tree | 92545c38f9232e2c96ade32d2c582253c45922c6 /gtk2_ardour/editor_export_audio.cc | |
parent | 7873fdb55cf8db4bfe9aaf4f4ed311ac91f7e248 (diff) |
add basic, not terribly glossy MIDI region export
git-svn-id: svn://localhost/ardour2/branches/3.0@12402 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_export_audio.cc')
-rw-r--r-- | gtk2_ardour/editor_export_audio.cc | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/gtk2_ardour/editor_export_audio.cc b/gtk2_ardour/editor_export_audio.cc index ac0c3f67c4..9521f6a0c6 100644 --- a/gtk2_ardour/editor_export_audio.cc +++ b/gtk2_ardour/editor_export_audio.cc @@ -46,6 +46,7 @@ #include "audio_time_axis.h" #include "editor.h" #include "export_dialog.h" +#include "midi_export_dialog.h" #include "midi_region_view.h" #include "public_editor.h" #include "selection.h" @@ -110,20 +111,33 @@ Editor::export_region () return; } - try { - boost::shared_ptr<Region> r = selection->regions.front()->region(); - AudioRegion & region (dynamic_cast<AudioRegion &> (*r)); - + boost::shared_ptr<Region> r = selection->regions.front()->region(); + boost::shared_ptr<AudioRegion> audio_region = boost::dynamic_pointer_cast<AudioRegion>(r); + boost::shared_ptr<MidiRegion> midi_region = boost::dynamic_pointer_cast<MidiRegion>(r); + + if (audio_region) { + RouteTimeAxisView & rtv (dynamic_cast<RouteTimeAxisView &> (selection->regions.front()->get_time_axis_view())); AudioTrack & track (dynamic_cast<AudioTrack &> (*rtv.route())); + + ExportRegionDialog dialog (*this, *(audio_region.get()), track); + dialog.set_session (_session); + dialog.run (); + + } else if (midi_region) { - ExportRegionDialog dialog (*this, region, track); + MidiExportDialog dialog (*this, midi_region); dialog.set_session (_session); - dialog.run(); + int ret = dialog.run (); + switch (ret) { + case Gtk::RESPONSE_ACCEPT: + break; + default: + return; + } - } catch (std::bad_cast & e) { - error << "Exporting Region failed!" << endmsg; - return; + string path = dialog.get_path (); + (void) midi_region->clone (path); } } |