From 63f6764dd3c4d7a8ae6a5b31a3872ce56bf5c4d8 Mon Sep 17 00:00:00 2001
From: Andrew Thompson <andrew@hijacked.us>
Date: Thu, 15 Jan 2009 22:58:59 +0000
Subject: [PATCH] Commit patch from MODENDP-174

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11236 d0543943-73ff-0310-b7d9-9358b9ac24b2
---
 .../endpoints/mod_portaudio/mod_portaudio.c   | 29 +++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/src/mod/endpoints/mod_portaudio/mod_portaudio.c b/src/mod/endpoints/mod_portaudio/mod_portaudio.c
index ee4b33b0af..bd976b19fc 100644
--- a/src/mod/endpoints/mod_portaudio/mod_portaudio.c
+++ b/src/mod/endpoints/mod_portaudio/mod_portaudio.c
@@ -1030,7 +1030,7 @@ static void PrintSupportedStandardSampleRates(const PaStreamParameters * inputPa
 
 static switch_status_t devlist(char **argv, int argc, switch_stream_handle_t *stream)
 {
-	int i, numDevices;
+	int i, numDevices, prev;
 	const PaDeviceInfo *deviceInfo;
 
 	numDevices = Pa_GetDeviceCount();
@@ -1039,7 +1039,32 @@ 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\n", i, deviceInfo->name, deviceInfo->maxInputChannels, deviceInfo->maxOutputChannels);
+		stream->write_function(stream, "%d;%s;%d;%d;", i, deviceInfo->name, deviceInfo->maxInputChannels, deviceInfo->maxOutputChannels);
+
+		prev = 0;
+		if (globals.ringdev == i) {
+			stream->write_function(stream, "r");
+			prev = 1;
+		}
+
+		if (globals.indev == i) {
+			if (prev) {
+				stream->write_function(stream, ",");
+			}
+			stream->write_function(stream, "i");
+			prev = 1;
+		}
+
+		if (globals.outdev == i) {
+			if (prev) {
+				stream->write_function(stream, ",");
+			}
+			stream->write_function(stream, "o");
+			prev = 1;
+		}
+
+		stream->write_function(stream, "\n");
+
 	}
 
 	return SWITCH_STATUS_SUCCESS;