After some testing, I found out that the results of getRecordNumDrivers never changes.
For example if I run the code with two microphones plugged in, the value of numdrivers and numconnected will always be “2”, even if one is unplugged or if another microphone is added after initialization.

After some testing, I found out that the results of getRecordNumDrivers never changes.
For example if I run the code with two microphones plugged in, the value of numdrivers and numconnected will always be “2”, even if one is unplugged or if another microphone is added after initialization.

It is expected that when calling System::getRecordNumDrivers the value of ‘numdrivers’ will only ever grow (disconnected microphones are still in the list). The other value ‘numconnected’ should be a real indication of the number of connected microphones.

FMOD_DRIVER_STATE can encompass multiple states at the same time, the defines are bitwise ORd together to give you the final number, i.e. 3 is the bitwise OR of CONNECTED and DEFAULT.

EDIT: For Windows, detection of microphone add/remove is currently only available with the WASAPI output mode (default on Windows Vista and up). DirectSound (default for Windows XP) does not have this feature.

It is expected that when calling System::getRecordNumDrivers the value of ‘numdrivers’ will only ever grow (disconnected microphones are still in the list). The other value ‘numconnected’ should be a real indication of the number of connected microphones.

FMOD_DRIVER_STATE can encompass multiple states at the same time, the defines are bitwise ORd together to give you the final number, i.e. 3 is the bitwise OR of CONNECTED and DEFAULT.

EDIT: For Windows, detection of microphone add/remove is currently only available with the WASAPI output mode (default on Windows Vista and up). DirectSound (default for Windows XP) does not have this feature.

I can log this as a request for improvement if you like?

Thank you for the answer. The value of the state makes sense now.

In my tests, numconnected value never changes when a microphone is plugged in or out.