class AudioFileSource;
class MidiSource;
class Auditioner;
-class Insert;
+class Processor;
class Send;
-class Redirect;
+class IOProcessor;
class PortInsert;
class PluginInsert;
class Bundle;
std::string automation_dir () const;
- static string suffixed_search_path (std::string suffix, bool data);
- static string control_protocol_path ();
- static string template_path ();
- static string template_dir ();
-
static string change_audio_path_by_name (string oldpath, string oldname, string newname, bool destructive);
static string change_midi_path_by_name (string oldpath, string oldname, string newname, bool destructive);
BufferSet& get_silent_buffers (ChanCount count = ChanCount::ZERO);
BufferSet& get_scratch_buffers (ChanCount count = ChanCount::ZERO);
- BufferSet& get_send_buffers (ChanCount count = ChanCount::ZERO);
+ BufferSet& get_mix_buffers (ChanCount count = ChanCount::ZERO);
void add_diskstream (boost::shared_ptr<Diskstream>);
boost::shared_ptr<Diskstream> diskstream_by_id (const PBD::ID& id);
sigc::signal<void,nframes_t> PositionChanged; /* sent after any non-sequential motion */
sigc::signal<void> DurationChanged;
sigc::signal<void> HaltOnXrun;
+ sigc::signal<void> TransportLooped;
sigc::signal<void,RouteList&> RouteAdded;
int save_state (string snapshot_name, bool pending = false);
int restore_state (string snapshot_name);
int save_template (string template_name);
- int save_history (string snapshot_name = "");
- int restore_history (string snapshot_name);
+ int save_history (string snapshot_name = "");
+ int restore_history (string snapshot_name);
void remove_state (string snapshot_name);
void rename_state (string old_name, string new_name);
-
- static int rename_template (string old_name, string new_name);
-
- static int delete_template (string name);
sigc::signal<void,string> StateSaved;
sigc::signal<void> StateReady;
XMLNode& get_state();
int set_state(const XMLNode& node); // not idempotent
XMLNode& get_template();
-
- void add_instant_xml (XMLNode&, const std::string& dir);
+
+ /// The instant xml file is written to the session directory
+ void add_instant_xml (XMLNode&);
+ XMLNode * instant_xml (const std::string& str);
enum StateOfTheState {
Clean = 0x0,
sigc::signal<void> NamedSelectionAdded;
sigc::signal<void> NamedSelectionRemoved;
- /* Curves and AutomationLists (TODO when they go away) */
- void add_curve(Curve*);
- void add_automation_list(AutomationList*);
+ /* Curves and AutomationLists (TODO when they go away) */
+ void add_curve(Curve*);
+ void add_automation_list(AutomationList*);
+
+ nframes_t automation_interval () const { return _automation_interval; }
/* fade curves */
std::map<PBD::ID, PBD::StatefulThingWithGoingAway*> registry;
- // these commands are implemented in libs/ardour/session_command.cc
+ // these commands are implemented in libs/ardour/session_command.cc
Command* memento_command_factory(XMLNode* n);
- void register_with_memento_command_factory(PBD::ID, PBD::StatefulThingWithGoingAway*);
+ void register_with_memento_command_factory(PBD::ID, PBD::StatefulThingWithGoingAway*);
Command* global_state_command_factory (const XMLNode& n);
/* Controllables */
- PBD::Controllable* controllable_by_id (const PBD::ID&);
+ boost::shared_ptr<PBD::Controllable> controllable_by_id (const PBD::ID&);
- void add_controllable (PBD::Controllable*);
+ void add_controllable (boost::shared_ptr<PBD::Controllable>);
void remove_controllable (PBD::Controllable*);
protected:
nframes_t last_stop_frame;
BufferSet* _scratch_buffers;
BufferSet* _silent_buffers;
- BufferSet* _send_buffers;
+ BufferSet* _mix_buffers;
nframes_t current_block_size;
nframes_t _worst_output_latency;
nframes_t _worst_input_latency;
void set_play_loop (bool yn);
void overwrite_some_buffers (Diskstream*);
- void flush_all_redirects ();
+ void flush_all_inserts ();
void locate (nframes_t, bool with_roll, bool with_flush, bool with_loop=false);
void start_locate (nframes_t, bool with_roll, bool with_flush, bool with_loop=false);
void force_locate (nframes_t frame, bool with_roll = false);
uint32_t insert_cnt;
- void add_redirect (Redirect *);
- void remove_redirect (Redirect *);
+ void add_processor (Processor *);
+ void remove_processor (Processor *);
/* S/W RAID */
void allocate_pan_automation_buffers (nframes_t nframes, uint32_t howmany, bool force);
uint32_t _npan_buffers;
+ nframes_t _automation_interval;
+
/* VST support */
long _vst_callback (VSTPlugin*,
LayerModel layer_model;
CrossfadeModel xfade_model;
- typedef std::set<PBD::Controllable*> Controllables;
+ typedef std::set<boost::shared_ptr<PBD::Controllable> > Controllables;
Glib::Mutex controllables_lock;
Controllables controllables;