From 79f91c7a205d981d2b8cc15e32a6da02d8423065 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 15 Oct 2009 00:57:55 +0000 Subject: Part 1 of loading 2.X sessions; some things work, some things don't, hacks a-plenty. LOADING 2.X SESSIONS WITH THIS COMMIT IN PLACE WILL (PROBABLY) CORRUPT THE .ardour FILE, MAKING THE SESSION UNLOADABLE ON 2.X AND LOSING INFORMATION. So don't do that unless you make a backup of the session file first. git-svn-id: svn://localhost/ardour2/branches/3.0@5786 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/amp.h | 2 +- libs/ardour/ardour/audio_diskstream.h | 2 +- libs/ardour/ardour/audio_track.h | 8 ++++---- libs/ardour/ardour/audiofilesource.h | 2 +- libs/ardour/ardour/audioplaylist.h | 2 +- libs/ardour/ardour/audioregion.h | 2 +- libs/ardour/ardour/audiosource.h | 2 +- libs/ardour/ardour/automation_list.h | 4 ++-- libs/ardour/ardour/configuration.h | 2 +- libs/ardour/ardour/control_protocol_manager.h | 2 +- libs/ardour/ardour/crossfade.h | 2 +- libs/ardour/ardour/delivery.h | 2 +- libs/ardour/ardour/diskstream.h | 4 ++-- libs/ardour/ardour/file_source.h | 2 +- libs/ardour/ardour/internal_return.h | 2 +- libs/ardour/ardour/internal_send.h | 4 ++-- libs/ardour/ardour/io.h | 13 +++++++++---- libs/ardour/ardour/io_processor.h | 4 ++-- libs/ardour/ardour/ladspa_plugin.h | 3 ++- libs/ardour/ardour/location.h | 6 +++--- libs/ardour/ardour/midi_diskstream.h | 2 +- libs/ardour/ardour/midi_model.h | 8 ++++---- libs/ardour/ardour/midi_playlist.h | 2 +- libs/ardour/ardour/midi_region.h | 2 +- libs/ardour/ardour/midi_source.h | 2 +- libs/ardour/ardour/midi_track.h | 8 ++++---- libs/ardour/ardour/mute_master.h | 2 +- libs/ardour/ardour/named_selection.h | 2 +- libs/ardour/ardour/panner.h | 13 ++++++------- libs/ardour/ardour/playlist.h | 2 +- libs/ardour/ardour/plugin_insert.h | 4 ++-- libs/ardour/ardour/port_insert.h | 4 ++-- libs/ardour/ardour/processor.h | 7 +++++-- libs/ardour/ardour/rc_configuration.h | 2 +- libs/ardour/ardour/region.h | 2 +- libs/ardour/ardour/return.h | 2 +- libs/ardour/ardour/route.h | 13 ++++++++----- libs/ardour/ardour/route_group.h | 7 ++++--- libs/ardour/ardour/send.h | 4 ++-- libs/ardour/ardour/session.h | 12 ++++++------ libs/ardour/ardour/session_configuration.h | 2 +- libs/ardour/ardour/session_metadata.h | 2 +- libs/ardour/ardour/smf_source.h | 2 +- libs/ardour/ardour/source.h | 4 ++-- libs/ardour/ardour/tempo.h | 2 +- libs/ardour/ardour/track.h | 4 ++-- libs/ardour/ardour/user_bundle.h | 2 +- 47 files changed, 100 insertions(+), 88 deletions(-) (limited to 'libs/ardour/ardour') diff --git a/libs/ardour/ardour/amp.h b/libs/ardour/ardour/amp.h index f0a65c4ef5..3cd1bf13dd 100644 --- a/libs/ardour/ardour/amp.h +++ b/libs/ardour/ardour/amp.h @@ -55,7 +55,7 @@ public: void apply_gain_automation(bool yn) { _apply_gain_automation = yn; } XMLNode& state (bool full); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); static void apply_gain (BufferSet& bufs, nframes_t nframes, gain_t initial, gain_t target); static void apply_simple_gain(BufferSet& bufs, nframes_t nframes, gain_t target); diff --git a/libs/ardour/ardour/audio_diskstream.h b/libs/ardour/ardour/audio_diskstream.h index a8072695ff..507b148d82 100644 --- a/libs/ardour/ardour/audio_diskstream.h +++ b/libs/ardour/ardour/audio_diskstream.h @@ -126,7 +126,7 @@ class AudioDiskstream : public Diskstream /* stateful */ XMLNode& get_state(void); - int set_state(const XMLNode& node); + int set_state(const XMLNode& node, int version = 3000); void monitor_input (bool); diff --git a/libs/ardour/ardour/audio_track.h b/libs/ardour/ardour/audio_track.h index bdbc4b8165..585d1a1e72 100644 --- a/libs/ardour/ardour/audio_track.h +++ b/libs/ardour/ardour/audio_track.h @@ -33,7 +33,7 @@ class AudioTrack : public Track { public: AudioTrack (Session&, std::string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal); - AudioTrack (Session&, const XMLNode&); + AudioTrack (Session&, const XMLNode&, int); ~AudioTrack (); int set_mode (TrackMode m); @@ -55,12 +55,12 @@ class AudioTrack : public Track boost::shared_ptr bounce (InterThreadInfo&); boost::shared_ptr bounce_range (nframes_t start, nframes_t end, InterThreadInfo&, bool enable_processing); - int set_state(const XMLNode& node); + int set_state(const XMLNode&, int version = 3000); protected: XMLNode& state (bool full); - - int _set_state (const XMLNode&, bool call_base); + + int _set_state (const XMLNode&, int, bool call_base); private: int set_diskstream (boost::shared_ptr, void *); diff --git a/libs/ardour/ardour/audiofilesource.h b/libs/ardour/ardour/audiofilesource.h index 4da7943a2d..6b93ced905 100644 --- a/libs/ardour/ardour/audiofilesource.h +++ b/libs/ardour/ardour/audiofilesource.h @@ -72,7 +72,7 @@ public: int setup_peakfile (); XMLNode& get_state (); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); bool can_truncate_peaks() const { return !destructive(); } bool can_be_analysed() const { return _length > 0; } diff --git a/libs/ardour/ardour/audioplaylist.h b/libs/ardour/ardour/audioplaylist.h index 32fc77f2d6..25595def8c 100644 --- a/libs/ardour/ardour/audioplaylist.h +++ b/libs/ardour/ardour/audioplaylist.h @@ -50,7 +50,7 @@ class AudioPlaylist : public ARDOUR::Playlist 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&); + int set_state (const XMLNode&, int version = 3000); sigc::signal > NewCrossfade; diff --git a/libs/ardour/ardour/audioregion.h b/libs/ardour/ardour/audioregion.h index ff718bb4b0..5e9031c897 100644 --- a/libs/ardour/ardour/audioregion.h +++ b/libs/ardour/ardour/audioregion.h @@ -107,7 +107,7 @@ class AudioRegion : public Region virtual nframes_t read_raw_internal (Sample*, sframes_t, nframes_t, int channel) const; XMLNode& state (bool); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); static void set_default_fade (float steepness, nframes_t len); bool fade_in_is_default () const; diff --git a/libs/ardour/ardour/audiosource.h b/libs/ardour/ardour/audiosource.h index bc06642c33..eebd1dd5d9 100644 --- a/libs/ardour/ardour/audiosource.h +++ b/libs/ardour/ardour/audiosource.h @@ -79,7 +79,7 @@ class AudioSource : virtual public Source, mutable sigc::signal PeakRangeReady; XMLNode& get_state (); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); int rename_peakfile (Glib::ustring newpath); void touch_peakfile (); diff --git a/libs/ardour/ardour/automation_list.h b/libs/ardour/ardour/automation_list.h index 9b899e8cd1..5f074385a3 100644 --- a/libs/ardour/ardour/automation_list.h +++ b/libs/ardour/ardour/automation_list.h @@ -79,8 +79,8 @@ class AutomationList : public PBD::StatefulDestructible, public Evoral::ControlL void stop_touch (); bool touching() const { return _touching; } - XMLNode& get_state(void); - int set_state (const XMLNode &s); + XMLNode& get_state (); + int set_state (const XMLNode &, int version = 3000); XMLNode& state (bool full); XMLNode& serialize_events (); diff --git a/libs/ardour/ardour/configuration.h b/libs/ardour/ardour/configuration.h index d00cadb179..bd164a08e9 100644 --- a/libs/ardour/ardour/configuration.h +++ b/libs/ardour/ardour/configuration.h @@ -34,7 +34,7 @@ class Configuration : public PBD::Stateful virtual ~Configuration(); virtual void map_parameters (sigc::slot s) = 0; - virtual int set_state (XMLNode const &) = 0; + virtual int set_state (XMLNode const &, int) = 0; virtual XMLNode & get_state () = 0; virtual XMLNode & get_variables () = 0; virtual void set_variables (XMLNode const &) = 0; diff --git a/libs/ardour/ardour/control_protocol_manager.h b/libs/ardour/ardour/control_protocol_manager.h index bceece9adf..d1f059dc62 100644 --- a/libs/ardour/ardour/control_protocol_manager.h +++ b/libs/ardour/ardour/control_protocol_manager.h @@ -70,7 +70,7 @@ struct ControlProtocolInfo { void set_protocol_states (const XMLNode&); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); XMLNode& get_state (void); private: diff --git a/libs/ardour/ardour/crossfade.h b/libs/ardour/ardour/crossfade.h index 577bee8257..8a7773c035 100644 --- a/libs/ardour/ardour/crossfade.h +++ b/libs/ardour/ardour/crossfade.h @@ -75,7 +75,7 @@ class Crossfade : public ARDOUR::AudioRegion bool operator== (const ARDOUR::Crossfade&); XMLNode& get_state (void); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); boost::shared_ptr in() const { return _in; } boost::shared_ptr out() const { return _out; } diff --git a/libs/ardour/ardour/delivery.h b/libs/ardour/ardour/delivery.h index 9224d2755c..ef78c9bd45 100644 --- a/libs/ardour/ardour/delivery.h +++ b/libs/ardour/ardour/delivery.h @@ -89,7 +89,7 @@ public: static sigc::signal CycleStart; XMLNode& state (bool full); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); /* Panning */ diff --git a/libs/ardour/ardour/diskstream.h b/libs/ardour/ardour/diskstream.h index 6932913958..5427dc644d 100644 --- a/libs/ardour/ardour/diskstream.h +++ b/libs/ardour/ardour/diskstream.h @@ -130,8 +130,8 @@ class Diskstream : public SessionObject, public boost::noncopyable /* Stateful */ virtual XMLNode& get_state(void) = 0; - virtual int set_state(const XMLNode& node) = 0; - + virtual int set_state(const XMLNode&, int version = 3000) = 0; + virtual void monitor_input (bool) {} nframes_t capture_offset() const { return _capture_offset; } diff --git a/libs/ardour/ardour/file_source.h b/libs/ardour/ardour/file_source.h index 7844bb513a..5a9c2a9c56 100644 --- a/libs/ardour/ardour/file_source.h +++ b/libs/ardour/ardour/file_source.h @@ -46,7 +46,7 @@ public: bool is_embedded () const { return _is_embedded; } uint16_t channel() const { return _channel; } - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); int set_source_name (const Glib::ustring& newname, bool destructive); diff --git a/libs/ardour/ardour/internal_return.h b/libs/ardour/ardour/internal_return.h index 4d2839cb12..e896200c93 100644 --- a/libs/ardour/ardour/internal_return.h +++ b/libs/ardour/ardour/internal_return.h @@ -38,7 +38,7 @@ class InternalReturn : public Return XMLNode& state(bool full); XMLNode& get_state(void); - int set_state(const XMLNode& node); + int set_state(const XMLNode&, int version = 3000); void run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes); bool configure_io (ChanCount in, ChanCount out); diff --git a/libs/ardour/ardour/internal_send.h b/libs/ardour/ardour/internal_send.h index ef7d3d3d54..d62be9eafa 100644 --- a/libs/ardour/ardour/internal_send.h +++ b/libs/ardour/ardour/internal_send.h @@ -38,8 +38,8 @@ class InternalSend : public Send XMLNode& state(bool full); XMLNode& get_state(void); - int set_state(const XMLNode& node); - + int set_state(const XMLNode& node, int version = 3000); + void run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes); bool feeds (boost::shared_ptr other) const; bool can_support_io_configuration (const ChanCount& in, ChanCount& out) const; diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h index 0be1493dbb..9a13ced942 100644 --- a/libs/ardour/ardour/io.h +++ b/libs/ardour/ardour/io.h @@ -137,7 +137,8 @@ class IO : public SessionObject, public Latent virtual XMLNode& state (bool full); XMLNode& get_state (void); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); + int set_state_2X (const XMLNode&, int, bool); static int disable_connecting (void); static int enable_connecting (void); @@ -156,6 +157,8 @@ class IO : public SessionObject, public Latent static bool connecting_legal; XMLNode *pending_state_node; + int pending_state_node_version; + bool pending_state_node_in; /* three utility functions - this just seems to be simplest place to put them */ @@ -203,9 +206,11 @@ class IO : public SessionObject, public Latent void bundle_changed (Bundle::Change); - int get_port_counts (const XMLNode& node, ChanCount& n, boost::shared_ptr& c); - int create_ports (const XMLNode&); - int make_connections (const XMLNode&); + int get_port_counts (const XMLNode& node, int version, ChanCount& n, boost::shared_ptr& c); + int get_port_counts_2X (const XMLNode& node, int version, ChanCount& n, boost::shared_ptr& c); + int create_ports (const XMLNode&, int version); + int make_connections (const XMLNode&, int, bool); + int make_connections_2X (const XMLNode &, int, bool); boost::shared_ptr find_possible_bundle (const std::string &desired_name); diff --git a/libs/ardour/ardour/io_processor.h b/libs/ardour/ardour/io_processor.h index dc376b9a42..fdb0429bca 100644 --- a/libs/ardour/ardour/io_processor.h +++ b/libs/ardour/ardour/io_processor.h @@ -72,8 +72,8 @@ class IOProcessor : public Processor sigc::signal AutomationChanged; XMLNode& state (bool full_state); - int set_state (const XMLNode&); - + int set_state (const XMLNode&, int version = 3000); + protected: boost::shared_ptr _input; boost::shared_ptr _output; diff --git a/libs/ardour/ardour/ladspa_plugin.h b/libs/ardour/ardour/ladspa_plugin.h index 8128fccf94..b08f3e5afa 100644 --- a/libs/ardour/ardour/ladspa_plugin.h +++ b/libs/ardour/ardour/ladspa_plugin.h @@ -99,7 +99,7 @@ class LadspaPlugin : public ARDOUR::Plugin bool parameter_is_toggled(uint32_t) const; XMLNode& get_state(); - int set_state(const XMLNode& node); + int set_state (const XMLNode&, int version = 3000); bool save_preset(std::string name); bool has_editor() const { return false; } @@ -133,6 +133,7 @@ class LadspaPlugin : public ARDOUR::Plugin void init (void *mod, uint32_t index, nframes_t rate); void run_in_place (nframes_t nsamples); void latency_compute_run (); + int set_state_2X (const XMLNode&, int version = 3000); }; class LadspaPluginInfo : public PluginInfo { diff --git a/libs/ardour/ardour/location.h b/libs/ardour/ardour/location.h index 2a583719cc..cbc0782a4a 100644 --- a/libs/ardour/ardour/location.h +++ b/libs/ardour/ardour/location.h @@ -71,7 +71,7 @@ class Location : public PBD::StatefulDestructible } Location (const Location& other); - Location (const XMLNode&); + Location (const XMLNode&, int version = 3000); Location* operator= (const Location& other); bool locked() const { return _locked; } @@ -125,7 +125,7 @@ class Location : public PBD::StatefulDestructible XMLNode& cd_info_node (const std::string &, const std::string &); XMLNode& get_state (void); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); private: std::string _name; @@ -155,7 +155,7 @@ class Locations : public PBD::StatefulDestructible void clear_ranges (); XMLNode& get_state (void); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); Location *get_location_by_id(PBD::ID); Location* auto_loop_location () const; diff --git a/libs/ardour/ardour/midi_diskstream.h b/libs/ardour/ardour/midi_diskstream.h index 7035cdfd02..aab752d591 100644 --- a/libs/ardour/ardour/midi_diskstream.h +++ b/libs/ardour/ardour/midi_diskstream.h @@ -75,7 +75,7 @@ class MidiDiskstream : public Diskstream /* stateful */ XMLNode& get_state(void); - int set_state(const XMLNode& node); + int set_state(const XMLNode&, int version = 3000); void monitor_input (bool); diff --git a/libs/ardour/ardour/midi_model.h b/libs/ardour/ardour/midi_model.h index 6ea4a4cd30..a5b0e36b26 100644 --- a/libs/ardour/ardour/midi_model.h +++ b/libs/ardour/ardour/midi_model.h @@ -69,8 +69,8 @@ public: void operator()(); void undo(); - - int set_state (const XMLNode&); + + int set_state (const XMLNode&, int version = 3000); XMLNode& get_state (); void add(const boost::shared_ptr< Evoral::Note > note); @@ -113,8 +113,8 @@ public: void operator()(); void undo(); - - int set_state (const XMLNode&); + + int set_state (const XMLNode&, int version = 3000); XMLNode& get_state (); void change (const boost::shared_ptr > note, diff --git a/libs/ardour/ardour/midi_playlist.h b/libs/ardour/ardour/midi_playlist.h index 11c1288e92..dc315edb12 100644 --- a/libs/ardour/ardour/midi_playlist.h +++ b/libs/ardour/ardour/midi_playlist.h @@ -50,7 +50,7 @@ public: nframes_t read (MidiRingBuffer& buf, nframes_t start, nframes_t cnt, uint32_t chan_n=0); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); bool destroy_region (boost::shared_ptr); diff --git a/libs/ardour/ardour/midi_region.h b/libs/ardour/ardour/midi_region.h index 50fc1516df..ddb3109ff6 100644 --- a/libs/ardour/ardour/midi_region.h +++ b/libs/ardour/ardour/midi_region.h @@ -68,7 +68,7 @@ class MidiRegion : public Region NoteMode mode = Sustained) const; XMLNode& state (bool); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); int separate_by_channel (ARDOUR::Session&, std::vector< boost::shared_ptr >&) const; diff --git a/libs/ardour/ardour/midi_source.h b/libs/ardour/ardour/midi_source.h index 7056748786..8a09aad6c8 100644 --- a/libs/ardour/ardour/midi_source.h +++ b/libs/ardour/ardour/midi_source.h @@ -91,7 +91,7 @@ class MidiSource : virtual public Source mutable sigc::signal ViewDataRangeReady; XMLNode& get_state (); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); bool length_mutable() const { return true; } diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h index a4054e6b00..9f19c6590c 100644 --- a/libs/ardour/ardour/midi_track.h +++ b/libs/ardour/ardour/midi_track.h @@ -35,7 +35,7 @@ class MidiTrack : public Track { public: MidiTrack (Session&, string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal); - MidiTrack (Session&, const XMLNode&); + MidiTrack (Session&, const XMLNode&, int); ~MidiTrack (); int roll (nframes_t nframes, sframes_t start_frame, sframes_t end_frame, @@ -59,7 +59,7 @@ public: boost::shared_ptr bounce_range ( nframes_t start, nframes_t end, InterThreadInfo&, bool enable_processing); - int set_state(const XMLNode& node); + int set_state(const XMLNode&, int version = 3000); void midi_panic(void); bool write_immediate_event(size_t size, const uint8_t* buf); @@ -92,8 +92,8 @@ public: protected: XMLNode& state (bool full); - - int _set_state (const XMLNode&, bool call_base); + + int _set_state (const XMLNode&, int, bool call_base); private: void write_out_of_band_data ( diff --git a/libs/ardour/ardour/mute_master.h b/libs/ardour/ardour/mute_master.h index 1b06b4bf7c..39ad9ffd61 100644 --- a/libs/ardour/ardour/mute_master.h +++ b/libs/ardour/ardour/mute_master.h @@ -65,7 +65,7 @@ class MuteMaster : public AutomationControl sigc::signal MutePointChanged; XMLNode& get_state(); - int set_state(const XMLNode& node); + int set_state(const XMLNode&, int version = 3000); private: AutomationList* _automation; diff --git a/libs/ardour/ardour/named_selection.h b/libs/ardour/ardour/named_selection.h index 2dcfbd131c..4911dd8c50 100644 --- a/libs/ardour/ardour/named_selection.h +++ b/libs/ardour/ardour/named_selection.h @@ -44,7 +44,7 @@ struct NamedSelection : public PBD::Stateful XMLNode& get_state (void); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); static sigc::signal NamedSelectionCreated; }; diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h index c211aafc8c..6a435ec235 100644 --- a/libs/ardour/ardour/panner.h +++ b/libs/ardour/ardour/panner.h @@ -36,7 +36,6 @@ namespace ARDOUR { -class Route; class Session; class Panner; class BufferSet; @@ -74,7 +73,7 @@ class StreamPanner : public sigc::trackable, public PBD::Stateful sigc::signal Changed; /* for position */ sigc::signal StateChanged; /* for mute */ - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); virtual XMLNode& state (bool full_state) = 0; Panner & get_parent() { return parent; } @@ -149,9 +148,9 @@ class EqualPowerStereoPanner : public BaseStereoPanner static StreamPanner* factory (Panner&, Evoral::Parameter param); static std::string name; - XMLNode& state (bool full_state); - XMLNode& get_state (void); - int set_state (const XMLNode&); + XMLNode& state (bool full_state); + XMLNode& get_state (void); + int set_state (const XMLNode&, int version = 3000); private: void update (); @@ -172,7 +171,7 @@ class Multi2dPanner : public StreamPanner XMLNode& state (bool full_state); XMLNode& get_state (void); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); /* old school automation loading */ @@ -229,7 +228,7 @@ public: XMLNode& get_state (void); XMLNode& state (bool full); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); static bool equivalent (pan_t a, pan_t b) { return fabsf (a - b) < 0.002; // about 1 degree of arc for a stereo panner diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h index 56c755bebb..01bb12db8d 100644 --- a/libs/ardour/ardour/playlist.h +++ b/libs/ardour/ardour/playlist.h @@ -124,7 +124,7 @@ class Playlist : public SessionObject, void foreach_region (sigc::slot >); XMLNode& get_state (); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); XMLNode& get_template (); sigc::signal InUse; diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h index 69b4ab1f8f..82111a5a4d 100644 --- a/libs/ardour/ardour/plugin_insert.h +++ b/libs/ardour/ardour/plugin_insert.h @@ -45,14 +45,14 @@ class PluginInsert : public Processor { public: PluginInsert (Session&, boost::shared_ptr); - PluginInsert (Session&, const XMLNode&); + PluginInsert (Session&, const XMLNode&, int version = 3000); ~PluginInsert (); static const std::string port_automation_node_name; XMLNode& state(bool); XMLNode& get_state(void); - int set_state(const XMLNode&); + int set_state(const XMLNode&, int version = 3000); void run (BufferSet& in, sframes_t start_frame, sframes_t end_frame, nframes_t nframes); void silence (nframes_t nframes); diff --git a/libs/ardour/ardour/port_insert.h b/libs/ardour/ardour/port_insert.h index 18f54b0216..73dacf7d68 100644 --- a/libs/ardour/ardour/port_insert.h +++ b/libs/ardour/ardour/port_insert.h @@ -44,12 +44,12 @@ class PortInsert : public IOProcessor { public: PortInsert (Session&, boost::shared_ptr mm); - PortInsert (Session&, boost::shared_ptr mm, const XMLNode&); + PortInsert (Session&, boost::shared_ptr mm, const XMLNode&, int version = 3000); ~PortInsert (); XMLNode& state(bool full); XMLNode& get_state(void); - int set_state(const XMLNode&); + int set_state (const XMLNode&, int version = 3000); void run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes); diff --git a/libs/ardour/ardour/processor.h b/libs/ardour/ardour/processor.h index 21b7966fba..1e78777edd 100644 --- a/libs/ardour/ardour/processor.h +++ b/libs/ardour/ardour/processor.h @@ -91,8 +91,8 @@ class Processor : public SessionObject, public AutomatableControls, public Laten virtual XMLNode& state (bool full); XMLNode& get_state (void); - int set_state (const XMLNode&); - + int set_state (const XMLNode&, int version = 3000); + void *get_gui () const { return _gui; } void set_gui (void *p) { _gui = p; } @@ -109,6 +109,9 @@ protected: ChanCount _configured_input; ChanCount _configured_output; void* _gui; /* generic, we don't know or care what this is */ + +private: + int set_state_2X (const XMLNode&, int version); }; } // namespace ARDOUR diff --git a/libs/ardour/ardour/rc_configuration.h b/libs/ardour/ardour/rc_configuration.h index d12a9c63e7..d0dc042bb1 100644 --- a/libs/ardour/ardour/rc_configuration.h +++ b/libs/ardour/ardour/rc_configuration.h @@ -37,7 +37,7 @@ class RCConfiguration : public Configuration RCConfiguration(); void map_parameters (sigc::slot); - int set_state (XMLNode const &); + int set_state (XMLNode const &, int version = 3000); XMLNode& get_state (); XMLNode& get_variables (); void set_variables (XMLNode const &); diff --git a/libs/ardour/ardour/region.h b/libs/ardour/ardour/region.h index dab4f5df6f..d341489249 100644 --- a/libs/ardour/ardour/region.h +++ b/libs/ardour/ardour/region.h @@ -241,7 +241,7 @@ class Region XMLNode& get_state (); virtual XMLNode& state (bool); - virtual int set_state (const XMLNode&); + virtual int set_state (const XMLNode&, int version = 3000); virtual int set_live_state (const XMLNode&, Change&, bool send); virtual boost::shared_ptr get_parent() const; diff --git a/libs/ardour/ardour/return.h b/libs/ardour/ardour/return.h index 1a33795a37..3232e93295 100644 --- a/libs/ardour/ardour/return.h +++ b/libs/ardour/ardour/return.h @@ -54,7 +54,7 @@ public: XMLNode& state(bool full); XMLNode& get_state(void); - int set_state(const XMLNode& node); + int set_state(const XMLNode&, int version = 3000); uint32_t pans_required() const { return _configured_input.n_audio(); } diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index 1ecdb51488..ac3c6f89f3 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -68,7 +68,7 @@ class Route : public SessionObject, public AutomatableControls Route (Session&, std::string name, Flag flags = Flag(0), DataType default_type = DataType::AUDIO); - Route (Session&, const XMLNode&, DataType default_type = DataType::AUDIO); + Route (Session&, const XMLNode&, int, DataType default_type = DataType::AUDIO); virtual ~Route(); boost::shared_ptr input() const { return _input; } @@ -251,7 +251,7 @@ class Route : public SessionObject, public AutomatableControls /* stateful */ XMLNode& get_state(); - int set_state(const XMLNode& node); + int set_state (const XMLNode&, int version = 3000); virtual XMLNode& get_template(); XMLNode& get_processor_state (); @@ -384,8 +384,8 @@ class Route : public SessionObject, public AutomatableControls uint32_t pans_required() const; ChanCount n_process_buffers (); - - virtual int _set_state (const XMLNode&, bool call_base); + + virtual int _set_state (const XMLNode&, int, bool call_base); boost::shared_ptr _amp; boost::shared_ptr _meter; @@ -393,6 +393,8 @@ class Route : public SessionObject, public AutomatableControls private: void init (); + int _set_state_2X (const XMLNode&, int); + void set_processor_state_2X (XMLNodeList const &, int); static uint32_t order_key_cnt; @@ -407,7 +409,8 @@ class Route : public SessionObject, public AutomatableControls int configure_processors (ProcessorStreams*); int configure_processors_unlocked (ProcessorStreams*); - bool add_processor_from_xml (const XMLNode&, ProcessorList::iterator iter); + bool add_processor_from_xml (const XMLNode&, ProcessorList::iterator iter); + bool add_processor_from_xml_2X (const XMLNode&, int, ProcessorList::iterator iter); void placement_range (Placement p, ProcessorList::iterator& start, ProcessorList::iterator& end); }; diff --git a/libs/ardour/ardour/route_group.h b/libs/ardour/ardour/route_group.h index 194aa84582..124f3c9b3f 100644 --- a/libs/ardour/ardour/route_group.h +++ b/libs/ardour/ardour/route_group.h @@ -130,9 +130,9 @@ public: sigc::signal FlagsChanged; XMLNode& get_state (); - - int set_state (const XMLNode&); - + + int set_state (const XMLNode&, int version = 3000); + private: Session& _session; std::list routes; @@ -142,6 +142,7 @@ private: Property _properties; void remove_when_going_away (Route*); + int set_state_2X (const XMLNode&, int); }; } /* namespace */ diff --git a/libs/ardour/ardour/send.h b/libs/ardour/ardour/send.h index 6b872df9fe..13b7adbbf2 100644 --- a/libs/ardour/ardour/send.h +++ b/libs/ardour/ardour/send.h @@ -38,7 +38,7 @@ class Send : public Delivery { public: Send (Session&, boost::shared_ptr, Delivery::Role r = Delivery::Send); - Send (Session&, boost::shared_ptr, const XMLNode&, Delivery::Role r = Delivery::Send); + Send (Session&, boost::shared_ptr, const XMLNode&, int version = 3000, Delivery::Role r = Delivery::Send); virtual ~Send (); uint32_t bit_slot() const { return _bitslot; } @@ -53,7 +53,7 @@ class Send : public Delivery XMLNode& state(bool full); XMLNode& get_state(void); - int set_state(const XMLNode& node); + int set_state(const XMLNode&, int version = 3000); uint32_t pans_required() const { return _configured_input.n_audio(); } diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 5055ebc709..c5b793730c 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -305,7 +305,7 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable typedef std::list > DiskstreamList; - int load_routes (const XMLNode&); + int load_routes (const XMLNode&, int); boost::shared_ptr get_routes() const { return routes.reader (); } @@ -468,7 +468,7 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable static std::vector* possible_states (std::string path); XMLNode& get_state(); - int set_state(const XMLNode& node); // not idempotent + int set_state(const XMLNode& node, int version = 3000); // not idempotent XMLNode& get_template(); /// The instant xml file is written to the session directory @@ -849,7 +849,7 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable public: GlobalRouteStateCommand (Session&, void*); GlobalRouteStateCommand (Session&, const XMLNode& node); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); XMLNode& get_state (); protected: @@ -899,7 +899,7 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable void operator()(); void undo(); XMLNode &get_state(); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); void mark(); protected: @@ -1439,7 +1439,7 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable /* edit/mix groups */ - int load_route_groups (const XMLNode&); + int load_route_groups (const XMLNode&, int); std::list _route_groups; @@ -1458,7 +1458,7 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable void add_routes (RouteList&, bool save); uint32_t destructive_index; - boost::shared_ptr XMLRouteFactory (const XMLNode&); + boost::shared_ptr XMLRouteFactory (const XMLNode&, int); /* mixer stuff */ diff --git a/libs/ardour/ardour/session_configuration.h b/libs/ardour/ardour/session_configuration.h index fc7af8c450..20e14f37d5 100644 --- a/libs/ardour/ardour/session_configuration.h +++ b/libs/ardour/ardour/session_configuration.h @@ -30,7 +30,7 @@ public: SessionConfiguration (); void map_parameters (sigc::slot); - int set_state (XMLNode const &); + int set_state (XMLNode const &, int version = 3000); XMLNode& get_state (); XMLNode& get_variables (); void set_variables (XMLNode const &); diff --git a/libs/ardour/ardour/session_metadata.h b/libs/ardour/ardour/session_metadata.h index cfa1fb6f29..7813788e55 100644 --- a/libs/ardour/ardour/session_metadata.h +++ b/libs/ardour/ardour/session_metadata.h @@ -107,7 +107,7 @@ class SessionMetadata : public PBD::StatefulDestructible /*** Serialization ***/ XMLNode & get_state (); - int set_state (const XMLNode &); + int set_state (const XMLNode &, int version = 3000); private: diff --git a/libs/ardour/ardour/smf_source.h b/libs/ardour/ardour/smf_source.h index 993a340a70..3c6364532a 100644 --- a/libs/ardour/ardour/smf_source.h +++ b/libs/ardour/ardour/smf_source.h @@ -58,7 +58,7 @@ public: void mark_streaming_write_completed (); XMLNode& get_state (); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); void load_model (bool lock=true, bool force_reload=false); void destroy_model (); diff --git a/libs/ardour/ardour/source.h b/libs/ardour/ardour/source.h index ae581f760d..c34c5a9158 100644 --- a/libs/ardour/ardour/source.h +++ b/libs/ardour/ardour/source.h @@ -76,8 +76,8 @@ class Source : public SessionObject, public boost::noncopyable virtual void session_saved() {} XMLNode& get_state (); - int set_state (const XMLNode&); - + int set_state (const XMLNode&, int version = 3000); + bool destructive() const { return (_flags & Destructive); } bool writable () const { return (_flags & Writable); } virtual bool set_destructive (bool /*yn*/) { return false; } diff --git a/libs/ardour/ardour/tempo.h b/libs/ardour/ardour/tempo.h index 69b7198408..742919c77a 100644 --- a/libs/ardour/ardour/tempo.h +++ b/libs/ardour/ardour/tempo.h @@ -212,7 +212,7 @@ class TempoMap : public PBD::StatefulDestructible void set_length (nframes_t frames); XMLNode& get_state (void); - int set_state (const XMLNode&); + int set_state (const XMLNode&, int version = 3000); void dump (std::ostream&) const; void clear (); diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h index 1b191a1d3e..74cbe399df 100644 --- a/libs/ardour/ardour/track.h +++ b/libs/ardour/ardour/track.h @@ -82,7 +82,7 @@ class Track : public Route XMLNode& get_state(); XMLNode& get_template(); - virtual int set_state(const XMLNode& node) = 0; + virtual int set_state (const XMLNode&, int version = 3000) = 0; static void zero_diskstream_id_in_xml (XMLNode&); boost::shared_ptr rec_enable_control() { return _rec_enable_control; } @@ -96,7 +96,7 @@ class Track : public Route sigc::signal FreezeChange; protected: - Track (Session& sess, const XMLNode& node, DataType default_type = DataType::AUDIO); + Track (Session& sess, const XMLNode& node, int, DataType default_type = DataType::AUDIO); virtual XMLNode& state (bool full) = 0; diff --git a/libs/ardour/ardour/user_bundle.h b/libs/ardour/ardour/user_bundle.h index fa37392fc0..f590ec1ebe 100644 --- a/libs/ardour/ardour/user_bundle.h +++ b/libs/ardour/ardour/user_bundle.h @@ -38,7 +38,7 @@ class UserBundle : public Bundle, public PBD::Stateful { XMLNode& get_state (); private: - int set_state (XMLNode const &); + int set_state (XMLNode const &, int version = 3000); }; } -- cgit v1.2.3