}
}
+#ifdef MIXBUS
+ // compensate for latency when bouncing from master or mixbus.
+ // we need to use "ExistingMaterial" to pick up the master bus' latency
+ // see also Route::direct_feeds_according_to_reality
+ IOVector ios;
+ ios.push_back (_io);
+ if (_session.master_out() && ios.fed_by (_session.master_out()->output())) {
+ have_physical = true;
+ }
+ for (uint32_t n = 0; n < NUM_MIXBUSES && !have_physical; ++n) {
+ if (_session.get_mixbus (n) && ios.fed_by (_session.get_mixbus(n)->output())) {
+ have_physical = true;
+ }
+ }
+#endif
+
if (have_physical) {
set_align_style (ExistingMaterial);
} else {
_capture_offset = 0;
break;
}
+#ifdef MIXBUS
+ framecnt_t port_offset;
+ if (_track->mixbus_internal_bounce (port_offset)) {
+ /* _capture_offset may become negative, but the sum
+ * _capture_offset + existing_material_offset
+ * will be postive.
+ */
+ _capture_offset -= port_offset;
+ }
+#endif
DEBUG_TRACE (DEBUG::CaptureAlignment, string_compose ("%1: using IO latency, capture offset set to %2 with style = %3\n", name(), _capture_offset, enum_2_string (_alignment_style)));
}
#include "ardour/playlist.h"
#include "ardour/port.h"
#include "ardour/processor.h"
+#include "ardour/profile.h"
#include "ardour/record_enable_control.h"
#include "ardour/record_safe_control.h"
#include "ardour/route_group_specialized.h"
/* no outputs? nothing to do ... what happens if we have sends etc. ? */
- if (n_outputs().n_total() == 0) {
+ if (n_outputs().n_total() == 0 && !ARDOUR::Profile->get_mixbus()) {
+ //Note: Mixbus has its own output mechanism, so we should operate even if no explicit outputs are assigned
return 0;
}
break;
case Auxes: // in ardour, for now aux and buss are same. for mixbus, "Busses" are mixbuses, "Auxes" are ardour buses
#ifdef MIXBUS
- if (!s->mixbus() && !is_track() && !s->presentation_info().hidden())
+ if (!s->mixbus() && !is_track(s) && !s->presentation_info().hidden())
#else
if (!is_track(s) && !s->presentation_info().hidden())
#endif
Mackie::LedState
MackieControlProtocol::inputs_press (Mackie::Button&)
{
+#ifdef MIXBUS
+ set_view_mode (Mixer); //in Mixbus, this is the same as Global View (avoid dead buttons)
+#endif
return none;
}
Mackie::LedState
Mackie::LedState
MackieControlProtocol::audioinstruments_press (Mackie::Button& b)
{
+#ifdef MIXBUS
+ set_view_mode (MidiTracks); //in Mixbus, we do the same thing as MIDI Tracks ( aviod dead buttons )
+#endif
return none;
}
default:
break;
}
+#ifdef MIXBUS
+ //"None" mode, by definition (currently) shows the pan control above the fader.
+ //Mixbus controllers are created from a LADSPA so they don't have ac->desc().type
+ //For the forseeable future, we will just return "Pan" here.
+ return "Pan";
+#endif
return "???";
}