Home | History | Annotate | Download | only in visualizer

Lines Matching refs:pContext

98 uint32_t Visualizer_getDeltaTimeMsFromUpdatedTime(VisualizerContext* pContext) {
100 if (pContext->mBufferUpdateTime.tv_sec != 0) {
103 time_t secs = ts.tv_sec - pContext->mBufferUpdateTime.tv_sec;
104 long nsec = ts.tv_nsec - pContext->mBufferUpdateTime.tv_nsec;
116 void Visualizer_reset(VisualizerContext *pContext)
118 pContext->mCaptureIdx = 0;
119 pContext->mLastCaptureIdx = 0;
120 pContext->mBufferUpdateTime.tv_sec = 0;
121 pContext->mLatency = 0;
122 memset(pContext->mCaptureBuf, 0x80, CAPTURE_BUF_SIZE);
131 // pContext: effect engine context
139 int Visualizer_setConfig(VisualizerContext *pContext, effect_config_t *pConfig)
151 pContext->mConfig = *pConfig;
153 Visualizer_reset(pContext);
165 // pContext: effect engine context
173 void Visualizer_getConfig(VisualizerContext *pContext, effect_config_t *pConfig)
175 *pConfig = pContext->mConfig;
185 // pContext: effect engine context
191 int Visualizer_init(VisualizerContext *pContext)
193 pContext->mConfig.inputCfg.accessMode = EFFECT_BUFFER_ACCESS_READ;
194 pContext->mConfig.inputCfg.channels = AUDIO_CHANNEL_OUT_STEREO;
195 pContext->mConfig.inputCfg.format = AUDIO_FORMAT_PCM_16_BIT;
196 pContext->mConfig.inputCfg.samplingRate = 44100;
197 pContext->mConfig.inputCfg.bufferProvider.getBuffer = NULL;
198 pContext->mConfig.inputCfg.bufferProvider.releaseBuffer = NULL;
199 pContext->mConfig.inputCfg.bufferProvider.cookie = NULL;
200 pContext->mConfig.inputCfg.mask = EFFECT_CONFIG_ALL;
201 pContext->mConfig.outputCfg.accessMode = EFFECT_BUFFER_ACCESS_ACCUMULATE;
202 pContext->mConfig.outputCfg.channels = AUDIO_CHANNEL_OUT_STEREO;
203 pContext->mConfig.outputCfg.format = AUDIO_FORMAT_PCM_16_BIT;
204 pContext->mConfig.outputCfg.samplingRate = 44100;
205 pContext->mConfig.outputCfg.bufferProvider.getBuffer = NULL;
206 pContext->mConfig.outputCfg.bufferProvider.releaseBuffer = NULL;
207 pContext->mConfig.outputCfg.bufferProvider.cookie = NULL;
208 pContext->mConfig.outputCfg.mask = EFFECT_CONFIG_ALL;
211 pContext->mCaptureSize = VISUALIZER_CAPTURE_SIZE_MAX;
212 pContext->mScalingMode = VISUALIZER_SCALING_MODE_NORMALIZED;
215 pContext->mChannelCount =
216 audio_channel_count_from_out_mask(pContext->mConfig.inputCfg.channels);
217 pContext->mMeasurementMode = MEASUREMENT_MODE_NONE;
218 pContext->mMeasurementWindowSizeInBuffers = MEASUREMENT_WINDOW_MAX_SIZE_IN_BUFFERS;
219 pContext->mMeasurementBufferIdx = 0;
220 for (uint32_t i=0 ; i<pContext->mMeasurementWindowSizeInBuffers ; i++) {
221 pContext->mPastMeasurements[i].mIsValid = false;
222 pContext->mPastMeasurements[i].mPeakU16 = 0;
223 pContext->mPastMeasurements[i].mRmsSquared = 0;
226 Visualizer_setConfig(pContext, &pContext->mConfig);
249 VisualizerContext *pContext = new VisualizerContext;
251 pContext->mItfe = &gVisualizerInterface;
252 pContext->mState = VISUALIZER_STATE_UNINITIALIZED;
254 ret = Visualizer_init(pContext);
257 delete pContext;
261 *pHandle = (effect_handle_t)pContext;
263 pContext->mState = VISUALIZER_STATE_INITIALIZED;
265 ALOGV("VisualizerLib_Create %p", pContext);
272 VisualizerContext * pContext = (VisualizerContext *)handle;
275 if (pContext == NULL) {
278 pContext->mState = VISUALIZER_STATE_UNINITIALIZED;
279 delete pContext;
314 VisualizerContext * pContext = (VisualizerContext *)self;
316 if (pContext == NULL) {
328 if (pContext->mMeasurementMode & MEASUREMENT_MODE_PEAK_RMS) {
333 for (inIdx = 0 ; inIdx < inBuffer->frameCount * pContext->mChannelCount ; inIdx++) {
342 pContext->mPastMeasurements[pContext->mMeasurementBufferIdx].mPeakU16 = (uint16_t)maxSample;
343 pContext->mPastMeasurements[pContext->mMeasurementBufferIdx].mRmsSquared =
344 rmsSqAcc / (inBuffer->frameCount * pContext->mChannelCount);
345 pContext->mPastMeasurements[pContext->mMeasurementBufferIdx].mIsValid = true;
346 if (++pContext->mMeasurementBufferIdx >= pContext->mMeasurementWindowSizeInBuffers) {
347 pContext->mMeasurementBufferIdx = 0;
354 if (pContext->mScalingMode == VISUALIZER_SCALING_MODE_NORMALIZED) {
375 assert(pContext->mScalingMode == VISUALIZER_SCALING_MODE_AS_PLAYED);
381 uint8_t *buf = pContext->mCaptureBuf;
382 for (inIdx = 0, captIdx = pContext->mCaptureIdx;
396 pContext->mCaptureIdx = captIdx;
398 if (clock_gettime(CLOCK_MONOTONIC, &pContext->mBufferUpdateTime) < 0) {
399 pContext->mBufferUpdateTime.tv_sec = 0;
403 if (pContext->mConfig.outputCfg.accessMode == EFFECT_BUFFER_ACCESS_ACCUMULATE) {
411 if (pContext->mState != VISUALIZER_STATE_ACTIVE) {
420 VisualizerContext * pContext = (VisualizerContext *)self;
422 if (pContext == NULL || pContext->mState == VISUALIZER_STATE_UNINITIALIZED) {
433 *(int *) pReplyData = Visualizer_init(pContext);
440 *(int *) pReplyData = Visualizer_setConfig(pContext,
448 Visualizer_getConfig(pContext, (effect_config_t *)pReplyData);
451 Visualizer_reset(pContext);
457 if (pContext->mState != VISUALIZER_STATE_INITIALIZED) {
460 pContext->mState = VISUALIZER_STATE_ACTIVE;
468 if (pContext->mState != VISUALIZER_STATE_ACTIVE) {
471 pContext->mState = VISUALIZER_STATE_INITIALIZED;
492 ALOGV("get mCaptureSize = %" PRIu32, pContext->mCaptureSize);
493 *((uint32_t *)p->data + 1) = pContext->mCaptureSize;
498 ALOGV("get mScalingMode = %" PRIu32, pContext->mScalingMode);
499 *((uint32_t *)p->data + 1) = pContext->mScalingMode;
504 ALOGV("get mMeasurementMode = %" PRIu32, pContext->mMeasurementMode);
505 *((uint32_t *)p->data + 1) = pContext->mMeasurementMode;
533 pContext->mCaptureSize = captureSize;
538 pContext->mScalingMode = *((uint32_t *)p->data + 1);
539 ALOGV("set mScalingMode = %" PRIu32, pContext->mScalingMode);
546 pContext->mLatency = latency;
550 pContext->mMeasurementMode = *((uint32_t *)p->data + 1);
551 ALOGV("set mMeasurementMode = %" PRIu32, pContext->mMeasurementMode);
564 uint32_t captureSize = pContext->mCaptureSize;
570 if (pContext->mState == VISUALIZER_STATE_ACTIVE) {
571 const uint32_t deltaMs = Visualizer_getDeltaTimeMsFromUpdatedTime(pContext);
575 if ((pContext->mLastCaptureIdx == pContext->mCaptureIdx) &&
576 (pContext->mBufferUpdateTime.tv_sec != 0) &&
579 pContext->mBufferUpdateTime.tv_sec = 0;
582 int32_t latencyMs = pContext->mLatency;
588 + pContext->mConfig.inputCfg.samplingRate * latencyMs / 1000;
597 int32_t capturePoint = pContext->mCaptureIdx - deltaSmpl;
605 pContext->mCaptureBuf + CAPTURE_BUF_SIZE + capturePoint,
612 pContext->mCaptureBuf + capturePoint,
616 pContext->mLastCaptureIdx = pContext->mCaptureIdx;
642 const int32_t delayMs = Visualizer_getDeltaTimeMsFromUpdatedTime(pContext);
645 for (uint32_t i=0 ; i<pContext->mMeasurementWindowSizeInBuffers ; i++) {
646 pContext->mPastMeasurements[i].mIsValid = false;
647 pContext->mPastMeasurements[i].mPeakU16 = 0;
648 pContext->mPastMeasurements[i].mRmsSquared = 0;
650 pContext->mMeasurementBufferIdx = 0;
655 for (uint32_t i=0 ; i < pContext->mMeasurementWindowSizeInBuffers ; i++) {
656 if (pContext->mPastMeasurements[i].mIsValid) {
657 if (pContext->mPastMeasurements[i].mPeakU16 > peakU16) {
658 peakU16 = pContext->mPastMeasurements[i].mPeakU16;
660 sumRmsSquared += pContext->mPastMeasurements[i].mRmsSquared;
696 VisualizerContext * pContext = (VisualizerContext *) self;
698 if (pContext == NULL || pDescriptor == NULL) {