diff --git a/src/mod/endpoints/mod_portaudio/mod_portaudio.c b/src/mod/endpoints/mod_portaudio/mod_portaudio.c index 8b3a79f151..f0f1e6f981 100644 --- a/src/mod/endpoints/mod_portaudio/mod_portaudio.c +++ b/src/mod/endpoints/mod_portaudio/mod_portaudio.c @@ -1105,8 +1105,10 @@ static switch_status_t devlist(char **argv, int argc, switch_stream_handle_t *st { int i, numDevices, prev; const PaDeviceInfo *deviceInfo; + const PaHostApiInfo *hostApiInfo; numDevices = Pa_GetDeviceCount(); + if (numDevices < 0) { return SWITCH_STATUS_SUCCESS; } @@ -1116,7 +1118,8 @@ static switch_status_t devlist(char **argv, int argc, switch_stream_handle_t *st for (i = 0; i < numDevices; i++) { deviceInfo = Pa_GetDeviceInfo(i); - stream->write_function(stream, "\t\t\n", i, deviceInfo->name, deviceInfo->maxInputChannels, deviceInfo->maxOutputChannels); + hostApiInfo = Pa_GetHostApiInfo(deviceInfo->hostApi); + stream->write_function(stream, "\t\t\n", i, deviceInfo->name, hostApiInfo->name, deviceInfo->maxInputChannels, deviceInfo->maxOutputChannels); } stream->write_function(stream, "\t\n\t\n" @@ -1128,7 +1131,9 @@ static switch_status_t devlist(char **argv, int argc, switch_stream_handle_t *st for (i = 0; i < numDevices; i++) { deviceInfo = Pa_GetDeviceInfo(i); - stream->write_function(stream, "%d;%s;%d;%d;", i, deviceInfo->name, deviceInfo->maxInputChannels, deviceInfo->maxOutputChannels); + hostApiInfo = Pa_GetHostApiInfo(deviceInfo->hostApi); + + stream->write_function(stream, "%d;%s(%s);%d;%d;", i, deviceInfo->name, hostApiInfo->name, deviceInfo->maxInputChannels, deviceInfo->maxOutputChannels); prev = 0; if (globals.ringdev == i) {