Merge.
authorCarl Hetherington <cth@carlh.net>
Thu, 10 Jan 2019 00:27:22 +0000 (00:27 +0000)
committerCarl Hetherington <cth@carlh.net>
Thu, 10 Jan 2019 00:27:22 +0000 (00:27 +0000)
1  2 
RtAudio.cpp

diff --cc RtAudio.cpp
index 228541bcd97448efc8fbdcd29071f9365b8d4182,019e8ace5e224d4085897dc5931258c59d10432a..561ed2a66ae11a8356785ba00c534d489cb5ded0
@@@ -8643,15 -8643,27 +8643,33 @@@ bool RtApiPulse::probeDeviceOpen( unsig
      /* XXX: hard-coded for DCP-o-matic */\r
      pa_channel_map map;\r
      pa_channel_map_init(&map);\r
-     map.channels = 8;\r
-     map.map[0] = PA_CHANNEL_POSITION_FRONT_LEFT;\r
-     map.map[1] = PA_CHANNEL_POSITION_FRONT_RIGHT;\r
-     map.map[2] = PA_CHANNEL_POSITION_FRONT_CENTER;\r
-     map.map[3] = PA_CHANNEL_POSITION_LFE;\r
-     map.map[4] = PA_CHANNEL_POSITION_REAR_LEFT;\r
-     map.map[5] = PA_CHANNEL_POSITION_REAR_RIGHT;\r
-     map.map[6] = PA_CHANNEL_POSITION_SIDE_LEFT;\r
-     map.map[7] = PA_CHANNEL_POSITION_SIDE_RIGHT;\r
+     /* XXX: need to check 7.1 */\r
+     map.channels = channels;\r
\r
+     if (channels > 0) {\r
+       map.map[0] = PA_CHANNEL_POSITION_FRONT_LEFT;\r
+     }\r
+     if (channels > 1) {\r
+       map.map[1] = PA_CHANNEL_POSITION_FRONT_RIGHT;\r
+     }\r
+     if (channels > 2) {\r
+       map.map[2] = PA_CHANNEL_POSITION_FRONT_CENTER;\r
+     }\r
+     if (channels > 3) {\r
+       map.map[3] = PA_CHANNEL_POSITION_LFE;\r
+     }\r
+     if (channels > 4) {\r
+       map.map[4] = PA_CHANNEL_POSITION_REAR_LEFT;\r
+     }\r
+     if (channels > 5) {\r
+       map.map[5] = PA_CHANNEL_POSITION_REAR_RIGHT;\r
+     }\r
++    if (channels > 6) {\r
++      map.map[6] = PA_CHANNEL_POSITION_SIDE_LEFT;\r
++    }\r
++    if (channels > 7) {\r
++      map.map[6] = PA_CHANNEL_POSITION_SIDE_RIGHT;\r
++    }\r
  \r
      pah->s_play = pa_simple_new( NULL, streamName.c_str(), PA_STREAM_PLAYBACK, NULL, "Playback", &ss, &map, NULL, &error );\r
      if ( !pah->s_play ) {\r