Hide/remove per-track record-mode in favor of global setting.
authorRobin Gareus <robin@gareus.org>
Mon, 12 Dec 2016 18:44:03 +0000 (19:44 +0100)
committerRobin Gareus <robin@gareus.org>
Sat, 17 Dec 2016 01:43:42 +0000 (02:43 +0100)
19 files changed:
gtk2_ardour/add_route_dialog.cc
gtk2_ardour/route_time_axis.cc
gtk2_ardour/route_time_axis.h
gtk2_ardour/route_ui.cc
libs/ardour/ardour/audio_diskstream.h
libs/ardour/ardour/audio_track.h
libs/ardour/ardour/diskstream.h
libs/ardour/ardour/midi_diskstream.h
libs/ardour/ardour/session_configuration_vars.h
libs/ardour/ardour/sndfilesource.h
libs/ardour/ardour/source.h
libs/ardour/ardour/track.h
libs/ardour/audio_diskstream.cc
libs/ardour/audio_track.cc
libs/ardour/auditioner.cc
libs/ardour/diskstream.cc
libs/ardour/midi_diskstream.cc
libs/ardour/midi_track.cc
libs/ardour/sndfilesource.cc

index b1f84c0facb07ac859e6178a9cb3fc5235c7a25c..8d125dae6d8327cf0fa9e19e9629ce24b8dc3953 100644 (file)
@@ -370,7 +370,9 @@ AddRouteDialog::refill_track_modes ()
        vector<string> s;
 
        s.push_back (_("Normal"));
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        s.push_back (_("Non Layered"));
+#endif
        s.push_back (_("Tape"));
 
        set_popdown_strings (mode_combo, s);
index c4326d51d714df2ec4e594873ff6aba267fc8091..e546bff976590173804b1b993e7395c023156a3e 100644 (file)
@@ -772,6 +772,7 @@ RouteTimeAxisView::build_display_menu ()
                        /* show nothing */
                }
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
                Menu* mode_menu = manage (new Menu);
                MenuList& mode_items = mode_menu->items ();
                mode_menu->set_name ("ArdourContextMenu");
@@ -820,6 +821,7 @@ RouteTimeAxisView::build_display_menu ()
                i->set_inconsistent (non_layered != 0 && (normal != 0 || tape != 0));
 
                items.push_back (MenuElem (_("Record Mode"), *mode_menu));
+#endif
 
                items.push_back (SeparatorElem());
 
@@ -888,6 +890,7 @@ RouteTimeAxisView::build_display_menu ()
        items.push_back (MenuElem (_("Remove"), sigc::mem_fun(_editor, &PublicEditor::remove_tracks)));
 }
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
 void
 RouteTimeAxisView::set_track_mode (TrackMode mode, bool apply_to_selection)
 {
@@ -911,6 +914,7 @@ RouteTimeAxisView::set_track_mode (TrackMode mode, bool apply_to_selection)
                track()->set_mode (mode);
        }
 }
+#endif
 
 void
 RouteTimeAxisView::show_timestretch (framepos_t start, framepos_t end, int layers, int layer)
index 1a26868b471ae6ed2dcec3251dbf10cb34d59272..2130977dbc6a414cabb8598e6dc3821f7f7a12d0 100644 (file)
@@ -280,7 +280,9 @@ protected:
 
        ArdourCanvas::Rectangle* timestretch_rect;
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        void set_track_mode (ARDOUR::TrackMode, bool apply_to_selection = false);
+#endif
 
        /** Information about all automatable processor parameters that apply to
         *  this route.  The Amp processor is not included in this list.
index ca008e2f985c8740432510fdf0709412a7e20244..f93dbd165e040bac106b98da5ff587b1d268fcea 100644 (file)
@@ -288,7 +288,9 @@ RouteUI::set_route (boost::shared_ptr<Route> rp)
 
        if (is_track()) {
                track()->FreezeChange.connect (*this, invalidator (*this), boost::bind (&RouteUI::map_frozen, this), gui_context());
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
                track()->TrackModeChanged.connect (route_connections, invalidator (*this), boost::bind (&RouteUI::track_mode_changed, this), gui_context());
+#endif
                track_mode_changed();
        }
 
index 21a178946800529f6a31411187af2a3be3bb3f0e..a0799aabde31faa5a02f44c82455cc97af2bc0b8 100644 (file)
@@ -74,9 +74,11 @@ class LIBARDOUR_API AudioDiskstream : public Diskstream
 
        void set_record_enabled (bool yn);
        void set_record_safe (bool yn);
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        int set_destructive (bool yn);
        int set_non_layered (bool yn);
        bool can_become_destructive (bool& requires_bounce) const;
+#endif
 
        boost::shared_ptr<AudioPlaylist> audio_playlist () { return boost::dynamic_pointer_cast<AudioPlaylist>(_playlist); }
 
index d80042a252384e478863df52805661cd2ce2f4a4..28e42cd4f3594ca82856e8195ccc622399654694 100644 (file)
@@ -37,8 +37,10 @@ class LIBARDOUR_API AudioTrack : public Track
        AudioTrack (Session&, std::string name, TrackMode m = Normal);
        ~AudioTrack ();
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        int set_mode (TrackMode m);
        bool can_use_mode (TrackMode m, bool& bounce_required);
+#endif
 
        int roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame,
                  int declick, bool& need_butler);
index e51f8c3ef15ec7c42d6232d92dcca0ce89a05392..404aceec5e9075e78df1d3bdbf71974d8ca12926 100644 (file)
@@ -109,13 +109,15 @@ class LIBARDOUR_API Diskstream : public SessionObject, public PublicDiskstream
        virtual void set_record_safe (bool yn) = 0;
 
        bool destructive() const { return _flags & Destructive; }
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        virtual int set_destructive (bool /*yn*/) { return -1; }
        virtual int set_non_layered (bool /*yn*/) { return -1; }
        virtual bool can_become_destructive (bool& /*requires_bounce*/) const { return false; }
