Alright those are a lot of new things! I'll try to sort them and answer them all.
1.
getDefaultDevice()implementation of getDefaultDevice() [...] feels wrong
Indeed if it would be implemented like that (which wouldn't work because
sf::SoundRecorder has to be derived), it would feel more wrong! Luckly OpenAL has a method that returns the name of the default capture device. I'll try to implement
getDefaultDevice() later.
[..]we should remove the "" shortcut[...]
Sadly this is not possible, because if
alcCaptureOpenDevice() is called with an empty string it will use the default device. Theoretically we could check if
setDevice() is called with an empty string and output an error message (recommending the use of
getDefaultDevice()). But I'm not sure if it's worth the effort. Maybe simply not documenting it should be enough.
2. Return a status in
start() and
setDevice()I'll try implement that later today.
3.
isRecording()The isRecording() function is useless[...]
Yeah you're right. Since there is no outside "event" (like file ended in
sf::Music) the state of the recording is always obvious.
4.
feels wrong [...] all the status functions will be available from all the derived classes[...]
Why not make them standalone functions then?
Alright I hope I didn't miss anything. If I did please remind me! I'll try to implement the
getDefaultDevice() and the return of the status later today.
Thanks again for the valueable feedback and the help!