GUI changes to allow user to specify how/if to use SMF track/instrument names during import
This commit is contained in:
parent
9a7823f139
commit
9e4b972286
|
@ -428,6 +428,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||||
Editing::ImportDisposition disposition,
|
Editing::ImportDisposition disposition,
|
||||||
Editing::ImportMode mode,
|
Editing::ImportMode mode,
|
||||||
ARDOUR::SrcQuality quality,
|
ARDOUR::SrcQuality quality,
|
||||||
|
ARDOUR::MidiTrackNameSource mts,
|
||||||
framepos_t& pos,
|
framepos_t& pos,
|
||||||
boost::shared_ptr<ARDOUR::PluginInfo> instrument = boost::shared_ptr<ARDOUR::PluginInfo>());
|
boost::shared_ptr<ARDOUR::PluginInfo> instrument = boost::shared_ptr<ARDOUR::PluginInfo>());
|
||||||
|
|
||||||
|
|
|
@ -266,6 +266,7 @@ Editor::do_import (vector<string> paths,
|
||||||
ImportDisposition disposition,
|
ImportDisposition disposition,
|
||||||
ImportMode mode,
|
ImportMode mode,
|
||||||
SrcQuality quality,
|
SrcQuality quality,
|
||||||
|
MidiTrackNameSource midi_track_name_source,
|
||||||
framepos_t& pos,
|
framepos_t& pos,
|
||||||
ARDOUR::PluginInfoPtr instrument)
|
ARDOUR::PluginInfoPtr instrument)
|
||||||
{
|
{
|
||||||
|
@ -278,7 +279,7 @@ Editor::do_import (vector<string> paths,
|
||||||
import_status.current = 1;
|
import_status.current = 1;
|
||||||
import_status.total = paths.size ();
|
import_status.total = paths.size ();
|
||||||
import_status.all_done = false;
|
import_status.all_done = false;
|
||||||
import_status.midi_track_name_source = SMFTrackName;
|
import_status.midi_track_name_source = midi_track_name_source;
|
||||||
|
|
||||||
ImportProgressWindow ipw (&import_status, _("Import"), _("Cancel Import"));
|
ImportProgressWindow ipw (&import_status, _("Import"), _("Cancel Import"));
|
||||||
|
|
||||||
|
|
|
@ -411,10 +411,10 @@ Editor::drop_paths_part_two (const vector<string>& paths, framepos_t frame, doub
|
||||||
|
|
||||||
frame = 0;
|
frame = 0;
|
||||||
InstrumentSelector is; // instantiation builds instrument-list and sets default.
|
InstrumentSelector is; // instantiation builds instrument-list and sets default.
|
||||||
do_import (midi_paths, Editing::ImportDistinctFiles, ImportAsTrack, SrcBest, frame, is.selected_instrument());
|
do_import (midi_paths, Editing::ImportDistinctFiles, ImportAsTrack, SrcBest, SMFTrackName, frame, is.selected_instrument());
|
||||||
|
|
||||||
if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
|
if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
|
||||||
do_import (audio_paths, Editing::ImportDistinctFiles, Editing::ImportAsTrack, SrcBest, frame);
|
do_import (audio_paths, Editing::ImportDistinctFiles, Editing::ImportAsTrack, SrcBest, SMFTrackName, frame);
|
||||||
} else {
|
} else {
|
||||||
do_embed (audio_paths, Editing::ImportDistinctFiles, ImportAsTrack, frame);
|
do_embed (audio_paths, Editing::ImportDistinctFiles, ImportAsTrack, frame);
|
||||||
}
|
}
|
||||||
|
@ -427,10 +427,10 @@ Editor::drop_paths_part_two (const vector<string>& paths, framepos_t frame, doub
|
||||||
/* select the track, then embed/import */
|
/* select the track, then embed/import */
|
||||||
selection->set (tv);
|
selection->set (tv);
|
||||||
|
|
||||||
do_import (midi_paths, Editing::ImportSerializeFiles, ImportToTrack, SrcBest, frame);
|
do_import (midi_paths, Editing::ImportSerializeFiles, ImportToTrack, SrcBest, SMFTrackName, frame);
|
||||||
|
|
||||||
if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
|
if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
|
||||||
do_import (audio_paths, Editing::ImportSerializeFiles, Editing::ImportToTrack, SrcBest, frame);
|
do_import (audio_paths, Editing::ImportSerializeFiles, Editing::ImportToTrack, SrcBest, SMFTrackName, frame);
|
||||||
} else {
|
} else {
|
||||||
do_embed (audio_paths, Editing::ImportSerializeFiles, ImportToTrack, frame);
|
do_embed (audio_paths, Editing::ImportSerializeFiles, ImportToTrack, frame);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1322,7 +1322,7 @@ EditorRegions::drag_data_received (const RefPtr<Gdk::DragContext>& context,
|
||||||
bool copy = ((context->get_actions() & (Gdk::ACTION_COPY | Gdk::ACTION_LINK | Gdk::ACTION_MOVE)) == Gdk::ACTION_COPY);
|
bool copy = ((context->get_actions() & (Gdk::ACTION_COPY | Gdk::ACTION_LINK | Gdk::ACTION_MOVE)) == Gdk::ACTION_COPY);
|
||||||
|
|
||||||
if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
|
if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
|
||||||
_editor->do_import (paths, Editing::ImportDistinctFiles, Editing::ImportAsRegion, SrcBest, pos);
|
_editor->do_import (paths, Editing::ImportDistinctFiles, Editing::ImportAsRegion, SrcBest, SMFTrackName, pos);
|
||||||
} else {
|
} else {
|
||||||
_editor->do_embed (paths, Editing::ImportDistinctFiles, ImportAsRegion, pos);
|
_editor->do_embed (paths, Editing::ImportDistinctFiles, ImportAsRegion, pos);
|
||||||
}
|
}
|
||||||
|
|
|
@ -220,8 +220,12 @@ class PublicEditor : public Gtkmm2ext::Tabbable {
|
||||||
virtual Editing::MouseMode effective_mouse_mode () const = 0;
|
virtual Editing::MouseMode effective_mouse_mode () const = 0;
|
||||||
|
|
||||||
/** Import existing media */
|
/** Import existing media */
|
||||||
virtual void do_import (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, framepos_t&, boost::shared_ptr<ARDOUR::PluginInfo> instrument=boost::shared_ptr<ARDOUR::PluginInfo>()) = 0;
|
virtual void do_import (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality,
|
||||||
virtual void do_embed (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode, framepos_t&, boost::shared_ptr<ARDOUR::PluginInfo> instrument=boost::shared_ptr<ARDOUR::PluginInfo>()) = 0;
|
ARDOUR::MidiTrackNameSource, framepos_t&,
|
||||||
|
boost::shared_ptr<ARDOUR::PluginInfo> instrument=boost::shared_ptr<ARDOUR::PluginInfo>()) = 0;
|
||||||
|
virtual void do_embed (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode,
|
||||||
|
framepos_t&,
|
||||||
|
boost::shared_ptr<ARDOUR::PluginInfo> instrument=boost::shared_ptr<ARDOUR::PluginInfo>()) = 0;
|
||||||
|
|
||||||
/** Open main export dialog */
|
/** Open main export dialog */
|
||||||
virtual void export_audio () = 0;
|
virtual void export_audio () = 0;
|
||||||
|
|
|
@ -84,8 +84,24 @@ using std::string;
|
||||||
string SoundFileBrowser::persistent_folder;
|
string SoundFileBrowser::persistent_folder;
|
||||||
typedef TreeView::Selection::ListHandle_Path ListPath;
|
typedef TreeView::Selection::ListHandle_Path ListPath;
|
||||||
|
|
||||||
|
static MidiTrackNameSource
|
||||||
|
string2miditracknamesource (string const & str)
|
||||||
|
{
|
||||||
|
if (str == _("by track number")) {
|
||||||
|
return SMFTrackNumber;
|
||||||
|
} else if (str == _("by track name")) {
|
||||||
|
return SMFTrackName;
|
||||||
|
} else if (str == _("by instrument name")) {
|
||||||
|
return SMFInstrumentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
warning << string_compose (_("programming error: unknown midi track name source string %1"), str) << endmsg;
|
||||||
|
|
||||||
|
return SMFTrackNumber;
|
||||||
|
}
|
||||||
|
|
||||||
static ImportMode
|
static ImportMode
|
||||||
string2importmode (string str)
|
string2importmode (string const & str)
|
||||||
{
|
{
|
||||||
if (str == _("as new tracks")) {
|
if (str == _("as new tracks")) {
|
||||||
return ImportAsTrack;
|
return ImportAsTrack;
|
||||||
|
@ -1730,9 +1746,14 @@ SoundFileOmega::SoundFileOmega (string title, ARDOUR::Session* s,
|
||||||
options.attach (src_combo, 1, 2, 4, 5, FILL, SHRINK, 8, 0);
|
options.attach (src_combo, 1, 2, 4, 5, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
l = manage (new Label);
|
l = manage (new Label);
|
||||||
l->set_markup (_("<b>Instrument</b>"));
|
l->set_markup (_("<b>MIDI Track Names</b>"));
|
||||||
options.attach (*l, 3, 4, 0, 1, FILL, SHRINK, 8, 0);
|
options.attach (*l, 3, 4, 0, 1, FILL, SHRINK, 8, 0);
|
||||||
options.attach (instrument_combo, 3, 4, 1, 2, FILL, SHRINK, 8, 0);
|
options.attach (midi_track_name_combo, 3, 4, 1, 2, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
|
l = manage (new Label);
|
||||||
|
l->set_markup (_("<b>Instrument</b>"));
|
||||||
|
options.attach (*l, 3, 4, 2, 3, FILL, SHRINK, 8, 0);
|
||||||
|
options.attach (instrument_combo, 3, 4, 3, 4, FILL, SHRINK, 8, 0);
|
||||||
|
|
||||||
Alignment *hspace = manage (new Alignment ());
|
Alignment *hspace = manage (new Alignment ());
|
||||||
hspace->set_size_request (2, 2);
|
hspace->set_size_request (2, 2);
|
||||||
|
@ -1742,6 +1763,13 @@ SoundFileOmega::SoundFileOmega (string title, ARDOUR::Session* s,
|
||||||
vspace->set_size_request (2, 2);
|
vspace->set_size_request (2, 2);
|
||||||
options.attach (*vspace, 2, 3, 0, 3, EXPAND, SHRINK, 0, 0);
|
options.attach (*vspace, 2, 3, 0, 3, EXPAND, SHRINK, 0, 0);
|
||||||
|
|
||||||
|
str.clear ();
|
||||||
|
str.push_back (_("by track number"));
|
||||||
|
str.push_back (_("by track name"));
|
||||||
|
str.push_back (_("by instrument name"));
|
||||||
|
set_popdown_strings (midi_track_name_combo, str);
|
||||||
|
midi_track_name_combo.set_active_text (str.front());
|
||||||
|
|
||||||
str.clear ();
|
str.clear ();
|
||||||
str.push_back (_("one track per file"));
|
str.push_back (_("one track per file"));
|
||||||
set_popdown_strings (channel_combo, str);
|
set_popdown_strings (channel_combo, str);
|
||||||
|
@ -1881,6 +1909,12 @@ SoundFileOmega::where_combo_changed()
|
||||||
preview.set_import_position(get_position());
|
preview.set_import_position(get_position());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MidiTrackNameSource
|
||||||
|
SoundFileOmega::get_midi_track_name_source () const
|
||||||
|
{
|
||||||
|
return string2miditracknamesource (midi_track_name_combo.get_active_text());
|
||||||
|
}
|
||||||
|
|
||||||
ImportDisposition
|
ImportDisposition
|
||||||
SoundFileOmega::get_channel_disposition () const
|
SoundFileOmega::get_channel_disposition () const
|
||||||
{
|
{
|
||||||
|
@ -1953,6 +1987,7 @@ SoundFileOmega::do_something (int action)
|
||||||
ImportDisposition chns = get_channel_disposition ();
|
ImportDisposition chns = get_channel_disposition ();
|
||||||
PluginInfoPtr instrument = instrument_combo.selected_instrument();
|
PluginInfoPtr instrument = instrument_combo.selected_instrument();
|
||||||
framepos_t where;
|
framepos_t where;
|
||||||
|
MidiTrackNameSource mts = get_midi_track_name_source ();
|
||||||
|
|
||||||
switch (pos) {
|
switch (pos) {
|
||||||
case ImportAtEditPoint:
|
case ImportAtEditPoint:
|
||||||
|
@ -1974,7 +2009,7 @@ SoundFileOmega::do_something (int action)
|
||||||
_import_active = true;
|
_import_active = true;
|
||||||
|
|
||||||
if (copy_files_btn.get_active()) {
|
if (copy_files_btn.get_active()) {
|
||||||
PublicEditor::instance().do_import (paths, chns, mode, quality, where, instrument);
|
PublicEditor::instance().do_import (paths, chns, mode, quality, mts, where, instrument);
|
||||||
} else {
|
} else {
|
||||||
PublicEditor::instance().do_embed (paths, chns, mode, where, instrument);
|
PublicEditor::instance().do_embed (paths, chns, mode, where, instrument);
|
||||||
}
|
}
|
||||||
|
@ -1986,4 +2021,3 @@ SoundFileOmega::do_something (int action)
|
||||||
reset_options ();
|
reset_options ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -283,12 +283,14 @@ class SoundFileOmega : public SoundFileBrowser
|
||||||
Gtk::ComboBoxText where_combo;
|
Gtk::ComboBoxText where_combo;
|
||||||
Gtk::ComboBoxText channel_combo;
|
Gtk::ComboBoxText channel_combo;
|
||||||
Gtk::ComboBoxText src_combo;
|
Gtk::ComboBoxText src_combo;
|
||||||
|
Gtk::ComboBoxText midi_track_name_combo;
|
||||||
InstrumentSelector instrument_combo;
|
InstrumentSelector instrument_combo;
|
||||||
|
|
||||||
Gtk::CheckButton copy_files_btn;
|
Gtk::CheckButton copy_files_btn;
|
||||||
|
|
||||||
void set_mode (Editing::ImportMode);
|
void set_mode (Editing::ImportMode);
|
||||||
Editing::ImportMode get_mode() const;
|
Editing::ImportMode get_mode() const;
|
||||||
|
ARDOUR::MidiTrackNameSource get_midi_track_name_source () const;
|
||||||
Editing::ImportPosition get_position() const;
|
Editing::ImportPosition get_position() const;
|
||||||
Editing::ImportDisposition get_channel_disposition() const;
|
Editing::ImportDisposition get_channel_disposition() const;
|
||||||
ARDOUR::SrcQuality get_src_quality() const;
|
ARDOUR::SrcQuality get_src_quality() const;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user