I believe the variable DataSource::dataIsWanted was added with the sound pipeline refactor.
Some old test code I was using was "disconnecting" from the upstream channel by calling only callingupstream->disconnect().
This successfully stops the channel from pulling more data, but the microphone was left running because
upstream->dataWanted(DATASTREAM_NOT_WANTED) wasn't called.
Shouldn't DataSource::disconnect() also imply that the DataSink doesn't want any more data and do that automatically without the extra dataWanted() call?