- if (!oggStream.datasource) openFile();
- if (!oggStream.datasource) return;
-
- ALuint objs[nBuffers];
- alGenBuffers(nBuffers, objs);
-
- for (int i = 0; i < nBuffers; ++i)
- {
- objects.push_back(objs[i]);
- stream(objs[i]);
- }
-
- alSourceQueueBuffers(source, nBuffers, objs);
- }
-
- enum StreamStatus
- {
- STREAM_OK = 0,
- STREAM_EOF = 1,
- STREAM_WRONG = 2
- };
-
- StreamStatus stream(ALuint buffer)
- {
- std::vector<ALuint>::iterator it =
- std::find(objects.begin(), objects.end(), buffer);
-
- // that buffer doesn't belong to us
- if (it == objects.end()) return STREAM_WRONG;
-