diff options
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/audiofilesource.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/audioplaylist.h | 31 | ||||
-rw-r--r-- | libs/ardour/ardour/audioregion.h | 20 | ||||
-rw-r--r-- | libs/ardour/ardour/configuration_vars.h | 11 | ||||
-rw-r--r-- | libs/ardour/ardour/crossfade.h | 27 | ||||
-rw-r--r-- | libs/ardour/ardour/midi_playlist.h | 31 | ||||
-rw-r--r-- | libs/ardour/ardour/playlist.h | 22 | ||||
-rw-r--r-- | libs/ardour/ardour/region.h | 29 |
8 files changed, 33 insertions, 140 deletions
diff --git a/libs/ardour/ardour/audiofilesource.h b/libs/ardour/ardour/audiofilesource.h index 6184a45302..af5f5cdb60 100644 --- a/libs/ardour/ardour/audiofilesource.h +++ b/libs/ardour/ardour/audiofilesource.h @@ -81,8 +81,6 @@ class AudioFileSource : public AudioSource { void mark_take (string); string take_id() const { return _take_id; } - static void set_bwf_country_code (string x); - static void set_bwf_organization_code (string x); static void set_bwf_serial_number (int); static void set_search_path (string); diff --git a/libs/ardour/ardour/audioplaylist.h b/libs/ardour/ardour/audioplaylist.h index 341b08930c..383ec73531 100644 --- a/libs/ardour/ardour/audioplaylist.h +++ b/libs/ardour/ardour/audioplaylist.h @@ -38,19 +38,6 @@ class AudioPlaylist : public ARDOUR::Playlist { public: typedef std::list<Crossfade*> Crossfades; - - private: - - struct State : public ARDOUR::StateManager::State { - RegionList regions; - std::list<UndoAction> region_states; - - Crossfades crossfades; - std::list<UndoAction> crossfade_states; - - State (std::string why) : ARDOUR::StateManager::State (why) {} - ~State (); - }; public: AudioPlaylist (Session&, const XMLNode&, bool hidden = false); @@ -58,35 +45,21 @@ class AudioPlaylist : public ARDOUR::Playlist AudioPlaylist (const AudioPlaylist&, string name, bool hidden = false); AudioPlaylist (const AudioPlaylist&, nframes_t start, nframes_t cnt, string name, bool hidden = false); - void clear (bool with_save = true); + void clear (bool with_signals=true); nframes_t read (Sample *dst, Sample *mixdown, float *gain_buffer, nframes_t start, nframes_t cnt, uint32_t chan_n=0); int set_state (const XMLNode&); - UndoAction get_memento() const; sigc::signal<void,Crossfade *> NewCrossfade; template<class T> void foreach_crossfade (T *t, void (T::*func)(Crossfade *)); void crossfades_at (nframes_t frame, Crossfades&); - template<class T> void apply_to_history (T& obj, void (T::*method)(const ARDOUR::StateManager::StateMap&, state_id_t)) { - RegionLock rlock (this); - (obj.*method) (states, _current_state_id); - } - bool destroy_region (boost::shared_ptr<Region>); - void drop_all_states (); - protected: - /* state management */ - - StateManager::State* state_factory (std::string) const; - Change restore_state (StateManager::State&); - void send_state_change (Change); - /* playlist "callbacks" */ void notify_crossfade_added (Crossfade *); void flush_notifications (); @@ -101,7 +74,7 @@ class AudioPlaylist : public ARDOUR::Playlist ~AudioPlaylist (); /* public should use unref() */ private: - Crossfades _crossfades; + Crossfades _crossfades; /* xfades currently in use */ Crossfades _pending_xfade_adds; void crossfade_invalidated (Crossfade*); diff --git a/libs/ardour/ardour/audioregion.h b/libs/ardour/ardour/audioregion.h index 3ac62da2ca..e14cfd0180 100644 --- a/libs/ardour/ardour/audioregion.h +++ b/libs/ardour/ardour/audioregion.h @@ -42,18 +42,6 @@ class Session; class AudioFilter; class AudioSource; -struct AudioRegionState : public RegionState -{ - AudioRegionState (std::string why); - - Curve _fade_in; - Curve _fade_out; - Curve _envelope; - gain_t _scale_amplitude; - uint32_t _fade_in_disabled; - uint32_t _fade_out_disabled; -}; - class AudioRegion : public Region { public: @@ -125,8 +113,6 @@ class AudioRegion : public Region int separate_by_channel (ARDOUR::Session&, vector<AudioRegion*>&) const; - UndoAction get_memento() const; - /* filter */ int apply (AudioFilter&); @@ -159,9 +145,6 @@ class AudioRegion : public Region void set_default_fade_out (); void set_default_envelope (); - StateManager::State* state_factory (std::string why) const; - Change restore_state (StateManager::State&); - void recompute_gain_at_end (); void recompute_gain_at_start (); @@ -185,6 +168,9 @@ class AudioRegion : public Region gain_t _scale_amplitude; uint32_t _fade_in_disabled; uint32_t _fade_out_disabled; + + protected: + int set_live_state (const XMLNode&, Change&, bool send); }; } /* namespace ARDOUR */ diff --git a/libs/ardour/ardour/configuration_vars.h b/libs/ardour/ardour/configuration_vars.h index 7301b31d8a..fe65e9d433 100644 --- a/libs/ardour/ardour/configuration_vars.h +++ b/libs/ardour/ardour/configuration_vars.h @@ -45,11 +45,11 @@ CONFIG_VARIABLE (bool, use_overlap_equivalency, "use-overlap-equivalency", true) /* crossfades */ -CONFIG_VARIABLE (CrossfadeModel, xfade_model, "xfade-model", ShortCrossfade) +CONFIG_VARIABLE (CrossfadeModel, xfade_model, "xfade-model", FullCrossfade) CONFIG_VARIABLE (bool, auto_xfade, "auto-xfade", true) CONFIG_VARIABLE (float, short_xfade_seconds, "short-xfade-seconds", 0.015) -CONFIG_VARIABLE (bool, crossfades_active, "crossfades-active", false) -CONFIG_VARIABLE (bool, crossfades_visible, "crossfades-visible", false) +CONFIG_VARIABLE (bool, xfades_active, "xfades-active", true) +CONFIG_VARIABLE (bool, xfades_visible, "xfades-visible", true) CONFIG_VARIABLE (uint32_t, destructive_xfade_msecs, "destructive-xfade-msecs", 2) /* editing related */ @@ -121,6 +121,11 @@ CONFIG_VARIABLE (bool, verify_remove_last_capture, "verify-remove-last-capture", CONFIG_VARIABLE (bool, no_new_session_dialog, "no-new-session-dialog", false) CONFIG_VARIABLE (bool, use_vst, "use-vst", true) +/* BWAV */ + +CONFIG_VARIABLE (string, bwf_country_code, "bwf-country-code", "US") +CONFIG_VARIABLE (string, bwf_organization_code, "bwf-organization-code", "US") + /* these variables have custom set() methods (e.g. path globbing) */ CONFIG_VARIABLE_SPECIAL(std::string, raid_path, "raid-path", "", path_expand) diff --git a/libs/ardour/ardour/crossfade.h b/libs/ardour/ardour/crossfade.h index 7fd7323b36..d29ba47056 100644 --- a/libs/ardour/ardour/crossfade.h +++ b/libs/ardour/ardour/crossfade.h @@ -33,7 +33,6 @@ #include <ardour/ardour.h> #include <ardour/curve.h> #include <ardour/audioregion.h> -#include <ardour/state_manager.h> #include <ardour/crossfade_compare.h> namespace ARDOUR { @@ -41,19 +40,7 @@ namespace ARDOUR { class AudioRegion; class Playlist; -struct CrossfadeState : public StateManager::State { - CrossfadeState (std::string reason) : StateManager::State (reason) {} - - UndoAction fade_in_memento; - UndoAction fade_out_memento; - nframes_t position; - nframes_t length; - AnchorPoint anchor_point; - bool follow_overlap; - bool active; -}; - -class Crossfade : public PBD::StatefulDestructible, public StateManager +class Crossfade : public PBD::StatefulDestructible { public: @@ -121,7 +108,10 @@ class Crossfade : public PBD::StatefulDestructible, public StateManager nframes_t overlap_length() const; nframes_t position() const { return _position; } + void invalidate(); + sigc::signal<void,Crossfade*> Invalidated; + sigc::signal<void,Change> StateChanged; bool covers (nframes_t frame) const { return _position <= frame && frame < _position + _length; @@ -129,8 +119,6 @@ class Crossfade : public PBD::StatefulDestructible, public StateManager OverlapType coverage (nframes_t start, nframes_t end) const; - UndoAction get_memento() const; - static void set_buffer_size (nframes_t); bool active () const { return _active; } @@ -149,6 +137,7 @@ class Crossfade : public PBD::StatefulDestructible, public StateManager static void set_short_xfade_length (nframes_t n); static Change ActiveChanged; + static Change FollowOverlapChanged; private: friend struct CrossfadeComparePtr; @@ -172,15 +161,11 @@ class Crossfade : public PBD::StatefulDestructible, public StateManager static Sample* crossfade_buffer_out; static Sample* crossfade_buffer_in; - void initialize (bool savestate=true); + void initialize (); int compute (boost::shared_ptr<ARDOUR::AudioRegion>, boost::shared_ptr<ARDOUR::AudioRegion>, CrossfadeModel); bool update (bool force); - StateManager::State* state_factory (std::string why) const; - Change restore_state (StateManager::State&); - void member_changed (ARDOUR::Change); - }; diff --git a/libs/ardour/ardour/midi_playlist.h b/libs/ardour/ardour/midi_playlist.h index 36793b70ea..6f89d23404 100644 --- a/libs/ardour/ardour/midi_playlist.h +++ b/libs/ardour/ardour/midi_playlist.h @@ -37,18 +37,6 @@ class MidiRingBuffer; class MidiPlaylist : public ARDOUR::Playlist { -private: - - struct State : public ARDOUR::StateManager::State - { - RegionList regions; - std::list<UndoAction> region_states; - - State (std::string why) : ARDOUR::StateManager::State (why) - {} - ~State (); - }; - public: MidiPlaylist (Session&, const XMLNode&, bool hidden = false); MidiPlaylist (Session&, string name, bool hidden = false); @@ -56,31 +44,16 @@ public: MidiPlaylist (const MidiPlaylist&, jack_nframes_t start, jack_nframes_t cnt, string name, bool hidden = false); - jack_nframes_t read (MidiRingBuffer& buf, - jack_nframes_t start, jack_nframes_t cnt, uint32_t chan_n=0); + nframes_t read (MidiRingBuffer& buf, + jack_nframes_t start, jack_nframes_t cnt, uint32_t chan_n=0); int set_state (const XMLNode&); UndoAction get_memento() const; - template<class T> - void apply_to_history (T& obj, void (T::*method)(const ARDOUR::StateManager::StateMap&, state_id_t)) - { - RegionLock rlock (this); - (obj.*method) (states, _current_state_id); - } - bool destroy_region (boost::shared_ptr<Region>); - void drop_all_states (); - protected: - /* state management */ - - StateManager::State* state_factory (std::string) const; - Change restore_state (StateManager::State&); - void send_state_change (Change); - /* playlist "callbacks" */ void flush_notifications (); diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h index d7b13ef684..93b30f42ef 100644 --- a/libs/ardour/ardour/playlist.h +++ b/libs/ardour/ardour/playlist.h @@ -40,7 +40,6 @@ #include <ardour/ardour.h> #include <ardour/crossfade_compare.h> #include <ardour/location.h> -#include <ardour/state_manager.h> #include <ardour/data_type.h> namespace ARDOUR { @@ -48,7 +47,7 @@ namespace ARDOUR { class Session; class Region; -class Playlist : public StateManager, public PBD::StatefulDestructible { +class Playlist : public PBD::StatefulDestructible { public: typedef list<boost::shared_ptr<Region> > RegionList; @@ -57,9 +56,8 @@ class Playlist : public StateManager, public PBD::StatefulDestructible { Playlist (const Playlist&, string name, bool hidden = false); Playlist (const Playlist&, nframes_t start, nframes_t cnt, string name, bool hidden = false); - virtual void clear (bool with_save = true); + virtual void clear (bool with_signals=true); virtual void dump () const; - virtual UndoAction get_memento() const = 0; void ref(); void unref(); @@ -83,7 +81,7 @@ class Playlist : public StateManager, public PBD::StatefulDestructible { /* Editing operations */ - void add_region (boost::shared_ptr<Region>, nframes_t position, float times = 1, bool with_save = true); + void add_region (boost::shared_ptr<Region>, nframes_t position, float times = 1); void remove_region (boost::shared_ptr<Region>); void get_equivalent_regions (boost::shared_ptr<Region>, std::vector<boost::shared_ptr<Region> >&); void get_region_list_equivalent_regions (boost::shared_ptr<Region>, std::vector<boost::shared_ptr<Region> >&); @@ -114,8 +112,6 @@ class Playlist : public StateManager, public PBD::StatefulDestructible { int set_state (const XMLNode&); XMLNode& get_template (); - sigc::signal<void,boost::shared_ptr<Region> > RegionAdded; - sigc::signal<void,boost::shared_ptr<Region> > RegionRemoved; sigc::signal<void,Playlist*,bool> InUse; sigc::signal<void> Modified; sigc::signal<void> NameChanged; @@ -172,20 +168,21 @@ class Playlist : public StateManager, public PBD::StatefulDestructible { friend class RegionLock; RegionList regions; /* the current list of regions in the playlist */ + std::set<boost::shared_ptr<Region> > all_regions; /* all regions ever added to this playlist */ string _name; Session& _session; DataType _type; mutable gint block_notifications; mutable gint ignore_state_changes; mutable Glib::Mutex region_lock; - RegionList pending_removals; - RegionList pending_adds; + std::set<boost::shared_ptr<Region> > pending_adds; + std::set<boost::shared_ptr<Region> > pending_removes; RegionList pending_bounds; bool pending_modified; bool pending_length; bool save_on_thaw; string last_save_reason; - bool in_set_state; + uint32_t in_set_state; bool _hidden; bool _splicing; bool _nudging; @@ -248,10 +245,7 @@ class Playlist : public StateManager, public PBD::StatefulDestructible { virtual XMLNode& state (bool); - /* override state_manager::save_state so we can check in_set_state() */ - - void save_state (std::string why); - void maybe_save_state (std::string why); + boost::shared_ptr<Region> region_by_id (PBD::ID); void add_region_internal (boost::shared_ptr<Region>, nframes_t position, bool delay_sort = false); diff --git a/libs/ardour/ardour/region.h b/libs/ardour/ardour/region.h index 96663f79c8..627e556cad 100644 --- a/libs/ardour/ardour/region.h +++ b/libs/ardour/ardour/region.h @@ -29,7 +29,6 @@ #include <pbd/statefuldestructible.h> #include <ardour/ardour.h> -#include <ardour/state_manager.h> #include <ardour/data_type.h> class XMLNode; @@ -44,21 +43,7 @@ enum RegionEditState { EditChangesID = 2 }; -struct RegionState : public StateManager::State -{ - RegionState (std::string why) : StateManager::State (why) {} - - nframes_t _start; - nframes_t _length; - nframes_t _position; - uint32_t _flags; - nframes_t _sync_position; - layer_t _layer; - string _name; - mutable RegionEditState _first_edit; -}; - -class Region : public PBD::StatefulDestructible, public StateManager, public boost::enable_shared_from_this<Region> +class Region : public PBD::StatefulDestructible, public boost::enable_shared_from_this<Region> { public: typedef std::vector<boost::shared_ptr<Source> > SourceList; @@ -96,6 +81,8 @@ class Region : public PBD::StatefulDestructible, public StateManager, public boo static Change LayerChanged; static Change HiddenChanged; + sigc::signal<void,Change> StateChanged; + virtual ~Region(); /* Note: changing the name of a Region does not constitute an edit */ @@ -181,8 +168,6 @@ class Region : public PBD::StatefulDestructible, public StateManager, public boo ARDOUR::Playlist* playlist() const { return _playlist; } - virtual UndoAction get_memento() const = 0; - void set_playlist (ARDOUR::Playlist*); void source_deleted (boost::shared_ptr<Source>); @@ -198,6 +183,7 @@ class Region : public PBD::StatefulDestructible, public StateManager, public boo XMLNode& get_state (); virtual XMLNode& state (bool); virtual int set_state (const XMLNode&); + virtual int set_live_state (const XMLNode&, Change&, bool send); boost::shared_ptr<Region> get_parent(); @@ -220,15 +206,8 @@ class Region : public PBD::StatefulDestructible, public StateManager, public boo protected: XMLNode& get_short_state (); /* used only by Session */ - /* state management */ - void send_change (Change); - /* derived classes need these during their own state management calls */ - - void store_state (RegionState&) const; - Change restore_and_return_flags (RegionState&); - void trim_to_internal (nframes_t position, nframes_t length, void *src); bool copied() const { return _flags & Copied; } |