git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4715 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.9.9.5
| @@ -821,6 +821,7 @@ void JackRouter::RestoreConnections() | |||||
| fConnections.clear(); | fConnections.clear(); | ||||
| } | } | ||||
| //------------------------------------------------------------------------------------------ | //------------------------------------------------------------------------------------------ | ||||
| void JackRouter::AutoConnect() | void JackRouter::AutoConnect() | ||||
| { | { | ||||
| @@ -831,12 +832,21 @@ void JackRouter::AutoConnect() | |||||
| } else { | } else { | ||||
| if (fAutoConnectIn) { | if (fAutoConnectIn) { | ||||
| for (int i = 0; i < fActiveInputs; i++) { | for (int i = 0; i < fActiveInputs; i++) { | ||||
| /* | |||||
| if (!ports[i]) { | if (!ports[i]) { | ||||
| printf("source port is null i = %ld\n", i); | printf("source port is null i = %ld\n", i); | ||||
| break; | break; | ||||
| } else if (jack_connect(fClient, ports[i], jack_port_name(fInputPorts[i])) != 0) { | } else if (jack_connect(fClient, ports[i], jack_port_name(fInputPorts[i])) != 0) { | ||||
| printf("Cannot connect input ports\n"); | printf("Cannot connect input ports\n"); | ||||
| } | } | ||||
| */ | |||||
| long ASIO_channel = fInMap[i]; | |||||
| if (!ports[ASIO_channel]) { | |||||
| printf("source port is null ASIO_channel = %ld\n", ASIO_channel); | |||||
| break; | |||||
| } else if (jack_connect(fClient, ports[ASIO_channel], jack_port_name(fInputPorts[i])) != 0) { | |||||
| printf("Cannot connect input ports\n"); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| jack_free(ports); | jack_free(ports); | ||||
| @@ -847,12 +857,21 @@ void JackRouter::AutoConnect() | |||||
| } else { | } else { | ||||
| if (fAutoConnectOut) { | if (fAutoConnectOut) { | ||||
| for (int i = 0; i < fActiveOutputs; i++) { | for (int i = 0; i < fActiveOutputs; i++) { | ||||
| if (!ports[i]){ | |||||
| /* | |||||
| if (!ports[i]){ | |||||
| printf("destination port is null i = %ld\n", i); | printf("destination port is null i = %ld\n", i); | ||||
| break; | break; | ||||
| } else if (jack_connect(fClient, jack_port_name(fOutputPorts[i]), ports[i]) != 0) { | } else if (jack_connect(fClient, jack_port_name(fOutputPorts[i]), ports[i]) != 0) { | ||||
| printf("Cannot connect output ports\n"); | printf("Cannot connect output ports\n"); | ||||
| } | } | ||||
| */ | |||||
| long ASIO_channel = fOutMap[i]; | |||||
| if (!ports[ASIO_channel]){ | |||||
| printf("destination port is null ASIO_channel = %ld\n", ASIO_channel); | |||||
| break; | |||||
| } else if (jack_connect(fClient, jack_port_name(fOutputPorts[i]), ports[ASIO_channel]) != 0) { | |||||
| printf("Cannot connect output ports\n"); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| jack_free(ports); | jack_free(ports); | ||||
| @@ -228,7 +228,7 @@ void PortAudioDevices::DisplayDevicesNames() | |||||
| } | } | ||||
| /* print device info fields */ | /* print device info fields */ | ||||
| jack_info ("Name = %s", GetFullName (id).c_str()); | |||||
| jack_info ("Name = %s", GetFullName(id).c_str()); | |||||
| jack_info ("Max inputs = %d", fDeviceInfo[id]->maxInputChannels); | jack_info ("Max inputs = %d", fDeviceInfo[id]->maxInputChannels); | ||||
| jack_info ("Max outputs = %d", fDeviceInfo[id]->maxOutputChannels); | jack_info ("Max outputs = %d", fDeviceInfo[id]->maxOutputChannels); | ||||
| @@ -269,7 +269,7 @@ void PortAudioDevices::DisplayDevicesNames() | |||||
| jack_info("**************************** End of list ****************************"); | jack_info("**************************** End of list ****************************"); | ||||
| } | } | ||||
| bool PortAudioDevices::IsDuplex (PaDeviceIndex id) | |||||
| bool PortAudioDevices::IsDuplex(PaDeviceIndex id) | |||||
| { | { | ||||
| //does the device has in and out facilities | //does the device has in and out facilities | ||||
| if (fDeviceInfo[id]->maxInputChannels && fDeviceInfo[id]->maxOutputChannels) { | if (fDeviceInfo[id]->maxInputChannels && fDeviceInfo[id]->maxOutputChannels) { | ||||
| @@ -277,7 +277,7 @@ bool PortAudioDevices::IsDuplex (PaDeviceIndex id) | |||||
| } | } | ||||
| //else is another complementary device ? (search in devices with the same name) | //else is another complementary device ? (search in devices with the same name) | ||||
| for (PaDeviceIndex i = 0; i < fNumDevice; i++) { | for (PaDeviceIndex i = 0; i < fNumDevice; i++) { | ||||
| if ((i != id) && (GetDeviceName (i) == GetDeviceName (id))) { | |||||
| if ((i != id) && (GetDeviceName(i) == GetDeviceName(id))) { | |||||
| if ((fDeviceInfo[i]->maxInputChannels && fDeviceInfo[id]->maxOutputChannels) | if ((fDeviceInfo[i]->maxInputChannels && fDeviceInfo[id]->maxOutputChannels) | ||||
| || (fDeviceInfo[i]->maxOutputChannels && fDeviceInfo[id]->maxInputChannels)) { | || (fDeviceInfo[i]->maxOutputChannels && fDeviceInfo[id]->maxInputChannels)) { | ||||
| return true; | return true; | ||||
| @@ -248,6 +248,29 @@ int JackPortAudioDriver::Close() | |||||
| return res; | return res; | ||||
| } | } | ||||
| int JackPortAudioDriver::Attach() | |||||
| { | |||||
| if (JackAudioDriver::Attach() == 0) { | |||||
| char alias[REAL_JACK_PORT_NAME_SIZE]; | |||||
| for (int i = 0; i < fCaptureChannels; i++) { | |||||
| snprintf(alias, sizeof(alias), "%s:out%d", fPaDevices->GetDeviceName(fInputDevice), i + 1); | |||||
| JackPort* port = fGraphManager->GetPort(fCapturePortList[i]); | |||||
| port->SetAlias(alias); | |||||
| } | |||||
| for (int i = 0; i < fPlaybackChannels; i++) { | |||||
| snprintf(alias, sizeof(alias), "%s:in%d", fPaDevices->GetDeviceName(fOutputDevice), i + 1); | |||||
| JackPort* port = fGraphManager->GetPort(fPlaybackPortList[i]); | |||||
| port->SetAlias(alias); | |||||
| } | |||||
| } else { | |||||
| return -1; | |||||
| } | |||||
| } | |||||
| int JackPortAudioDriver::Start() | int JackPortAudioDriver::Start() | ||||
| { | { | ||||
| jack_log("JackPortAudioDriver::Start"); | jack_log("JackPortAudioDriver::Start"); | ||||
| @@ -79,6 +79,8 @@ class JackPortAudioDriver : public JackMMCSS, public JackAudioDriver | |||||
| jack_nframes_t playback_latency); | jack_nframes_t playback_latency); | ||||
| int Close(); | int Close(); | ||||
| int Attach(); | |||||
| int Start(); | int Start(); | ||||
| int Stop(); | int Stop(); | ||||