summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2018-10-10 20:17:57 +1100
committerDamien Zammit <damien@zamaudio.com>2018-10-12 19:09:40 +1100
commit3fd7f9478faf1be8b76b7bd1614917fc2aaf778c (patch)
tree949a2551f833b6cd137b074ae5ee89039d48797e
parent244098cb400da1666147363d6959eeee3f6595bf (diff)
PT import: Minor changes to session
-rw-r--r--libs/ardour/ardour/session.h6
-rw-r--r--libs/ardour/session.cc19
-rw-r--r--libs/ardour/wscript2
3 files changed, 27 insertions, 0 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index e63c68f604..786bb195ab 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -41,6 +41,7 @@
#include <glibmm/threads.h>
#include <ltc.h>
+#include <ptfformat.h>
#include "pbd/error.h"
#include "pbd/event_loop.h"
@@ -302,6 +303,8 @@ public:
boost::shared_ptr<RouteList> get_routes_with_internal_returns() const;
boost::shared_ptr<RouteList> get_routes_with_regions_at (samplepos_t const) const;
+ boost::shared_ptr<AudioTrack> get_nth_audio_track (int nth) const;
+
uint32_t nstripables (bool with_monitor = false) const;
uint32_t nroutes() const { return routes.reader()->size(); }
uint32_t ntracks () const;
@@ -1198,6 +1201,9 @@ public:
bool transport_master_is_external() const;
boost::shared_ptr<TransportMaster> transport_master() const;
+ void import_pt (PTFFormat& ptf, ImportStatus& status);
+ bool import_sndfile_as_region (std::string path, SrcQuality quality, samplepos_t& pos, SourceList& sources, ImportStatus& status);
+
protected:
friend class AudioEngine;
void set_block_size (pframes_t nframes);
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 064a929b43..228c52ef08 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -6460,6 +6460,25 @@ Session::route_removed_from_route_group (RouteGroup* rg, boost::weak_ptr<Route>
}
}
+boost::shared_ptr<AudioTrack>
+Session::get_nth_audio_track (int nth) const
+{
+ boost::shared_ptr<RouteList> rl = routes.reader ();
+ rl->sort (Stripable::Sorter ());
+
+ for (RouteList::const_iterator r = rl->begin(); r != rl->end(); ++r) {
+ if (!boost::dynamic_pointer_cast<AudioTrack> (*r)) {
+ continue;
+ }
+
+ if (--nth > 0) {
+ continue;
+ }
+ return boost::dynamic_pointer_cast<AudioTrack> (*r);
+ }
+ return boost::shared_ptr<AudioTrack> ();
+}
+
boost::shared_ptr<RouteList>
Session::get_tracks () const
{
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
index efc305325a..ffc6827334 100644
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -103,6 +103,7 @@ libardour_sources = [
'iec1ppmdsp.cc',
'iec2ppmdsp.cc',
'import.cc',
+ 'import_pt.cc',
'instrument_info.cc',
'internal_return.cc',
'internal_send.cc',
@@ -399,6 +400,7 @@ def build(bld):
'libaudiographer',
'libtemporal',
'liblua',
+ 'libptformat',
'zita-resampler',
]
if bld.env['build_target'] != 'mingw':