| @@ -6937,7 +6937,7 @@ unsigned int RtApiAlsa :: getDeviceCount( void ) | |||||
| unsigned nDevices = 0; | unsigned nDevices = 0; | ||||
| int result, subdevice, card; | int result, subdevice, card; | ||||
| char name[64]; | char name[64]; | ||||
| snd_ctl_t *handle; | |||||
| snd_ctl_t *handle = 0; | |||||
| // Count cards and devices | // Count cards and devices | ||||
| card = -1; | card = -1; | ||||
| @@ -6946,6 +6946,7 @@ unsigned int RtApiAlsa :: getDeviceCount( void ) | |||||
| sprintf( name, "hw:%d", card ); | sprintf( name, "hw:%d", card ); | ||||
| result = snd_ctl_open( &handle, name, 0 ); | result = snd_ctl_open( &handle, name, 0 ); | ||||
| if ( result < 0 ) { | if ( result < 0 ) { | ||||
| handle = 0; | |||||
| errorStream_ << "RtApiAlsa::getDeviceCount: control open, card = " << card << ", " << snd_strerror( result ) << "."; | errorStream_ << "RtApiAlsa::getDeviceCount: control open, card = " << card << ", " << snd_strerror( result ) << "."; | ||||
| errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
| error( RtAudioError::WARNING ); | error( RtAudioError::WARNING ); | ||||
| @@ -6965,7 +6966,8 @@ unsigned int RtApiAlsa :: getDeviceCount( void ) | |||||
| nDevices++; | nDevices++; | ||||
| } | } | ||||
| nextcard: | nextcard: | ||||
| snd_ctl_close( handle ); | |||||
| if ( handle ) | |||||
| snd_ctl_close( handle ); | |||||
| snd_card_next( &card ); | snd_card_next( &card ); | ||||
| } | } | ||||
| @@ -6986,7 +6988,7 @@ RtAudio::DeviceInfo RtApiAlsa :: getDeviceInfo( unsigned int device ) | |||||
| unsigned nDevices = 0; | unsigned nDevices = 0; | ||||
| int result, subdevice, card; | int result, subdevice, card; | ||||
| char name[64]; | char name[64]; | ||||
| snd_ctl_t *chandle; | |||||
| snd_ctl_t *chandle = 0; | |||||
| // Count cards and devices | // Count cards and devices | ||||
| card = -1; | card = -1; | ||||
| @@ -6996,6 +6998,7 @@ RtAudio::DeviceInfo RtApiAlsa :: getDeviceInfo( unsigned int device ) | |||||
| sprintf( name, "hw:%d", card ); | sprintf( name, "hw:%d", card ); | ||||
| result = snd_ctl_open( &chandle, name, SND_CTL_NONBLOCK ); | result = snd_ctl_open( &chandle, name, SND_CTL_NONBLOCK ); | ||||
| if ( result < 0 ) { | if ( result < 0 ) { | ||||
| chandle = 0; | |||||
| errorStream_ << "RtApiAlsa::getDeviceInfo: control open, card = " << card << ", " << snd_strerror( result ) << "."; | errorStream_ << "RtApiAlsa::getDeviceInfo: control open, card = " << card << ", " << snd_strerror( result ) << "."; | ||||
| errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
| error( RtAudioError::WARNING ); | error( RtAudioError::WARNING ); | ||||
| @@ -7018,7 +7021,8 @@ RtAudio::DeviceInfo RtApiAlsa :: getDeviceInfo( unsigned int device ) | |||||
| nDevices++; | nDevices++; | ||||
| } | } | ||||
| nextcard: | nextcard: | ||||
| snd_ctl_close( chandle ); | |||||
| if ( chandle ) | |||||
| snd_ctl_close( chandle ); | |||||
| snd_card_next( &card ); | snd_card_next( &card ); | ||||
| } | } | ||||