Home | History | Annotate | Download | only in Reverb

Lines Matching refs:pContext

176 int  Reverb_init            (ReverbContext *pContext);
177 void Reverb_free (ReverbContext *pContext);
178 int Reverb_configure (ReverbContext *pContext, effect_config_t *pConfig);
179 int Reverb_setParameter (ReverbContext *pContext, void *pParam, void *pValue);
180 int Reverb_getParameter (ReverbContext *pContext,
184 int Reverb_LoadPreset (ReverbContext *pContext);
241 ReverbContext *pContext = new ReverbContext;
243 pContext->itfe = &gReverbInterface;
244 pContext->hInstance = NULL;
246 pContext->auxiliary = false;
248 pContext->auxiliary = true;
254 pContext->preset = false;
256 pContext->preset = true;
258 pContext->curPreset = REVERB_PRESET_LAST + 1;
259 pContext->nextPreset = REVERB_DEFAULT_PRESET;
266 ret = Reverb_init(pContext);
270 delete pContext;
274 *pHandle = (effect_handle_t)pContext;
277 pContext->PcmInPtr = NULL;
278 pContext->PcmOutPtr = NULL;
280 pContext->PcmInPtr = fopen("/data/tmp/reverb_pcm_in.pcm", "w");
281 pContext->PcmOutPtr = fopen("/data/tmp/reverb_pcm_out.pcm", "w");
283 if((pContext->PcmInPtr == NULL)||
284 (pContext->PcmOutPtr == NULL)){
291 pContext->InFrames32 = (LVM_INT32 *)malloc(LVREV_MAX_FRAME_SIZE * sizeof(LVM_INT32) * 2);
292 pContext->OutFrames32 = (LVM_INT32 *)malloc(LVREV_MAX_FRAME_SIZE * sizeof(LVM_INT32) * 2);
294 LOGV("\tEffectCreate %p, size %d", pContext, sizeof(ReverbContext));
300 ReverbContext * pContext = (ReverbContext *)handle;
303 if (pContext == NULL){
309 fclose(pContext->PcmInPtr);
310 fclose(pContext->PcmOutPtr);
312 free(pContext->InFrames32);
313 free(pContext->OutFrames32);
314 Reverb_free(pContext);
315 delete pContext;
425 // pContext: effect engine context
436 ReverbContext *pContext){
444 if (pContext->config.inputCfg.channels == AUDIO_CHANNEL_OUT_STEREO) {
446 } else if (pContext->config.inputCfg.channels != AUDIO_CHANNEL_OUT_MONO) {
451 OutFrames16 = (LVM_INT16 *)pContext->OutFrames32;
454 if((pContext->InFrames32 == NULL)||(pContext->OutFrames32 == NULL)){
460 fwrite(pIn, frameCount*sizeof(LVM_INT16)*samplesPerFrame, 1, pContext->PcmInPtr);
461 fflush(pContext->PcmInPtr);
464 if (pContext->preset && pContext->nextPreset != pContext->curPreset) {
465 Reverb_LoadPreset(pContext);
471 if (pContext->auxiliary) {
473 pContext->InFrames32[i] = (LVM_INT32)pIn[i]<<8;
478 pContext->InFrames32[2*i] = (pIn[2*i] * REVERB_SEND_LEVEL) >> 4; // <<8 + >>12
479 pContext
483 if (pContext->preset && pContext->curPreset == REVERB_PRESET_NONE) {
484 memset(pContext->OutFrames32, 0, frameCount * sizeof(LVM_INT32) * 2); //always stereo here
486 if(pContext->bEnabled == LVM_FALSE && pContext->SamplesToExitCount > 0) {
487 memset(pContext->InFrames32,0,frameCount * sizeof(LVM_INT32) * samplesPerFrame);
492 LvmStatus = LVREV_Process(pContext->hInstance, /* Instance handle */
493 pContext->InFrames32, /* Input buffer */
494 pContext->OutFrames32, /* Output buffer */
502 if (pContext->auxiliary) {
504 OutFrames16[i] = clamp16(pContext->OutFrames32[i]>>8);
508 OutFrames16[i] = clamp16((pContext->OutFrames32[i]>>8) + (LVM_INT32)pIn[i]);
512 if ((pContext->leftVolume != pContext->prevLeftVolume ||
513 pContext->rightVolume != pContext->prevRightVolume) &&
514 pContext->volumeMode == REVERB_VOLUME_RAMP) {
515 LVM_INT32 vl = (LVM_INT32)pContext->prevLeftVolume << 16;
516 LVM_INT32 incl = (((LVM_INT32)pContext->leftVolume << 16) - vl) / frameCount;
517 LVM_INT32 vr = (LVM_INT32)pContext->prevRightVolume << 16;
518 LVM_INT32 incr = (((LVM_INT32)pContext->rightVolume << 16) - vr) / frameCount;
530 pContext->prevLeftVolume = pContext->leftVolume;
531 pContext->prevRightVolume = pContext->rightVolume;
532 } else if (pContext->volumeMode != REVERB_VOLUME_OFF) {
533 if (pContext->leftVolume != REVERB_UNIT_VOLUME ||
534 pContext->rightVolume != REVERB_UNIT_VOLUME) {
537 clamp16((LVM_INT32)(pContext->leftVolume * OutFrames16[2*i]) >> 12);
539 clamp16((LVM_INT32)(pContext->rightVolume * OutFrames16[2*i+1]) >> 12);
542 pContext->prevLeftVolume = pContext->leftVolume;
543 pContext->prevRightVolume = pContext->rightVolume;
544 pContext->volumeMode = REVERB_VOLUME_RAMP;
549 fwrite(OutFrames16, frameCount*sizeof(LVM_INT16)*2, 1, pContext->PcmOutPtr);
550 fflush(pContext->PcmOutPtr);
554 if (pContext->config.outputCfg.accessMode == EFFECT_BUFFER_ACCESS_ACCUMULATE){
573 // pContext: effect engine context
579 void Reverb_free(ReverbContext *pContext){
586 LvmStatus = LVREV_GetMemoryTable(pContext->hInstance,
617 // pContext: effect engine context
625 int Reverb_configure(ReverbContext *pContext, effect_config_t *pConfig){
629 CHECK_ARG(pContext != NULL);
634 CHECK_ARG((pContext->auxiliary && pConfig->inputCfg.channels == AUDIO_CHANNEL_OUT_MONO) ||
635 ((!pContext->auxiliary) && pConfig->inputCfg.channels == AUDIO_CHANNEL_OUT_STEREO));
646 memcpy(&pContext->config, pConfig, sizeof(effect_config_t));
673 if(pContext->SampleRate != SampleRate){
681 LvmStatus = LVREV_GetControlParameters(pContext->hInstance,
687 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
707 // pContext: effect engine context
713 int Reverb_init(ReverbContext *pContext){
718 CHECK_ARG(pContext != NULL);
720 if (pContext->hInstance != NULL){
721 Reverb_free(pContext);
724 pContext->config.inputCfg.accessMode = EFFECT_BUFFER_ACCESS_READ;
725 if (pContext->auxiliary) {
726 pContext->config.inputCfg.channels = AUDIO_CHANNEL_OUT_MONO;
728 pContext->config.inputCfg.channels = AUDIO_CHANNEL_OUT_STEREO;
731 pContext->config.inputCfg.format = AUDIO_FORMAT_PCM_16_BIT;
732 pContext->config.inputCfg.samplingRate = 44100;
733 pContext->config.inputCfg.bufferProvider.getBuffer = NULL;
734 pContext->config.inputCfg.bufferProvider.releaseBuffer = NULL;
735 pContext->config.inputCfg.bufferProvider.cookie = NULL;
736 pContext->config.inputCfg.mask = EFFECT_CONFIG_ALL;
737 pContext->config.outputCfg.accessMode = EFFECT_BUFFER_ACCESS_ACCUMULATE;
738 pContext->config.outputCfg.channels = AUDIO_CHANNEL_OUT_STEREO;
739 pContext->config.outputCfg.format = AUDIO_FORMAT_PCM_16_BIT;
740 pContext->config.outputCfg.samplingRate = 44100;
741 pContext->config.outputCfg.bufferProvider.getBuffer = NULL;
742 pContext->config.outputCfg.bufferProvider.releaseBuffer = NULL;
743 pContext->config.outputCfg.bufferProvider.cookie = NULL;
744 pContext->config.outputCfg.mask = EFFECT_CONFIG_ALL;
746 pContext->leftVolume = REVERB_UNIT_VOLUME;
747 pContext->rightVolume = REVERB_UNIT_VOLUME;
748 pContext->prevLeftVolume = REVERB_UNIT_VOLUME;
749 pContext->prevRightVolume = REVERB_UNIT_VOLUME;
750 pContext->volumeMode = REVERB_VOLUME_FLAT;
809 pContext->hInstance = LVM_NULL;
812 LvmStatus = LVREV_GetInstanceHandle(&pContext->hInstance,
826 if(pContext->config.inputCfg.channels == AUDIO_CHANNEL_OUT_MONO){
841 pContext->SamplesToExitCount = (params.T60 * pContext->config.inputCfg.samplingRate)/1000;
847 pContext->SavedRoomLevel = -6000;
848 pContext->SavedHfLevel = 0;
849 pContext->bEnabled = LVM_FALSE;
850 pContext->SavedDecayTime = params.T60;
851 pContext->SavedDecayHfRatio = params.Damping*20;
852 pContext->SavedDensity = params.RoomSize*10;
853 pContext->SavedDiffusion = params.Density*10;
854 pContext->SavedReverbLevel = -6000;
857 LvmStatus = LVREV_SetControlParameters(pContext->hInstance,
957 // pContext: effect engine context
962 void ReverbSetRoomHfLevel(ReverbContext *pContext, int16_t level){
969 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
977 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
980 pContext->SavedHfLevel = level;
981 //LOGV("\tReverbSetHfRoomLevel end.. saving %d", pContext->SavedHfLevel);
992 // pContext: effect engine context
996 int16_t ReverbGetRoomHfLevel(ReverbContext *pContext){
998 //LOGV("\tReverbGetRoomHfLevel start, saved level is %d", pContext->SavedHfLevel);
1004 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1009 level = ReverbConvertHfLevel(pContext->SavedHfLevel);
1011 //LOGV("\tReverbGetRoomHfLevel() ActiveParams.LPFL %d, pContext->SavedHfLevel: %d, "
1012 // "converted level: %d\n", ActiveParams.LPF, pContext->SavedHfLevel, level);
1020 return pContext->SavedHfLevel;
1030 // pContext: effect engine context
1035 void ReverbSetReverbLevel(ReverbContext *pContext, int16_t level){
1043 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1049 CombinedLevel = (level + pContext->SavedRoomLevel)-LVREV_MAX_REVERB_LEVEL;
1051 // CombinedLevel, level, pContext->SavedRoomLevel);
1058 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1062 pContext->SavedReverbLevel = level;
1063 //LOGV("\tReverbSetReverbLevel end pContext->SavedReverbLevel is %d\n\n",
1064 // pContext->SavedReverbLevel);
1075 // pContext: effect engine context
1079 int16_t ReverbGetReverbLevel(ReverbContext *pContext){
1088 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1094 CombinedLevel = (pContext->SavedReverbLevel + pContext->SavedRoomLevel)-LVREV_MAX_REVERB_LEVEL;
1097 //CombinedLevel, pContext->SavedReverbLevel, pContext->SavedRoomLevel);
1100 //LOGV("\tReverbGetReverbLevel(): ActiveParams.Level: %d, pContext->SavedReverbLevel: %d, "
1101 //"pContext->SavedRoomLevel: %d, CombinedLevel: %d, converted level: %d\n",
1102 //ActiveParams.Level, pContext->SavedReverbLevel,pContext->SavedRoomLevel, CombinedLevel,level);
1111 return pContext->SavedReverbLevel;
1121 // pContext: effect engine context
1126 void ReverbSetRoomLevel(ReverbContext *pContext, int16_t level){
1134 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1140 CombinedLevel = (level + pContext->SavedReverbLevel)-LVREV_MAX_REVERB_LEVEL;
1144 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1148 pContext->SavedRoomLevel = level;
1160 // pContext: effect engine context
1164 int16_t ReverbGetRoomLevel(ReverbContext *pContext){
1173 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1179 CombinedLevel = (pContext->SavedRoomLevel + pContext->SavedReverbLevel-LVREV_MAX_REVERB_LEVEL);
1182 //LOGV("\tReverbGetRoomLevel, Level = %d, pContext->SavedRoomLevel = %d, "
1183 // "pContext->SavedReverbLevel = %d, CombinedLevel = %d, level = %d",
1184 // ActiveParams.Level, pContext->SavedRoomLevel,
1185 // pContext->SavedReverbLevel, CombinedLevel, level);
1193 return pContext->SavedRoomLevel;
1203 // pContext: effect engine context
1208 void ReverbSetDecayTime(ReverbContext *pContext, uint32_t time){
1215 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1228 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1232 pContext->SamplesToExitCount = (ActiveParams.T60 * pContext->config.inputCfg.samplingRate)/1000;
1233 //LOGV("\tReverbSetDecayTime() just Set SamplesToExitCount-> %d\n",pContext->SamplesToExitCount);
1234 pContext->SavedDecayTime = (int16_t)time;
1246 // pContext: effect engine context
1250 uint32_t ReverbGetDecayTime(ReverbContext *pContext){
1257 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1262 if(ActiveParams.T60 != pContext->SavedDecayTime){
1265 ActiveParams.T60, pContext->SavedDecayTime);
1279 // pContext: effect engine context
1284 void ReverbSetDecayHfRatio(ReverbContext *pContext, int16_t ratio){
1291 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1299 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1303 pContext->SavedDecayHfRatio = ratio;
1315 // pContext: effect engine context
1319 int32_t ReverbGetDecayHfRatio(ReverbContext *pContext){
1326 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1331 if(ActiveParams.Damping != (LVM_INT16)(pContext->SavedDecayHfRatio / 20)){
1333 ActiveParams.Damping, pContext->SavedDecayHfRatio);
1337 return pContext->SavedDecayHfRatio;
1347 // pContext: effect engine context
1352 void ReverbSetDiffusion(ReverbContext *pContext, int16_t level){
1359 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1367 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1371 pContext->SavedDiffusion = level;
1383 // pContext: effect engine context
1387 int32_t ReverbGetDiffusion(ReverbContext *pContext){
1395 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1400 Temp = (LVM_INT16)(pContext->SavedDiffusion/10);
1407 return pContext->SavedDiffusion;
1417 // pContext: effect engine context
1422 void ReverbSetDensity(ReverbContext *pContext, int16_t level){
1429 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1437 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1441 pContext->SavedDensity = level;
1453 // pContext: effect engine context
1457 int32_t ReverbGetDensity(ReverbContext *pContext){
1464 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1470 Temp = (LVM_INT16)(((pContext->SavedDensity * 99) / 1000) + 1);
1477 return pContext->SavedDensity;
1487 // pContext - handle to instance data
1494 int Reverb_LoadPreset(ReverbContext *pContext)
1498 pContext->curPreset = pContext->nextPreset;
1500 if (pContext->curPreset != REVERB_PRESET_NONE) {
1501 const t_reverb_settings *preset = &sReverbPresets[pContext->curPreset];
1502 ReverbSetRoomLevel(pContext, preset->roomLevel);
1503 ReverbSetRoomHfLevel(pContext, preset->roomHFLevel);
1504 ReverbSetDecayTime(pContext, preset->decayTime);
1505 ReverbSetDecayHfRatio(pContext, preset->decayHFRatio);
1508 ReverbSetReverbLevel(pContext, preset->reverbLevel);
1510 ReverbSetDiffusion(pContext, preset->diffusion);
1511 ReverbSetDensity(pContext, preset->density);
1525 // pContext - handle to instance data
1539 int Reverb_getParameter(ReverbContext *pContext,
1550 if (pContext->preset) {
1555 *(uint16_t *)pValue = pContext->nextPreset;
1556 LOGV("get REVERB_PARAM_PRESET, preset %d", pContext->nextPreset);
1648 pProperties->roomLevel = ReverbGetRoomLevel(pContext);
1649 pProperties->roomHFLevel = ReverbGetRoomHfLevel(pContext);
1650 pProperties->decayTime = ReverbGetDecayTime(pContext);
1651 pProperties->decayHFRatio = ReverbGetDecayHfRatio(pContext);
1655 pProperties->reverbLevel = ReverbGetReverbLevel(pContext);
1656 pProperties->diffusion = ReverbGetDiffusion(pContext);
1657 pProperties->density = ReverbGetDensity(pContext);
1682 *(int16_t *)pValue = ReverbGetRoomLevel(pContext);
1688 *(int16_t *)pValue = ReverbGetRoomHfLevel(pContext);
1694 *(uint32_t *)pValue = ReverbGetDecayTime(pContext);
1700 *(int16_t *)pValue = ReverbGetDecayHfRatio(pContext);
1706 *(int16_t *)pValue = ReverbGetReverbLevel(pContext);
1712 *(int16_t *)pValue = ReverbGetDiffusion(pContext);
1719 *(int16_t *)pValue = ReverbGetDensity(pContext);
1748 // pContext - handle to instance data
1756 int Reverb_setParameter (ReverbContext *pContext, void *pParam, void *pValue){
1766 if (pContext->preset) {
1776 pContext->nextPreset = preset;
1784 ReverbSetRoomLevel(pContext, pProperties->roomLevel);
1785 ReverbSetRoomHfLevel(pContext, pProperties->roomHFLevel);
1786 ReverbSetDecayTime(pContext, pProperties->decayTime);
1787 ReverbSetDecayHfRatio(pContext, pProperties->decayHFRatio);
1788 ReverbSetReverbLevel(pContext, pProperties->reverbLevel);
1789 ReverbSetDiffusion(pContext, pProperties->diffusion);
1790 ReverbSetDensity(pContext, pProperties->density);
1796 ReverbSetRoomLevel(pContext, level);
1803 ReverbSetRoomHfLevel(pContext, level);
1810 ReverbSetDecayTime(pContext, time);
1817 ReverbSetDecayHfRatio(pContext, ratio);
1824 ReverbSetReverbLevel(pContext, level);
1831 ReverbSetDiffusion(pContext, ratio);
1838 ReverbSetDensity(pContext, ratio);
1863 android::ReverbContext * pContext = (android::ReverbContext *) self;
1866 if (pContext == NULL){
1867 LOGV("\tLVM_ERROR : Reverb_process() ERROR pContext == NULL");
1881 pContext);
1883 if (pContext->bEnabled == LVM_FALSE) {
1884 if (pContext->SamplesToExitCount > 0) {
1885 pContext->SamplesToExitCount -= outBuffer->frameCount;
1901 android::ReverbContext * pContext = (android::ReverbContext *) self;
1907 if (pContext == NULL){
1908 LOGV("\tLVM_ERROR : Reverb_command ERROR pContext == NULL");
1938 *(int *) pReplyData = Reverb_configure(pContext, (effect_config_t *) pCmdData);
1944 Reverb_configure(pContext, &pContext->config);
1966 p->status = android::Reverb_getParameter(pContext,
2011 *(int *)pReplyData = android::Reverb_setParameter(pContext,
2025 if(pContext->bEnabled == LVM_TRUE){
2031 pContext->bEnabled = LVM_TRUE;
2033 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
2035 pContext->SamplesToExitCount =
2036 (ActiveParams.T60 * pContext->config.inputCfg.samplingRate)/1000;
2038 pContext
2039 //LOGV("\tEFFECT_CMD_ENABLE SamplesToExitCount = %d", pContext->SamplesToExitCount);
2050 if(pContext->bEnabled == LVM_FALSE){
2056 pContext->bEnabled = LVM_FALSE;
2069 pContext->leftVolume = (LVM_INT16)((*(uint32_t *)pCmdData + (1 << 11)) >> 12);
2070 pContext->rightVolume = (LVM_INT16)((*((uint32_t *)pCmdData + 1) + (1 << 11)) >> 12);
2073 if (pContext->volumeMode == android::REVERB_VOLUME_OFF) {
2075 pContext->volumeMode = android::REVERB_VOLUME_FLAT;
2078 pContext->leftVolume = REVERB_UNIT_VOLUME;
2079 pContext->rightVolume = REVERB_UNIT_VOLUME;
2080 pContext->volumeMode = android::REVERB_VOLUME_OFF;
2083 pContext->leftVolume, pContext->rightVolume, pContext->volumeMode);
2106 android::ReverbContext * pContext = (android::ReverbContext *)self;
2109 if (pContext == NULL || pDescriptor == NULL) {
2114 if (pContext->auxiliary) {
2115 if (pContext->preset) {
2121 if (pContext->preset) {