{
boost::shared_ptr<Ports> p = ports.reader ();
- if (!Profile->get_trx()) {
- /* re-establish connections */
+ /* re-establish connections */
- DEBUG_TRACE (DEBUG::Ports, string_compose ("reconnect %1 ports\n", p->size()));
+ DEBUG_TRACE (DEBUG::Ports, string_compose ("reconnect %1 ports\n", p->size()));
- for (Ports::iterator i = p->begin(); i != p->end(); ++i) {
- i->second->reconnect ();
- }
+ for (Ports::iterator i = p->begin(); i != p->end(); ++i) {
+ i->second->reconnect ();
}
return 0;
void
PortManager::connect_callback (const string& a, const string& b, bool conn)
{
+ DEBUG_TRACE (DEBUG::BackendCallbacks, string_compose (X_("connect callback %1 + %2 connected ? %3\n"), a, b, conn));
+
boost::shared_ptr<Port> port_a;
boost::shared_ptr<Port> port_b;
Ports::iterator x;
void
PortManager::registration_callback ()
{
+ DEBUG_TRACE (DEBUG::BackendCallbacks, "port registration callback\n");
+
if (!_port_remove_in_progress) {
{
int
PortManager::graph_order_callback ()
{
+ DEBUG_TRACE (DEBUG::BackendCallbacks, "graph order callback\n");
+
if (!_port_remove_in_progress) {
GraphReordered(); /* EMIT SIGNAL */
}
* A single external source-port may be connected to many ardour
* input-ports. Currently re-sampling is per input.
*/
- if (0 && s && s->rt_tasklist () && fabs (Port::speed_ratio ()) != 1.0) {
+ if (s && s->rt_tasklist () && fabs (Port::speed_ratio ()) != 1.0) {
RTTaskList::TaskList tl;
for (Ports::iterator p = _cycle_ports->begin(); p != _cycle_ports->end(); ++p) {
if (!(p->second->flags() & TransportMasterPort)) {
}
for (Ports::iterator p = _cycle_ports->begin(); p != _cycle_ports->end(); ++p) {
- p->second->flush_buffers (nframes);
+ /* AudioEngine::split_cycle flushes buffers until Port::port_offset.
+ * Now only flush remaining events (after Port::port_offset) */
+ p->second->flush_buffers (nframes - Port::port_offset ());
}
_cycle_ports.reset ();
for (vector<string>::iterator p = ports.begin(); p != ports.end(); ++p) {
- if (port_is_mine (*p)) {
+ /* ugly hack, ideally we'd use a port-flag, or at vkbd_output_port()->name() */
+ if (port_is_mine (*p) && *p != _backend->my_name() + ":" + _("Virtual Keyboard")) {
continue;
}
if (port_is_control_only (*p)) {
flags = MidiPortControl;
+ } else if (*p == _backend->my_name() + ":" + _("Virtual Keyboard")) {
+ flags = MidiPortFlags(MidiPortSelection | MidiPortMusic);
}
MidiPortInformation mpi (_backend->name(), *p, true, flags, true);