int main() { CircularQueue q; q.enqueue(1); q.enqueue(2); q.enqueue(3); q.enqueue(4); q.enqueue(5); q.display(); q.dequeue(); q.display(); q.enqueue(6); q.display(); q.dequeue(); q.dequeue(); q.dequeue(); q.dequeue(); q.dequeue(); return 0; }
OSErr open_network_speaker() { // Allocate storage for noise data - assume if pointer not NULL, already have storage. if(sNoiseBufferStorage == NULL) { assert(kNoiseBufferSize % 2 == 0); uint16* theBuffer = new uint16[kNoiseBufferSize / 2]; // Fill in noise data (use whole width of local_random()) for(int i = 0; i < kNoiseBufferSize / 2; i++) theBuffer[i] = local_random() / 4; sNoiseBufferStorage = (byte*) theBuffer; } // Fill out the noise-buffer descriptor sNoiseBufferDesc.mData = sNoiseBufferStorage; sNoiseBufferDesc.mLength = kNoiseBufferSize; sNoiseBufferDesc.mFlags = 0; // Reset the buffer descriptor queue sSoundBuffers.reset(); // Reset the data buffer queue sSoundDataBuffers.reset(); // Allocate storage for audio data buffers for(int i = 0; i < kNumSoundDataBuffers; i++) { byte* theBuffer = new byte[kSoundDataBufferSize]; sSoundDataBuffers.enqueue(theBuffer); } // Reset a couple others to sane values sDryDequeues = 0; sSpeakerIsOn = false; #ifdef SPEEX init_speex_decoder(); #endif return 0; }
void release_network_speaker_buffer(byte* inBuffer) { sSoundDataBuffers.enqueue(inBuffer); }