convenient API to access track and region selection
This commit is contained in:
@@ -223,21 +223,27 @@ LuaInstance::register_classes (lua_State* L)
|
||||
.addFunction ("start", &RegionSelection::start)
|
||||
.addFunction ("end_frame", &RegionSelection::end_frame)
|
||||
.addFunction ("n_midi_regions", &RegionSelection::n_midi_regions)
|
||||
.addFunction ("regionlist", &RegionSelection::regionlist) // XXX check windows binding (libardour)
|
||||
.endClass ()
|
||||
|
||||
#if 0
|
||||
.beginClass <AxisView> ("AxisView")
|
||||
.endClass ()
|
||||
.deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
|
||||
.endClass ()
|
||||
.deriveClass <RouteTimeAxisView, TimeAxisView> ("RouteTimeAxisView")
|
||||
.endClass ()
|
||||
#endif
|
||||
|
||||
.beginClass <Selection> ("Selection")
|
||||
.addFunction ("clear", &Selection::clear)
|
||||
.addFunction ("clear_all", &Selection::clear_all)
|
||||
.addData ("tracks", &Selection::tracks)
|
||||
.addData ("regions", &Selection::regions)
|
||||
.endClass ()
|
||||
|
||||
.beginClass <TrackViewList> ("TrackViewList")
|
||||
.addFunction ("routelist", &TrackViewList::routelist) // XXX check windows binding (libardour)
|
||||
.endClass ()
|
||||
|
||||
.deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
|
||||
|
||||
@@ -303,3 +303,13 @@ RegionSelection::n_midi_regions () const
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
ARDOUR::RegionList
|
||||
RegionSelection::regionlist () const
|
||||
{
|
||||
ARDOUR::RegionList rl;
|
||||
for (const_iterator r = begin (); r != end (); ++r) {
|
||||
rl.push_back ((*r)->region ());
|
||||
}
|
||||
return rl;
|
||||
}
|
||||
|
||||
@@ -66,6 +66,8 @@ class RegionSelection : public std::list<RegionView*>
|
||||
std::set<boost::shared_ptr<ARDOUR::Playlist> > playlists () const;
|
||||
std::list<PBD::ID> pending;
|
||||
|
||||
ARDOUR::RegionList regionlist () const;
|
||||
|
||||
private:
|
||||
void remove_it (RegionView*);
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
#include "track_view_list.h"
|
||||
#include "route_time_axis.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
@@ -51,3 +52,16 @@ TrackViewList::add (TrackViewList const & t)
|
||||
|
||||
return added;
|
||||
}
|
||||
|
||||
ARDOUR::RouteList
|
||||
TrackViewList::routelist () const
|
||||
{
|
||||
ARDOUR::RouteList rl;
|
||||
for (TrackViewList::const_iterator i = begin (); i != end (); ++i) {
|
||||
RouteTimeAxisView* rtv = dynamic_cast<RouteTimeAxisView*> (*i);
|
||||
if (rtv) {
|
||||
rl.push_back (rtv->route ());
|
||||
}
|
||||
}
|
||||
return rl;
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#ifndef __ardour_gtk_track_view_list_h__
|
||||
#define __ardour_gtk_track_view_list_h__
|
||||
|
||||
#include "ardour/types.h"
|
||||
#include <list>
|
||||
#include <set>
|
||||
|
||||
@@ -37,6 +38,7 @@ public:
|
||||
bool contains (TimeAxisView const *) const;
|
||||
|
||||
TrackViewList filter_to_unique_playlists ();
|
||||
ARDOUR::RouteList routelist () const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user