+#endif
 
        bool           hidden()      const { return _flags & Hidden; }
        bool           recordable()  const { return _flags & Recordable; }
-       bool           non_layered()  const { return _flags & NonLayered; }
+       bool           non_layered() const;  // { return _flags & NonLayered; }
        bool           reversed()    const { return _actual_speed < 0.0f; }
        double         speed()       const { return _visible_speed; }
 
index 45f01763d8a1ff7e5145ae68ab2ef1419272d1d2..4f91a30ca92e72b2e0cd9618e08d4ab2f65eef51 100644 (file)
@@ -91,7 +91,9 @@ class LIBARDOUR_API MidiDiskstream : public Diskstream
 
        boost::shared_ptr<SMFSource> write_source ()    { return _write_source; }
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        int set_destructive (bool yn); // doom!
+#endif
 
        void set_note_mode (NoteMode m);
 
index 6c4bc3fb545b242ab4b7fda5ae82f7585fc7e035..6e7ab3a27956f54e486d226cdc5865fbc9d383f8 100644 (file)
@@ -36,6 +36,7 @@ CONFIG_VARIABLE (bool, auto_return, "auto-return", false)
 CONFIG_VARIABLE (bool, auto_input, "auto-input", true)
 CONFIG_VARIABLE (bool, punch_in, "punch-in", false)
 CONFIG_VARIABLE (bool, punch_out, "punch-out", false)
+CONFIG_VARIABLE (bool, layered_record_mode, "layered-record-mode", false)
 CONFIG_VARIABLE (uint32_t, subframes_per_frame, "subframes-per-frame", 100)
 CONFIG_VARIABLE (Timecode::TimecodeFormat, timecode_format, "timecode-format", Timecode::timecode_30)
 CONFIG_VARIABLE_SPECIAL(std::string, raid_path, "raid-path", "", PBD::path_expand)
index 5aa11814fb406775afb6226820bffae7285c6f87..850a32a557c75e7f23308cac5386eb5c77e0e8d5 100644 (file)
@@ -67,7 +67,9 @@ class LIBARDOUR_API SndFileSource : public AudioFileSource {
        void mark_capture_end ();
        void clear_capture_marks();
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        bool set_destructive (bool yn);
+#endif
 
        bool one_of_several_channels () const;
     uint32_t channel_count () const { return _info.channels; }
index eb204715a1fefb7a349a4bd1e3a11cbd082fadc6..71595592fb86f91f23427bcb081371d4658d5b29 100644 (file)
@@ -82,7 +82,9 @@ class LIBARDOUR_API Source : public SessionObject
 
        bool         destructive() const       { return (_flags & Destructive); }
        bool         writable () const;
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        virtual bool set_destructive (bool /*yn*/) { return false; }
+#endif
        virtual bool length_mutable() const    { return false; }
 
        static PBD::Signal1<void,Source*>             SourceCreated;
index 243d40faf08b6d1ffc3815a2272a9fa63c75f1f8..65f38e6fc0fbce6a153c618edcabde8c73fff07c 100644 (file)
@@ -56,9 +56,11 @@ class LIBARDOUR_API Track : public Route, public Recordable, public PublicDiskst
        void resync_track_name ();
 
        TrackMode mode () const { return _mode; }
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        virtual int set_mode (TrackMode /*m*/) { return false; }
        virtual bool can_use_mode (TrackMode /*m*/, bool& /*bounce_required*/) { return false; }
        PBD::Signal0<void> TrackModeChanged;
+#endif
 
        boost::shared_ptr<MonitorControl> monitoring_control() const { return _monitoring_control; }
 
index 53ab63961ded7bebb3720a7197bbc6dc934a80fe..267338228ab30d5096484de4516ce1d09bb4c96e 100644 (file)
@@ -361,6 +361,7 @@ AudioDiskstream::use_destructive_playlist ()
        {
                const RegionList& rl (_playlist->region_list_property().rlist());
                if (rl.size() > 0) {
+                       /* this can happen when dragging a region onto a tape track */
                        assert((rl.size() == 1));
                        rp = rl.front();
                }
@@ -392,7 +393,12 @@ AudioDiskstream::use_destructive_playlist ()
 
                /* this might be false if we switched modes, so force it */
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
                (*chan)->write_source->set_destructive (true);
+#else
+               // should be set when creating the source or loading the state
+               assert ((*chan)->write_source->destructive());
+#endif
        }
 
        /* the source list will never be reset for a destructive track */
@@ -2384,6 +2390,7 @@ AudioDiskstream::use_pending_capture_data (XMLNode& node)
        return 0;
 }
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
 int
 AudioDiskstream::set_non_layered (bool yn)
 {
@@ -2497,6 +2504,7 @@ AudioDiskstream::can_become_destructive (bool& requires_bounce) const
        requires_bounce = false;
        return true;
 }
