summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_pt_import.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-05-23 00:05:02 +0200
committerRobin Gareus <robin@gareus.org>2016-05-23 00:05:02 +0200
commitf03252cf884d5286e73fdf588a3992efc053f3dc (patch)
treec7da93173dc2ac6f5917b4ee09f982ada70a251e /gtk2_ardour/editor_pt_import.cc
parentfd56c33f204817dbfc545b71de3ee3196706ff60 (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.cc17
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 ();