Update to DS code for getDeviceCount() when cleaning out devices that may have disapp...
authorGary Scavone <gary@music.mcgill.ca>
Sun, 5 Apr 2015 21:20:10 +0000 (17:20 -0400)
committerGary Scavone <gary@music.mcgill.ca>
Sun, 5 Apr 2015 21:20:10 +0000 (17:20 -0400)
RtAudio.cpp

index 4d4c85f2ef03037db4270ad7dc645306dcae6864..dfa992d8aa736fd7d00357b3f6baf32d9d46bd9a 100644 (file)
@@ -5295,14 +5295,11 @@ unsigned int RtApiDs :: getDeviceCount( void )
     error( RtAudioError::WARNING );\r
   }\r
 \r
-  // Clean out any devices that may have disappeared.\r
-  std::vector< int > indices;\r
-  for ( unsigned int i=0; i<dsDevices.size(); i++ )\r
-    if ( dsDevices[i].found == false ) indices.push_back( i );\r
-  //unsigned int nErased = 0;\r
-  for ( unsigned int i=0; i<indices.size(); i++ )\r
-    dsDevices.erase( dsDevices.begin()+indices[i] );\r
-  //dsDevices.erase( dsDevices.begin()-nErased++ );\r
+  // Clean out any devices that may have disappeared (code update submitted by Eli Zehngut).\r
+  for ( unsigned int i=0; i<dsDevices.size(); ) {\r
+    if ( dsDevices[i].found == false ) dsDevices.erase( dsDevices.begin() + i );\r
+    else i++;\r
+  }\r
 \r
   return static_cast<unsigned int>(dsDevices.size());\r
 }\r