diff options
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/audio_unit.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/audioengine.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/automation_event.h | 14 | ||||
-rw-r--r-- | libs/ardour/ardour/configuration_vars.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/playlist.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/region.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/region_factory.h | 7 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 8 |
8 files changed, 38 insertions, 4 deletions
diff --git a/libs/ardour/ardour/audio_unit.h b/libs/ardour/ardour/audio_unit.h index bdeac0477b..dc9a52d5d3 100644 --- a/libs/ardour/ardour/audio_unit.h +++ b/libs/ardour/ardour/audio_unit.h @@ -60,6 +60,7 @@ class AUPlugin : public ARDOUR::Plugin { public: AUPlugin (AudioEngine& engine, Session& session, boost::shared_ptr<CAComponent> comp); + AUPlugin (const AUPlugin& other); virtual ~AUPlugin (); std::string unique_id () const; @@ -106,7 +107,7 @@ class AUPlugin : public ARDOUR::Plugin uint32_t input_streams() const; boost::shared_ptr<CAAudioUnit> get_au () { return unit; } - boost::shared_ptr<CAComponent> get_comp () { return comp; } + boost::shared_ptr<CAComponent> get_comp () const { return comp; } OSStatus render_callback(AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, @@ -140,6 +141,7 @@ class AUPlugin : public ARDOUR::Plugin nframes_t frames_processed; std::vector<AUParameterDescriptor> descriptors; + void init (); }; typedef boost::shared_ptr<AUPlugin> AUPluginPtr; diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h index 88f1111a6c..e1d5e50cc2 100644 --- a/libs/ardour/ardour/audioengine.h +++ b/libs/ardour/ardour/audioengine.h @@ -133,6 +133,8 @@ class AudioEngine : public sigc::trackable uint32_t n_physical_outputs () const; uint32_t n_physical_inputs () const; + bool can_request_hardware_monitoring (); + void get_physical_outputs (std::vector<std::string>&); void get_physical_inputs (std::vector<std::string>&); diff --git a/libs/ardour/ardour/automation_event.h b/libs/ardour/ardour/automation_event.h index 1831f5ca4d..4f8406bd9b 100644 --- a/libs/ardour/ardour/automation_event.h +++ b/libs/ardour/ardour/automation_event.h @@ -27,6 +27,9 @@ #include <sigc++/signal.h> #include <glibmm/thread.h> +#include <boost/pool/pool.hpp> +#include <boost/pool/pool_alloc.hpp> + #include <pbd/undo.h> #include <pbd/xml++.h> #include <pbd/statefuldestructible.h> @@ -67,12 +70,21 @@ struct ControlEvent { double* coeff; ///< double[4] allocated by Curve as needed }; +/* automation lists use a pool allocator that does not use a lock and + allocates 8k of new pointers at a time +*/ + +typedef boost::fast_pool_allocator<ControlEvent*, + boost::default_user_allocator_new_delete, + boost::details::pool::null_mutex, + 8192> ControlEventAllocator; class AutomationList : public PBD::StatefulDestructible { public: - typedef std::list<ControlEvent*> EventList; + typedef std::list<ControlEvent*,ControlEventAllocator> EventList; typedef EventList::iterator iterator; + typedef EventList::reverse_iterator reverse_iterator; typedef EventList::const_iterator const_iterator; AutomationList (Parameter id, double min_val, double max_val, double default_val); diff --git a/libs/ardour/ardour/configuration_vars.h b/libs/ardour/ardour/configuration_vars.h index 732585982d..95313b5b9b 100644 --- a/libs/ardour/ardour/configuration_vars.h +++ b/libs/ardour/ardour/configuration_vars.h @@ -53,7 +53,7 @@ CONFIG_VARIABLE (float, track_buffer_seconds, "track-buffer-seconds", 5.0) CONFIG_VARIABLE (uint32_t, disk_choice_space_threshold, "disk-choice-space-threshold", 57600000) CONFIG_VARIABLE (SampleFormat, native_file_data_format, "native-file-data-format", ARDOUR::FormatFloat) CONFIG_VARIABLE (HeaderFormat, native_file_header_format, "native-file-header-format", ARDOUR::WAVE) -CONFIG_VARIABLE (bool, auto_analyse_audio, "auto-analyse-audio", true) +CONFIG_VARIABLE (bool, auto_analyse_audio, "auto-analyse-audio", false) /* OSC */ diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h index 4640a8e32f..ad7210f48f 100644 --- a/libs/ardour/ardour/playlist.h +++ b/libs/ardour/ardour/playlist.h @@ -92,6 +92,8 @@ class Playlist : public SessionObject, public boost::enable_shared_from_this<Pla void get_region_list_equivalent_regions (boost::shared_ptr<Region>, std::vector<boost::shared_ptr<Region> >&); void replace_region (boost::shared_ptr<Region> old, boost::shared_ptr<Region> newr, nframes_t pos); void split_region (boost::shared_ptr<Region>, nframes_t position); + void split (nframes64_t at); + void shift (nframes64_t at, nframes64_t distance, bool move_intersected, bool ignore_music_glue); void partition (nframes_t start, nframes_t end, bool just_top_level); void duplicate (boost::shared_ptr<Region>, nframes_t position, float times); void nudge_after (nframes_t start, nframes_t distance, bool forwards); @@ -274,6 +276,8 @@ class Playlist : public SessionObject, public boost::enable_shared_from_this<Pla void unset_freeze_child (Playlist*); void timestamp_layer_op (boost::shared_ptr<Region>); + + void _split_region (boost::shared_ptr<Region>, nframes_t position); }; } /* namespace ARDOUR */ diff --git a/libs/ardour/ardour/region.h b/libs/ardour/ardour/region.h index 4196aac886..fb1220e996 100644 --- a/libs/ardour/ardour/region.h +++ b/libs/ardour/ardour/region.h @@ -138,6 +138,7 @@ class Region : public Automatable, public boost::enable_shared_from_this<Region> PositionLockStyle positional_lock_style() const { return _positional_lock_style; } void set_position_lock_style (PositionLockStyle ps); + void recompute_position_from_lock_style (); virtual bool should_save_state () const { return !(_flags & DoNotSaveState); }; diff --git a/libs/ardour/ardour/region_factory.h b/libs/ardour/ardour/region_factory.h index 59749613ac..12437ba998 100644 --- a/libs/ardour/ardour/region_factory.h +++ b/libs/ardour/ardour/region_factory.h @@ -41,6 +41,12 @@ class RegionFactory { */ static sigc::signal<void,boost::shared_ptr<Region> > CheckNewRegion; + static boost::shared_ptr<Region> create (boost::shared_ptr<const Region>); + + /* note: both of the first two should use const shared_ptr as well, but + gcc 4.1 doesn't seem to be able to disambiguate them if they do. + */ + static boost::shared_ptr<Region> create (boost::shared_ptr<Region>, nframes_t start, nframes_t length, std::string name, layer_t = 0, Region::Flag flags = Region::DefaultFlags, bool announce = true); @@ -49,7 +55,6 @@ class RegionFactory { layer_t = 0, Region::Flag flags = Region::DefaultFlags, bool announce = true); static boost::shared_ptr<Region> create (boost::shared_ptr<Source>, nframes_t start, nframes_t length, const string& name, layer_t = 0, Region::Flag flags = Region::DefaultFlags, bool announce = true); static boost::shared_ptr<Region> create (const SourceList &, nframes_t start, nframes_t length, const string& name, layer_t = 0, Region::Flag flags = Region::DefaultFlags, bool announce = true); - static boost::shared_ptr<Region> create (boost::shared_ptr<Region>); static boost::shared_ptr<Region> create (Session&, XMLNode&, bool); static boost::shared_ptr<Region> create (SourceList &, const XMLNode&); }; diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index a2380357d3..325b164c8d 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -261,6 +261,14 @@ class Session : public PBD::StatefulDestructible const SessionDirectory& session_directory () const { return *(_session_dir.get()); } + static sigc::signal<void> AutoBindingOn; + static sigc::signal<void> AutoBindingOff; + + static sigc::signal<void,std::string> Dialog; + + std::string sound_dir (bool with_path = true) const; + std::string peak_dir () const; + std::string dead_sound_dir () const; std::string automation_dir () const; std::string analysis_dir() const; |