Browse Source

Add alias in PortAudio driver.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4715 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.9.9.5
sletz 13 years ago
parent
commit
0c7bf00a21
4 changed files with 48 additions and 4 deletions
  1. +20
    -1
      windows/JackRouter/JackRouter.cpp
  2. +3
    -3
      windows/portaudio/JackPortAudioDevices.cpp
  3. +23
    -0
      windows/portaudio/JackPortAudioDriver.cpp
  4. +2
    -0
      windows/portaudio/JackPortAudioDriver.h

+ 20
- 1
windows/JackRouter/JackRouter.cpp View File

@@ -821,6 +821,7 @@ void JackRouter::RestoreConnections()
fConnections.clear();
}
//------------------------------------------------------------------------------------------
void JackRouter::AutoConnect()
{
@@ -831,12 +832,21 @@ void JackRouter::AutoConnect()
} else {
if (fAutoConnectIn) {
for (int i = 0; i < fActiveInputs; i++) {
/*
if (!ports[i]) {
printf("source port is null i = %ld\n", i);
break;
} else if (jack_connect(fClient, ports[i], jack_port_name(fInputPorts[i])) != 0) {
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);
@@ -847,12 +857,21 @@ void JackRouter::AutoConnect()
} else {
if (fAutoConnectOut) {
for (int i = 0; i < fActiveOutputs; i++) {
if (!ports[i]){
/*
if (!ports[i]){
printf("destination port is null i = %ld\n", i);
break;
} else if (jack_connect(fClient, jack_port_name(fOutputPorts[i]), ports[i]) != 0) {
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);


+ 3
- 3
windows/portaudio/JackPortAudioDevices.cpp View File

@@ -228,7 +228,7 @@ void PortAudioDevices::DisplayDevicesNames()
}

/* 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 outputs = %d", fDeviceInfo[id]->maxOutputChannels);

@@ -269,7 +269,7 @@ void PortAudioDevices::DisplayDevicesNames()
jack_info("**************************** End of list ****************************");
}

bool PortAudioDevices::IsDuplex (PaDeviceIndex id)
bool PortAudioDevices::IsDuplex(PaDeviceIndex id)
{
//does the device has in and out facilities
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)
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)
|| (fDeviceInfo[i]->maxOutputChannels && fDeviceInfo[id]->maxInputChannels)) {
return true;


+ 23
- 0
windows/portaudio/JackPortAudioDriver.cpp View File

@@ -248,6 +248,29 @@ int JackPortAudioDriver::Close()
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()
{
jack_log("JackPortAudioDriver::Start");


+ 2
- 0
windows/portaudio/JackPortAudioDriver.h View File

@@ -79,6 +79,8 @@ class JackPortAudioDriver : public JackMMCSS, public JackAudioDriver
jack_nframes_t playback_latency);

int Close();
int Attach();

int Start();
int Stop();


Loading…
Cancel
Save