summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-12-12 19:44:03 +0100
committerRobin Gareus <robin@gareus.org>2016-12-17 02:43:42 +0100
commit8ba7e8f4ef6231c04d7833206690a7a291798c61 (patch)
tree95ed1565c8b80016f5b418ab36413a805f708e0d
parent85e4b1d98ff72afe8b3acaf38e9c269749093207 (diff)
Hide/remove per-track record-mode in favor of global setting.
-rw-r--r--gtk2_ardour/add_route_dialog.cc2
-rw-r--r--gtk2_ardour/route_time_axis.cc4
-rw-r--r--gtk2_ardour/route_time_axis.h2
-rw-r--r--gtk2_ardour/route_ui.cc2
-rw-r--r--libs/ardour/ardour/audio_diskstream.h2
-rw-r--r--libs/ardour/ardour/audio_track.h2
-rw-r--r--libs/ardour/ardour/diskstream.h4
-rw-r--r--libs/ardour/ardour/midi_diskstream.h2
-rw-r--r--libs/ardour/ardour/session_configuration_vars.h1
-rw-r--r--libs/ardour/ardour/sndfilesource.h2
-rw-r--r--libs/ardour/ardour/source.h2
-rw-r--r--libs/ardour/ardour/track.h2
-rw-r--r--libs/ardour/audio_diskstream.cc8
-rw-r--r--libs/ardour/audio_track.cc4
-rw-r--r--libs/ardour/auditioner.cc2
-rw-r--r--libs/ardour/diskstream.cc6
-rw-r--r--libs/ardour/midi_diskstream.cc2
-rw-r--r--libs/ardour/midi_track.cc2
-rw-r--r--libs/ardour/sndfilesource.cc2
19 files changed, 52 insertions, 1 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc
index b1f84c0fac..8d125dae6d 100644
--- a/gtk2_ardour/add_route_dialog.cc
+++ b/gtk2_ardour/add_route_dialog.cc
@@ -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);
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index c4326d51d7..e546bff976 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -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)
diff --git a/gtk2_ardour/route_time_axis.h b/gtk2_ardour/route_time_axis.h
index 1a26868b47..2130977dbc 100644
--- a/gtk2_ardour/route_time_axis.h
+++ b/gtk2_ardour/route_time_axis.h
@@ -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.
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index ca008e2f98..f93dbd165e 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -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();
}
diff --git a/libs/ardour/ardour/audio_diskstream.h b/libs/ardour/ardour/audio_diskstream.h
index 21a1789468..a0799aabde 100644
--- a/libs/ardour/ardour/audio_diskstream.h
+++ b/libs/ardour/ardour/audio_diskstream.h
@@ -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); }
diff --git a/libs/ardour/ardour/audio_track.h b/libs/ardour/ardour/audio_track.h
index d80042a252..28e42cd4f3 100644
--- a/libs/ardour/ardour/audio_track.h
+++ b/libs/ardour/ardour/audio_track.h
@@ -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);
diff --git a/libs/ardour/ardour/diskstream.h b/libs/ardour/ardour/diskstream.h
index e51f8c3ef1..404aceec5e 100644
--- a/libs/ardour/ardour/diskstream.h
+++ b/libs/ardour/ardour/diskstream.h
@@ -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; }
diff --git a/libs/ardour/ardour/midi_diskstream.h b/libs/ardour/ardour/midi_diskstream.h
index 45f01763d8..4f91a30ca9 100644
--- a/libs/ardour/ardour/midi_diskstream.h
+++ b/libs/ardour/ardour/midi_diskstream.h
@@ -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);
diff --git a/libs/ardour/ardour/session_configuration_vars.h b/libs/ardour/ardour/session_configuration_vars.h
index 6c4bc3fb54..6e7ab3a279 100644
--- a/libs/ardour/ardour/session_configuration_vars.h
+++ b/libs/ardour/ardour/session_configuration_vars.h
@@ -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)
diff --git a/libs/ardour/ardour/sndfilesource.h b/libs/ardour/ardour/sndfilesource.h
index 5aa11814fb..850a32a557 100644
--- a/libs/ardour/ardour/sndfilesource.h
+++ b/libs/ardour/ardour/sndfilesource.h
@@ -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; }
diff --git a/libs/ardour/ardour/source.h b/libs/ardour/ardour/source.h
index eb204715a1..71595592fb 100644
--- a/libs/ardour/ardour/source.h
+++ b/libs/ardour/ardour/source.h
@@ -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;
diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h
index 243d40faf0..65f38e6fc0 100644
--- a/libs/ardour/ardour/track.h
+++ b/libs/ardour/ardour/track.h
@@ -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; }
diff --git a/libs/ardour/audio_diskstream.cc b/libs/ardour/audio_diskstream.cc
index 53ab63961d..267338228a 100644
--- a/libs/ardour/audio_diskstream.cc
+++ b/libs/ardour/audio_diskstream.cc
@@ -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 ()
diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc
index 3a653a0efe..f0303dbd36 100644
--- a/libs/ardour/audio_track.cc
+++ b/libs/ardour/audio_track.cc
@@ -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 ()
diff --git a/libs/ardour/auditioner.cc b/libs/ardour/auditioner.cc
index aa81c3aa92..272e243e1c 100644
--- a/libs/ardour/auditioner.cc
+++ b/libs/ardour/auditioner.cc
@@ -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);
diff --git a/libs/ardour/diskstream.cc b/libs/ardour/diskstream.cc
index a81c1e473d..d95fa109db 100644
--- a/libs/ardour/diskstream.cc
+++ b/libs/ardour/diskstream.cc
@@ -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)
{
diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc
index 675d1db0bf..13c0cdd9e8 100644
--- a/libs/ardour/midi_diskstream.cc
+++ b/libs/ardour/midi_diskstream.cc
@@ -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)
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index c5433347a0..a4c14e4f62 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -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 ();
diff --git a/libs/ardour/sndfilesource.cc b/libs/ardour/sndfilesource.cc
index 008325dab1..54b9a0135c 100644
--- a/libs/ardour/sndfilesource.cc
+++ b/libs/ardour/sndfilesource.cc
@@ -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 ()