diff options
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/ardour.h | 7 | ||||
-rw-r--r-- | libs/ardour/ardour/audio_unit.h | 16 | ||||
-rw-r--r-- | libs/ardour/ardour/audiosource.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/automatable.h | 5 | ||||
-rw-r--r-- | libs/ardour/ardour/configuration_vars.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/io.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/io_processor.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/playlist.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/route.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 17 | ||||
-rw-r--r-- | libs/ardour/ardour/types.h | 3 | ||||
-rw-r--r-- | libs/ardour/ardour/utils.h | 2 |
12 files changed, 49 insertions, 14 deletions
diff --git a/libs/ardour/ardour/ardour.h b/libs/ardour/ardour/ardour.h index fcec83394f..6f653f10bf 100644 --- a/libs/ardour/ardour/ardour.h +++ b/libs/ardour/ardour/ardour.h @@ -20,8 +20,10 @@ #ifndef __ardour_ardour_h__ #define __ardour_ardour_h__ -#include <limits.h> +#include <map> #include <string> + +#include <limits.h> #include <signal.h> #include <pbd/error.h> @@ -43,12 +45,15 @@ namespace ARDOUR { extern OSC* osc; static const nframes_t max_frames = JACK_MAX_FRAMES; + extern sigc::signal<void,std::string> BootMessage; int init (bool with_vst, bool try_optimization); int cleanup (); std::string get_ardour_revision (); + void find_bindings_files (std::map<std::string,std::string>&); + const layer_t max_layer = UCHAR_MAX; microseconds_t get_microseconds (); diff --git a/libs/ardour/ardour/audio_unit.h b/libs/ardour/ardour/audio_unit.h index c781e8200d..bdeac0477b 100644 --- a/libs/ardour/ardour/audio_unit.h +++ b/libs/ardour/ardour/audio_unit.h @@ -32,6 +32,7 @@ #include <ardour/plugin.h> #include <AudioUnit/AudioUnit.h> +#include <appleutility/AUParamInfo.h> #include <boost/shared_ptr.hpp> @@ -45,6 +46,16 @@ namespace ARDOUR { class AudioEngine; class Session; +struct AUParameterDescriptor : public Plugin::ParameterDescriptor { + // additional fields to make operations more efficient + AudioUnitParameterID id; + AudioUnitScope scope; + AudioUnitElement element; + float default_value; + bool automatable; + AudioUnitParameterUnit unit; +}; + class AUPlugin : public ARDOUR::Plugin { public: @@ -105,7 +116,7 @@ class AUPlugin : public ARDOUR::Plugin private: boost::shared_ptr<CAComponent> comp; boost::shared_ptr<CAAudioUnit> unit; - + AudioStreamBasicDescription streamFormat; bool initialized; int format_set; @@ -119,6 +130,7 @@ class AUPlugin : public ARDOUR::Plugin int set_input_format (); int set_stream_format (int scope, uint32_t cnt); int _set_block_size (nframes_t nframes); + void discover_parameters (); std::vector<std::pair<uint32_t, uint32_t> > parameter_map; uint32_t current_maxbuf; @@ -126,6 +138,8 @@ class AUPlugin : public ARDOUR::Plugin nframes_t cb_offset; vector<Sample*>* current_buffers; nframes_t frames_processed; + + std::vector<AUParameterDescriptor> descriptors; }; typedef boost::shared_ptr<AUPlugin> AUPluginPtr; diff --git a/libs/ardour/ardour/audiosource.h b/libs/ardour/ardour/audiosource.h index 1589841baa..d11b829694 100644 --- a/libs/ardour/ardour/audiosource.h +++ b/libs/ardour/ardour/audiosource.h @@ -116,7 +116,6 @@ class AudioSource : public Source, public boost::enable_shared_from_this<ARDOUR: static bool _build_peakfiles; bool _peaks_built; - bool _analysed; mutable Glib::Mutex _lock; mutable Glib::Mutex _peaks_ready_lock; Glib::ustring peakpath; diff --git a/libs/ardour/ardour/automatable.h b/libs/ardour/ardour/automatable.h index f96ecc0bd1..a2c1d98ae7 100644 --- a/libs/ardour/ardour/automatable.h +++ b/libs/ardour/ardour/automatable.h @@ -57,7 +57,10 @@ public: virtual void add_control(boost::shared_ptr<AutomationControl>); - virtual void automation_snapshot(nframes_t now); + virtual void automation_snapshot(nframes_t now, bool force); + bool should_snapshot (nframes_t now) { + return (_last_automation_snapshot > now || (now - _last_automation_snapshot) > _automation_interval); + } virtual void transport_stopped(nframes_t now); virtual bool find_next_event(nframes_t start, nframes_t end, ControlEvent& ev) const; diff --git a/libs/ardour/ardour/configuration_vars.h b/libs/ardour/ardour/configuration_vars.h index 134557daeb..015c617425 100644 --- a/libs/ardour/ardour/configuration_vars.h +++ b/libs/ardour/ardour/configuration_vars.h @@ -105,6 +105,7 @@ CONFIG_VARIABLE (bool, punch_out, "punch-out", false) CONFIG_VARIABLE (bool, plugins_stop_with_transport, "plugins-stop-with-transport", false) CONFIG_VARIABLE (bool, do_not_record_plugins, "do-not-record-plugins", false) CONFIG_VARIABLE (bool, stop_recording_on_xrun, "stop-recording-on-xrun", false) +CONFIG_VARIABLE (bool, create_xrun_marker, "create-xrun-marker", true) CONFIG_VARIABLE (bool, stop_at_session_end, "stop-at-session-end", true) CONFIG_VARIABLE (bool, seamless_loop, "seamless-loop", false) CONFIG_VARIABLE (nframes_t, preroll, "preroll", 0) diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h index 0b82844f61..83b6378dae 100644 --- a/libs/ardour/ardour/io.h +++ b/libs/ardour/ardour/io.h @@ -251,8 +251,8 @@ class IO : public Automatable, public Latent void set_parameter_automation_state (Parameter, AutoState); - virtual void transport_stopped (nframes_t now); // interface: matches Insert - void automation_snapshot (nframes_t now); // interface: matches Automatable + virtual void transport_stopped (nframes_t now); + virtual void automation_snapshot (nframes_t now, bool force); void start_pan_touch (uint32_t which); void end_pan_touch (uint32_t which); diff --git a/libs/ardour/ardour/io_processor.h b/libs/ardour/ardour/io_processor.h index 409ad91b15..a535ce3bb4 100644 --- a/libs/ardour/ardour/io_processor.h +++ b/libs/ardour/ardour/io_processor.h @@ -65,7 +65,7 @@ class IOProcessor : public Processor boost::shared_ptr<IO> io() { return _io; } boost::shared_ptr<const IO> io() const { return _io; } - virtual void automation_snapshot (nframes_t now) { _io->automation_snapshot(now); } + virtual void automation_snapshot (nframes_t now, bool force) { _io->automation_snapshot(now, force); } virtual void run_in_place (BufferSet& in, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset) = 0; diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h index d8a38841f8..4640a8e32f 100644 --- a/libs/ardour/ardour/playlist.h +++ b/libs/ardour/ardour/playlist.h @@ -126,7 +126,6 @@ class Playlist : public SessionObject, public boost::enable_shared_from_this<Pla sigc::signal<void> LengthChanged; static string bump_name (string old_name, Session&); - static string bump_name_once (string old_name); void freeze (); void thaw (); diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index 2466f37996..c7c0b77102 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -75,6 +75,8 @@ class Route : public IO Route (Session&, const XMLNode&, DataType default_type = DataType::AUDIO); virtual ~Route(); + static std::string ensure_track_or_route_name(std::string, Session &); + std::string comment() { return _comment; } void set_comment (std::string str, void *src); @@ -247,7 +249,7 @@ class Route : public IO return _mute_control; } - void automation_snapshot (nframes_t now); + void automation_snapshot (nframes_t now, bool force=false); void protect_automation (); void set_remote_control_id (uint32_t id); diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index c0c178eb02..10167ae5b3 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -353,7 +353,7 @@ class Session : public PBD::StatefulDestructible sigc::signal<void> TransportStateChange; /* generic */ sigc::signal<void,nframes_t> PositionChanged; /* sent after any non-sequential motion */ sigc::signal<void> DurationChanged; - sigc::signal<void> HaltOnXrun; + sigc::signal<void,nframes_t> Xrun; sigc::signal<void> TransportLooped; sigc::signal<void,RouteList&> RouteAdded; @@ -563,8 +563,11 @@ class Session : public PBD::StatefulDestructible /* region info */ - sigc::signal<void,boost::shared_ptr<Region> > RegionAdded; - sigc::signal<void,boost::shared_ptr<Region> > RegionRemoved; + void add_regions (std::vector<boost::shared_ptr<Region> >&); + + sigc::signal<void,boost::weak_ptr<Region> > RegionAdded; + sigc::signal<void,std::vector<boost::weak_ptr<Region> >& > RegionsAdded; + sigc::signal<void,boost::weak_ptr<Region> > RegionRemoved; int region_name (string& result, string base = string(""), bool newlevel = false) const; string new_region_name (string); @@ -586,10 +589,10 @@ class Session : public PBD::StatefulDestructible string doing_what; /* control info */ - bool sample_convert; SrcQuality quality; volatile bool freeze; std::vector<Glib::ustring> paths; + bool replace_existing_source; /* result */ SourceList sources; @@ -1480,6 +1483,12 @@ class Session : public PBD::StatefulDestructible SourceMap sources; + public: + SourceMap get_sources() { return sources; } + + private: + + int load_sources (const XMLNode& node); XMLNode& get_sources_as_xml (); diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h index fdf8d0b439..efc2e35ecc 100644 --- a/libs/ardour/ardour/types.h +++ b/libs/ardour/ardour/types.h @@ -257,7 +257,8 @@ namespace ARDOUR { enum EditMode { Slide, - Splice + Splice, + Lock }; enum RegionPoint { diff --git a/libs/ardour/ardour/utils.h b/libs/ardour/ardour/utils.h index e52274eb1f..eecde2e85f 100644 --- a/libs/ardour/ardour/utils.h +++ b/libs/ardour/ardour/utils.h @@ -45,6 +45,8 @@ static inline float f_max(float x, float a) { return (x); } +std::string bump_name_once(std::string s); + int cmp_nocase (const std::string& s, const std::string& s2); int touch_file(Glib::ustring path); |