+ if (_session.record_status() != Session::Disabled) {
+ return;
+ }
+
+ if (yn != _step_editing) {
+ _step_editing = yn;
+ StepEditStatusChange (yn);
+ }
+}
+
+boost::shared_ptr<SMFSource>
+MidiTrack::write_source (uint32_t)
+{
+ return midi_diskstream()->write_source ();
+}
+
+void
+MidiTrack::set_playback_channel_mode(ChannelMode mode, uint16_t mask)
+{
+ ChannelMode old = get_playback_channel_mode ();
+ uint16_t old_mask = get_playback_channel_mask ();
+
+ if (old != mode || mask != old_mask) {
+ _set_playback_channel_mode (mode, mask);
+ PlaybackChannelModeChanged ();
+ _session.set_dirty ();
+ }
+}
+
+void
+MidiTrack::set_capture_channel_mode(ChannelMode mode, uint16_t mask)
+{
+ ChannelMode old = get_capture_channel_mode ();
+ uint16_t old_mask = get_capture_channel_mask ();
+
+ if (old != mode || mask != old_mask) {
+ _set_capture_channel_mode (mode, mask);
+ CaptureChannelModeChanged ();
+ _session.set_dirty ();
+ }
+}
+
+void
+MidiTrack::set_playback_channel_mask (uint16_t mask)
+{
+ uint16_t old = get_playback_channel_mask();
+
+ if (old != mask) {
+ _set_playback_channel_mask (mask);
+ PlaybackChannelMaskChanged ();
+ _session.set_dirty ();
+ }
+}
+
+void
+MidiTrack::set_capture_channel_mask (uint16_t mask)
+{
+ uint16_t old = get_capture_channel_mask();
+
+ if (old != mask) {
+ _set_capture_channel_mask (mask);
+ CaptureChannelMaskChanged ();
+ _session.set_dirty ();
+ }
+}
+
+boost::shared_ptr<MidiPlaylist>
+MidiTrack::midi_playlist ()
+{
+ return midi_diskstream()->midi_playlist ();
+}
+
+void
+MidiTrack::diskstream_data_recorded (boost::weak_ptr<MidiSource> src)
+{
+ DataRecorded (src); /* EMIT SIGNAL */
+}
+
+bool
+MidiTrack::input_active () const
+{
+ return _input_active;