void SoundPlayerOpenAL::updateStreams() {
    assert(context != 0);
    try {
        for(StreamSoundSources::iterator i = streamSources.begin();
                i != streamSources.end(); ++i) {
            StreamSoundSource* source = *i;
            try {
                source->update();
            } catch(std::exception& e) {
                std::cerr << "Error while updating sound stream: "
                          << e.what() << "\n";
            }
        }
        alcProcessContext(context);
        checkAlcError("Error while processing audio context: ");
    } catch(...) {
        printOpenALInfo();
        throw;
    }
}