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);
/* 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");
i->set_inconsistent (non_layered != 0 && (normal != 0 || tape != 0));
items.push_back (MenuElem (_("Record Mode"), *mode_menu));
+#endif
items.push_back (SeparatorElem());
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)
{
track()->set_mode (mode);
}
}
+#endif
void
RouteTimeAxisView::show_timestretch (framepos_t start, framepos_t end, int layers, int layer)
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.
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();
}
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); }
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);
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; }
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);
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)
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; }
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;
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; }
{
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();
}
/* 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 */
return 0;
}
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
int
AudioDiskstream::set_non_layered (bool yn)
{
requires_bounce = false;
return true;
}
+#endif
void
AudioDiskstream::adjust_playback_buffering ()
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) {
return boost::dynamic_pointer_cast<AudioDiskstream>(_diskstream);
}
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
int
AudioTrack::set_mode (TrackMode m)
{
return false;
}
}
+#endif
int
AudioTrack::deprecated_use_diskstream_connections ()
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);
delete deprecated_io_node;
}
+bool
+Diskstream::non_layered () const
+{
+ return _session.config.get_layered_record_mode();
+}
+
void
Diskstream::set_track (Track* t)
{
}
}
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
/** Overloaded from parent to die horribly
*/
int
{
return yn ? -1 : 0;
}
+#endif
void
MidiDiskstream::set_note_mode (NoteMode m)
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 ();
return _timeline_position;
}
+#ifdef XXX_OLD_DESTRUCTIVE_API_XXX
bool
SndFileSource::set_destructive (bool yn)
{
return true;
}
+#endif
void
SndFileSource::clear_capture_marks ()