add API to load Instrument Preset when creating a Midi track
This commit is contained in:
parent
b15ed28f79
commit
766a120a3c
@ -68,6 +68,7 @@
|
|||||||
#include "ardour/session_configuration.h"
|
#include "ardour/session_configuration.h"
|
||||||
#include "ardour/session_event.h"
|
#include "ardour/session_event.h"
|
||||||
#include "ardour/interpolation.h"
|
#include "ardour/interpolation.h"
|
||||||
|
#include "ardour/plugin.h"
|
||||||
#include "ardour/route.h"
|
#include "ardour/route.h"
|
||||||
#include "ardour/route_graph.h"
|
#include "ardour/route_graph.h"
|
||||||
|
|
||||||
@ -605,10 +606,15 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
|
|||||||
const ChanCount& input, const ChanCount& output,
|
const ChanCount& input, const ChanCount& output,
|
||||||
boost::shared_ptr<PluginInfo> instrument = boost::shared_ptr<PluginInfo>(),
|
boost::shared_ptr<PluginInfo> instrument = boost::shared_ptr<PluginInfo>(),
|
||||||
TrackMode mode = Normal,
|
TrackMode mode = Normal,
|
||||||
RouteGroup* route_group = 0, uint32_t how_many = 1, std::string name_template = ""
|
RouteGroup* route_group = 0, uint32_t how_many = 1, std::string name_template = "",
|
||||||
|
Plugin::PresetRecord* pset = 0
|
||||||
);
|
);
|
||||||
|
|
||||||
RouteList new_midi_route (RouteGroup* route_group, uint32_t how_many, std::string name_template = "", boost::shared_ptr<PluginInfo> instrument = boost::shared_ptr<PluginInfo>());
|
RouteList new_midi_route (RouteGroup* route_group,
|
||||||
|
uint32_t how_many,
|
||||||
|
std::string name_template = "",
|
||||||
|
boost::shared_ptr<PluginInfo> instrument = boost::shared_ptr<PluginInfo>(),
|
||||||
|
Plugin::PresetRecord* pset = 0);
|
||||||
|
|
||||||
void remove_routes (boost::shared_ptr<RouteList>);
|
void remove_routes (boost::shared_ptr<RouteList>);
|
||||||
void remove_route (boost::shared_ptr<Route>);
|
void remove_route (boost::shared_ptr<Route>);
|
||||||
|
@ -2425,7 +2425,7 @@ Session::default_track_name_pattern (DataType t)
|
|||||||
*/
|
*/
|
||||||
list<boost::shared_ptr<MidiTrack> >
|
list<boost::shared_ptr<MidiTrack> >
|
||||||
Session::new_midi_track (const ChanCount& input, const ChanCount& output, boost::shared_ptr<PluginInfo> instrument,
|
Session::new_midi_track (const ChanCount& input, const ChanCount& output, boost::shared_ptr<PluginInfo> instrument,
|
||||||
TrackMode mode, RouteGroup* route_group, uint32_t how_many, string name_template)
|
TrackMode mode, RouteGroup* route_group, uint32_t how_many, string name_template, Plugin::PresetRecord* pset)
|
||||||
{
|
{
|
||||||
string track_name;
|
string track_name;
|
||||||
uint32_t track_id = 0;
|
uint32_t track_id = 0;
|
||||||
@ -2517,6 +2517,9 @@ Session::new_midi_track (const ChanCount& input, const ChanCount& output, boost:
|
|||||||
if (instrument) {
|
if (instrument) {
|
||||||
for (RouteList::iterator r = new_routes.begin(); r != new_routes.end(); ++r) {
|
for (RouteList::iterator r = new_routes.begin(); r != new_routes.end(); ++r) {
|
||||||
PluginPtr plugin = instrument->load (*this);
|
PluginPtr plugin = instrument->load (*this);
|
||||||
|
if (pset) {
|
||||||
|
plugin->load_preset (*pset);
|
||||||
|
}
|
||||||
boost::shared_ptr<Processor> p (new PluginInsert (*this, plugin));
|
boost::shared_ptr<Processor> p (new PluginInsert (*this, plugin));
|
||||||
(*r)->add_processor (p, PreFader);
|
(*r)->add_processor (p, PreFader);
|
||||||
|
|
||||||
@ -2528,7 +2531,7 @@ Session::new_midi_track (const ChanCount& input, const ChanCount& output, boost:
|
|||||||
}
|
}
|
||||||
|
|
||||||
RouteList
|
RouteList
|
||||||
Session::new_midi_route (RouteGroup* route_group, uint32_t how_many, string name_template, boost::shared_ptr<PluginInfo> instrument)
|
Session::new_midi_route (RouteGroup* route_group, uint32_t how_many, string name_template, boost::shared_ptr<PluginInfo> instrument, Plugin::PresetRecord* pset)
|
||||||
{
|
{
|
||||||
string bus_name;
|
string bus_name;
|
||||||
uint32_t bus_id = 0;
|
uint32_t bus_id = 0;
|
||||||
@ -2606,6 +2609,9 @@ Session::new_midi_route (RouteGroup* route_group, uint32_t how_many, string name
|
|||||||
if (instrument) {
|
if (instrument) {
|
||||||
for (RouteList::iterator r = ret.begin(); r != ret.end(); ++r) {
|
for (RouteList::iterator r = ret.begin(); r != ret.end(); ++r) {
|
||||||
PluginPtr plugin = instrument->load (*this);
|
PluginPtr plugin = instrument->load (*this);
|
||||||
|
if (pset) {
|
||||||
|
plugin->load_preset (*pset);
|
||||||
|
}
|
||||||
boost::shared_ptr<Processor> p (new PluginInsert (*this, plugin));
|
boost::shared_ptr<Processor> p (new PluginInsert (*this, plugin));
|
||||||
(*r)->add_processor (p, PreFader);
|
(*r)->add_processor (p, PreFader);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user