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
errorStream_ << "RtApiAlsa::callbackEvent: error preparing device after underrun, " << snd_strerror( result ) << ".";\r
errorText_ = errorStream_.str();\r
}\r
+ else\r
+ errorText_ = "RtApiAlsa::callbackEvent: audio write error, underrun.";\r
}\r
else {\r
errorStream_ << "RtApiAlsa::callbackEvent: error, current state is " << snd_pcm_state_name( state ) << ", " << snd_strerror( result ) << ".";\r