Lines Matching refs:track

43 /** \brief Check whether a track has any data for us to read */
45 static SLboolean track_check(Track *track)
47 assert(NULL != track);
50 CAudioPlayer *audioPlayer = track->mAudioPlayer;
53 // track is initialized
58 assert(audioPlayer->mTrack == track);
60 SLuint32 framesMixed = track->mFramesMixed;
62 track->mFramesMixed = 0;
78 track->mReader = NULL;
79 track->mAvail = 0;
87 unsigned i = track - outputMix->mOutputMixExt.mTracks;
90 track->mAudioPlayer = NULL;
101 case SL_PLAYSTATE_PLAYING: // continue playing current track data
102 if (0 < track->mAvail) {
111 track->mReader = oldFront->mBuffer;
112 track->mAvail = oldFront->mSize;
122 // copy gains from audio player to track
123 track->mGains[0] = audioPlayer->mGains[0];
124 track->mGains[1] = audioPlayer->mGains[1];
138 track->mReader = oldFront->mBuffer;
139 track->mAvail = oldFront->mSize;
167 /** \brief This is the track mixer: fill the specified 16-bit stereo PCM buffer */
200 Track *track = &thiz->mTracks[i];
202 // track is allocated
204 if (!track_check(track)) {
208 // track is playing
216 float gain = track->mGains[channel];
230 if (track->mAvail < actual) {
231 actual = track->mAvail;
235 assert(NULL != track->mReader);
237 const stereo *source = (const stereo *) track->mReader;
244 mixBuffer->left += (short) (source->left * track->mGains[0]);
245 mixBuffer->right += (short) (source->right * track->mGains[1]);
258 mixBuffer->left = (short) (source->left * track->mGains[0]);
259 mixBuffer->right = (short) (source->right * track->mGains[1]);
263 memcpy(dstWriter, track->mReader, actual);
270 track->mReader = (char *) track->mReader + actual;
271 track->mAvail -= actual;
272 if (track->mAvail == 0) {
273 IBufferQueue *bufferQueue = &track->mAudioPlayer->mBufferQueue;
291 track->mReader = newFront->mBuffer;
292 track->mAvail = newFront->mSize;
308 track->mFramesMixed += actual >> 2; // sizeof(short) * STEREO_CHANNELS
312 if (track_check(track)) {
344 Track *track = &thiz->mTracks[0];
346 for (i = 0; i < MAX_TRACK; ++i, ++track) {
347 track->mAudioPlayer = NULL;
353 /** \brief Called by Engine::CreateAudioPlayer to allocate a track */
383 Track *track = NULL;
390 // allocate an entry within OutputMix for this track
395 // All track slots full in output mix
401 track = &omExt->mTracks[i];
402 track->mAudioPlayer = NULL; // only field that is accessed before full initialization
404 thiz->mTrack = track;
414 assert(NULL != track);
415 track->mBufferQueue = &thiz->mBufferQueue;
416 track->mAudioPlayer = thiz;
417 track->mReader = NULL;
418 track->mAvail = 0;
419 track->mGains[0] = 1.0f;
420 track->mGains[1] = 1.0f;
421 track->mFramesMixed = 0;