Home | History | Annotate | Download | only in libmedia

Lines Matching refs:lpToneGen

1150     ToneGenerator *lpToneGen = static_cast<ToneGenerator *>(user);
1153 const ToneDescriptor *lpToneDesc = lpToneGen->mpToneDesc;
1162 unsigned int lReqSmp = lNumSmp < lpToneGen->mProcessSize*2 ? lNumSmp : lpToneGen->mProcessSize;
1167 lpToneGen->mLock.lock();
1171 lpToneGen->mTotalSmp += lReqSmp;
1174 switch (lpToneGen->mState) {
1188 lpToneGen->mNextSegSmp = TONEGEN_INF; // forced to skip state machine management below
1199 if (lpToneDesc->segments[lpToneGen->mCurSegment].duration == 0 ||
1200 lpToneGen->mTotalSmp > lpToneGen->mMaxSmp) {
1201 if (lpToneGen->mState == TONE_PLAYING) {
1202 lpToneGen->mState = TONE_STOPPING;
1204 if (lpToneDesc->segments[lpToneGen->mCurSegment].duration == 0) {
1209 lpToneGen->mNextSegSmp = TONEGEN_INF; // forced to skip state machine management below
1212 if (lpToneGen->mTotalSmp > lpToneGen->mNextSegSmp) {
1220 if (lpToneDesc->segments[lpToneGen->mCurSegment].waveFreq[0] != 0) {
1223 unsigned short lFrequency = lpToneDesc->segments[lpToneGen->mCurSegment].waveFreq[lFreqIdx];
1226 WaveGenerator *lpWaveGen = lpToneGen->mWaveGens.valueFor(lFrequency);
1228 lFrequency = lpToneDesc->segments[lpToneGen->mCurSegment].waveFreq[++lFreqIdx];
1234 if (lpToneDesc->segments[lpToneGen->mCurSegment].loopCnt) {
1235 if (lpToneGen->mLoopCounter < lpToneDesc->segments[lpToneGen->mCurSegment].loopCnt) {
1237 lpToneDesc->segments[lpToneGen->mCurSegment].loopCnt,
1238 lpToneGen->mLoopCounter,
1239 lpToneGen->mCurSegment);
1240 lpToneGen->mCurSegment = lpToneDesc->segments[lpToneGen->mCurSegment].loopIndx;
1241 ++lpToneGen->mLoopCounter;
1244 lpToneGen->mLoopCounter = 0;
1245 lpToneGen->mCurSegment++;
1247 lpToneDesc->segments[lpToneGen->mCurSegment].loopCnt,
1248 lpToneGen->mLoopCounter,
1249 lpToneGen->mCurSegment);
1252 lpToneGen->mCurSegment++;
1254 lpToneDesc->segments[lpToneGen->mCurSegment].loopCnt,
1255 lpToneGen->mLoopCounter,
1256 lpToneGen->mCurSegment);
1261 if (lpToneDesc->segments[lpToneGen->mCurSegment].duration == 0) {
1262 ALOGV("Last Seg: %d", lpToneGen->mCurSegment);
1265 if (++lpToneGen->mCurCount <= lpToneDesc->repeatCnt) {
1266 ALOGV("Repeating Count: %d", lpToneGen->mCurCount);
1268 lpToneGen->mCurSegment = lpToneDesc->repeatSegment;
1273 ALOGV("New segment %d, Next Time: %d", lpToneGen->mCurSegment,
1274 (lpToneGen->mNextSegSmp*1000)/lpToneGen->mSamplingRate);
1281 ALOGV("New segment %d, Next Time: %d", lpToneGen->mCurSegment,
1282 (lpToneGen->mNextSegSmp*1000)/lpToneGen->mSamplingRate);
1283 if (lpToneDesc->segments[lpToneGen->mCurSegment].waveFreq[0] != 0) {
1293 // Update next segment transition position. No harm to do it also for last segment as lpToneGen->mNextSegSmp won't be used any more
1294 lpToneGen->mNextSegSmp
1295 += (lpToneDesc->segments[lpToneGen->mCurSegment].duration * lpToneGen->mSamplingRate) / 1000;
1299 if (lpToneDesc->segments[lpToneGen->mCurSegment].waveFreq[0] == 0) {
1309 unsigned short lFrequency = lpToneDesc->segments[lpToneGen->mCurSegment].waveFreq[lFreqIdx];
1312 WaveGenerator *lpWaveGen = lpToneGen->mWaveGens.valueFor(lFrequency);
1314 lFrequency = lpToneDesc->segments[lpToneGen->mCurSegment].waveFreq[++lFreqIdx];
1323 switch (lpToneGen->mState) {
1326 if (lpToneGen->prepareWave()) {
1327 lpToneGen->mState = TONE_STARTING;
1328 if (clock_gettime(CLOCK_MONOTONIC, &lpToneGen->mStartTime) != 0) {
1329 lpToneGen->mStartTime.tv_sec = 0;
1332 lpToneDesc = lpToneGen->mpToneDesc;
1335 lpToneGen->mState = TONE_IDLE;
1336 lpToneGen->mpAudioTrack->stop();
1344 lpToneGen->mState = TONE_STOPPED;
1349 lpToneGen->mState = TONE_INIT;
1351 lpToneGen->mpAudioTrack->stop();
1359 lpToneGen->mState = TONE_PLAYING;
1372 lpToneGen->mWaitCbkCond.broadcast();
1373 lpToneGen->mLock.unlock();