+#endif
 
 void
 AudioDiskstream::adjust_playback_buffering ()
index 3a653a0efe675096b4d9d8e225c84451975f2061..f0303dbd369c60672e35d77c8519af0877365bcd 100644 (file)
@@ -82,12 +82,14 @@ AudioTrack::set_diskstream (boost::shared_ptr<Diskstream> ds)
        Track::set_diskstream (ds);
 
        _diskstream->set_track (this);
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        if (Profile->get_trx()) {
                _diskstream->set_destructive (false);
        } else {
                _diskstream->set_destructive (_mode == Destructive);
        }
        _diskstream->set_non_layered (_mode == NonLayered);
+#endif
 
        if (audio_diskstream()->deprecated_io_node) {
 
@@ -110,6 +112,7 @@ AudioTrack::audio_diskstream() const
        return boost::dynamic_pointer_cast<AudioDiskstream>(_diskstream);
 }
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
 int
 AudioTrack::set_mode (TrackMode m)
 {
@@ -149,6 +152,7 @@ AudioTrack::can_use_mode (TrackMode m, bool& bounce_required)
                return false;
        }
 }
+#endif
 
 int
 AudioTrack::deprecated_use_diskstream_connections ()
index aa81c3aa927383313ddc2abecb46e0b4e7c5a89d..272e243e1c3d9d987eb2aa18a244315f4812cfea 100644 (file)
@@ -332,12 +332,14 @@ Auditioner::set_diskstream (boost::shared_ptr<Diskstream> ds)
        Track::set_diskstream (ds);
 
        _diskstream->set_track (this);
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        if (Profile->get_trx()) {
                _diskstream->set_destructive (false);
        } else {
                _diskstream->set_destructive (_mode == Destructive);
        }
        _diskstream->set_non_layered (_mode == NonLayered);
+#endif
        _diskstream->set_record_enabled (false);
        _diskstream->request_input_monitoring (false);
 
index a81c1e473d2a64548c29a5beb2880fd0f4bd8495..d95fa109dbd1b84a3034c1b3a8b51d6dd6ad8515 100644 (file)
@@ -148,6 +148,12 @@ Diskstream::~Diskstream ()
         delete deprecated_io_node;
 }
 
+bool
+Diskstream::non_layered () const
+{
+       return _session.config.get_layered_record_mode();
+}
+
 void
 Diskstream::set_track (Track* t)
 {
index 675d1db0bf0e7b28502a10b5a5c16a83dc4d386f..13c0cdd9e87544c0f9b51bde47e0347a56b5296b 100644 (file)
@@ -288,6 +288,7 @@ MidiDiskstream::use_copy_playlist ()
        }
 }
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
 /** Overloaded from parent to die horribly
  */
 int
@@ -295,6 +296,7 @@ MidiDiskstream::set_destructive (bool yn)
 {
        return yn ? -1 : 0;
 }
+#endif
 
 void
 MidiDiskstream::set_note_mode (NoteMode m)
index c5433347a0630738547be6afbc20ab7a8f48b6eb..a4c14e4f625fab397ca83e03543f626e5439ddb5 100644 (file)
@@ -139,11 +139,13 @@ MidiTrack::set_diskstream (boost::shared_ptr<Diskstream> ds)
        mds->reset_tracker ();
 
        _diskstream->set_track (this);
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
        if (Profile->get_trx()) {
                _diskstream->set_destructive (false);
        } else {
                _diskstream->set_destructive (_mode == Destructive);
        }
+#endif
        _diskstream->set_record_enabled (false);
 
        _diskstream_data_recorded_connection.disconnect ();
index 008325dab1d48457f47ec1edc316c29155003d14..54b9a0135c23b25e2c998d254b8fa60d8947ee7d 100644 (file)
@@ -799,6 +799,7 @@ SndFileSource::natural_position() const
        return _timeline_position;
 }
 
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
 bool
 SndFileSource::set_destructive (bool yn)
 {
@@ -817,6 +818,7 @@ SndFileSource::set_destructive (bool yn)
 
        return true;
 }
+#endif
 
 void
 SndFileSource::clear_capture_marks ()