diff options
author | Robin Gareus <robin@gareus.org> | 2016-05-23 00:05:02 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-05-23 00:05:02 +0200 |
commit | f03252cf884d5286e73fdf588a3992efc053f3dc (patch) | |
tree | c7da93173dc2ac6f5917b4ee09f982ada70a251e /gtk2_ardour/editor_pt_import.cc | |
parent | fd56c33f204817dbfc545b71de3ee3196706ff60 (diff) |
possible fix or workaround[?] for pt track-name encoding
Diffstat (limited to 'gtk2_ardour/editor_pt_import.cc')
-rw-r--r-- | gtk2_ardour/editor_pt_import.cc | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_pt_import.cc b/gtk2_ardour/editor_pt_import.cc index 3639fcf877..23a6fd2f06 100644 --- a/gtk2_ardour/editor_pt_import.cc +++ b/gtk2_ardour/editor_pt_import.cc @@ -249,7 +249,22 @@ Editor::do_ptimport (std::string ptpath, return; } existing_track = at.back(); - existing_track->set_name (a->name); + std::string trackname; + try { + trackname = Glib::convert_with_fallback (a->name, "UTF-8", "UTF-8", "_"); + } catch (Glib::ConvertError& err) { + trackname = string_compose ("Invalid %1", a->index); + } + // TODO legalize track name (no slashes, no colons) +#if 0 // TODO -- "find_route_name" is currently private + /* generate a unique name by adding a number if needed */ + uint32_t id = 0; + if (!_session->find_route_name (trackname.c_str (), id, trackname, false)) { + fatal << _("PTImport: UINT_MAX routes? impossible!") << endmsg; + abort(); /*NOTREACHED*/ + } +#endif + existing_track->set_name (trackname); boost::shared_ptr<Playlist> playlist = existing_track->playlist(); boost::shared_ptr<Region> copy (RegionFactory::create (r, true)); playlist->clear_changes (); |