Home | History | Annotate | Download | only in Reverb

Lines Matching refs:pContext

187 int  Reverb_init            (ReverbContext *pContext);
188 void Reverb_free (ReverbContext *pContext);
189 int Reverb_setConfig (ReverbContext *pContext, effect_config_t *pConfig);
190 void Reverb_getConfig (ReverbContext *pContext, effect_config_t *pConfig);
191 int Reverb_setParameter (ReverbContext *pContext, void *pParam, void *pValue, int vsize);
192 int Reverb_getParameter (ReverbContext *pContext,
196 int Reverb_LoadPreset (ReverbContext *pContext);
230 ReverbContext *pContext = new ReverbContext;
232 pContext->itfe = &gReverbInterface;
233 pContext->hInstance = NULL;
235 pContext->auxiliary = false;
237 pContext->auxiliary = true;
243 pContext->preset = false;
245 pContext->preset = true;
247 pContext->curPreset = REVERB_PRESET_LAST + 1;
248 pContext->nextPreset = REVERB_DEFAULT_PRESET;
255 ret = Reverb_init(pContext);
259 delete pContext;
263 *pHandle = (effect_handle_t)pContext;
266 pContext->PcmInPtr = NULL;
267 pContext->PcmOutPtr = NULL;
269 pContext->PcmInPtr = fopen("/data/tmp/reverb_pcm_in.pcm", "w");
270 pContext->PcmOutPtr = fopen("/data/tmp/reverb_pcm_out.pcm", "w");
272 if((pContext->PcmInPtr == NULL)||
273 (pContext->PcmOutPtr == NULL)){
281 pContext->bufferSizeIn = LVREV_MAX_FRAME_SIZE * sizeof(float) * 2;
282 pContext->bufferSizeOut = pContext->bufferSizeIn;
284 pContext->bufferSizeIn = LVREV_MAX_FRAME_SIZE * sizeof(LVM_INT32) * 2;
285 pContext->bufferSizeOut = pContext->bufferSizeIn;
287 pContext->InFrames32 = (LVM_INT32 *)malloc(pContext->bufferSizeIn);
288 pContext->OutFrames32 = (LVM_INT32 *)malloc(pContext->bufferSizeOut);
290 ALOGV("\tEffectCreate %p, size %zu", pContext, sizeof(ReverbContext));
296 ReverbContext * pContext = (ReverbContext *)handle;
299 if (pContext == NULL){
305 fclose(pContext->PcmInPtr);
306 fclose(pContext->PcmOutPtr);
308 free(pContext->InFrames32);
309 free(pContext->OutFrames32);
310 pContext->bufferSizeIn = 0;
311 pContext->bufferSizeOut = 0;
312 Reverb_free(pContext);
313 delete pContext;
465 // pContext: effect engine context
476 ReverbContext *pContext){
487 if (pContext->InFrames32 == NULL ||
488 pContext->bufferSizeIn < frameCount * sizeof(float) * 2) {
489 if (pContext->InFrames32 != NULL) {
490 free(pContext->InFrames32);
492 pContext->bufferSizeIn = frameCount * sizeof(float) * 2;
493 pContextpContext->bufferSizeIn);
495 if (pContext->OutFrames32 == NULL ||
496 pContext->bufferSizeOut < frameCount * sizeof(float) * 2) {
497 if (pContext->OutFrames32 != NULL) {
498 free(pContext->OutFrames32);
500 pContext->bufferSizeOut = frameCount * sizeof(float) * 2;
501 pContext->OutFrames32 = (LVM_INT32 *)malloc(pContext->bufferSizeOut);
503 pInputBuff = (float *)pContext->InFrames32;
504 pOutputBuff = (float *)pContext->OutFrames32;
507 if (pContext->config.inputCfg.channels == AUDIO_CHANNEL_OUT_STEREO) {
509 } else if (pContext->config.inputCfg.channels != AUDIO_CHANNEL_OUT_MONO) {
514 OutFrames16 = (LVM_INT16 *)pContext->OutFrames32;
517 if((pContext->InFrames32 == NULL)||(pContext->OutFrames32 == NULL)){
523 fwrite(pIn, frameCount*sizeof(LVM_INT16)*samplesPerFrame, 1, pContext->PcmInPtr);
524 fflush(pContext->PcmInPtr);
527 if (pContext->preset && pContext->nextPreset != pContext->curPreset) {
528 Reverb_LoadPreset(pContext);
532 if (pContext->auxiliary) {
537 pContext->InFrames32[i] = (LVM_INT32)pIn[i]<<8;
544 pContext->InFrames32[2*i] = (pIn[2*i] * REVERB_SEND_LEVEL) >> 4; // <<8 + >>12
545 pContext->InFrames32[2*i+1] = (pIn[2*i+1] * REVERB_SEND_LEVEL) >> 4; // <<8 + >>12
553 if (pContext->preset && pContext->curPreset == REVERB_PRESET_NONE) {
557 memset(pContext->OutFrames32, 0, frameCount * sizeof(LVM_INT32) * 2); //always stereo here
560 if(pContext->bEnabled == LVM_FALSE && pContext->SamplesToExitCount > 0) {
564 memset(pContext->InFrames32,0,frameCount * sizeof(LVM_INT32) * samplesPerFrame);
571 LvmStatus = LVREV_Process(pContext->hInstance, /* Instance handle */
576 LvmStatus = LVREV_Process(pContext->hInstance, /* Instance handle */
577 pContext->InFrames32, /* Input buffer */
578 pContext->OutFrames32, /* Output buffer */
587 if (pContext->auxiliary) {
592 OutFrames16[i] = clamp16(pContext->OutFrames32[i]>>8);
606 OutFrames16[i] = clamp16((pContext->OutFrames32[i]>>8) + (LVM_INT32)pIn[i]);
610 if ((pContext->leftVolume != pContext->prevLeftVolume ||
611 pContext->rightVolume != pContext->prevRightVolume) &&
612 pContext->volumeMode == REVERB_VOLUME_RAMP) {
613 LVM_INT32 vl = (LVM_INT32)pContext->prevLeftVolume << 16;
614 LVM_INT32 incl = (((LVM_INT32)pContext->leftVolume << 16) - vl) / frameCount;
615 LVM_INT32 vr = (LVM_INT32)pContext->prevRightVolume << 16;
616 LVM_INT32 incr = (((LVM_INT32)pContext->rightVolume << 16) - vr) / frameCount;
628 pContext->prevLeftVolume = pContext->leftVolume;
629 pContext->prevRightVolume = pContext->rightVolume;
630 } else if (pContext->volumeMode != REVERB_VOLUME_OFF) {
631 if (pContext->leftVolume != REVERB_UNIT_VOLUME ||
632 pContext->rightVolume != REVERB_UNIT_VOLUME) {
635 clamp16((LVM_INT32)(pContext->leftVolume * OutFrames16[2*i]) >> 12);
637 clamp16((LVM_INT32)(pContext->rightVolume * OutFrames16[2*i+1]) >> 12);
640 pContext->prevLeftVolume = pContext->leftVolume;
641 pContext->prevRightVolume = pContext->rightVolume;
642 pContext->volumeMode = REVERB_VOLUME_RAMP;
647 fwrite(OutFrames16, frameCount*sizeof(LVM_INT16)*2, 1, pContext->PcmOutPtr);
648 fflush(pContext->PcmOutPtr);
652 if (pContext->config.outputCfg.accessMode == EFFECT_BUFFER_ACCESS_ACCUMULATE){
671 // pContext: effect engine context
677 void Reverb_free(ReverbContext *pContext){
683 LvmStatus = LVREV_GetMemoryTable(pContext->hInstance,
714 // pContext: effect engine context
722 int Reverb_setConfig(ReverbContext *pContext, effect_config_t *pConfig){
726 CHECK_ARG(pContext != NULL);
731 CHECK_ARG((pContext->auxiliary && pConfig->inputCfg.channels == AUDIO_CHANNEL_OUT_MONO) ||
732 ((!pContext->auxiliary) && pConfig->inputCfg.channels == AUDIO_CHANNEL_OUT_STEREO));
739 pContext->config = *pConfig;
774 if (pContext->SampleRate != SampleRate) {
782 LvmStatus = LVREV_GetControlParameters(pContext->hInstance,
790 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
795 pContext->SampleRate = SampleRate;
810 // pContext: effect engine context
818 void Reverb_getConfig(ReverbContext *pContext, effect_config_t *pConfig)
820 *pConfig = pContext->config;
829 // pContext: effect engine context
835 int Reverb_init(ReverbContext *pContext){
838 CHECK_ARG(pContext != NULL);
840 if (pContext->hInstance != NULL){
841 Reverb_free(pContext);
844 pContext->config.inputCfg.accessMode = EFFECT_BUFFER_ACCESS_READ;
845 if (pContext->auxiliary) {
846 pContext->config.inputCfg.channels = AUDIO_CHANNEL_OUT_MONO;
848 pContext->config.inputCfg.channels = AUDIO_CHANNEL_OUT_STEREO;
851 pContext->config.inputCfg.format = AUDIO_FORMAT_PCM_16_BIT;
852 pContext->config.inputCfg.samplingRate = 44100;
853 pContext->config.inputCfg.bufferProvider.getBuffer = NULL;
854 pContext->config.inputCfg.bufferProvider.releaseBuffer = NULL;
855 pContext->config.inputCfg.bufferProvider.cookie = NULL;
856 pContext->config.inputCfg.mask = EFFECT_CONFIG_ALL;
857 pContext->config.outputCfg.accessMode = EFFECT_BUFFER_ACCESS_ACCUMULATE;
858 pContext->config.outputCfg.channels = AUDIO_CHANNEL_OUT_STEREO;
859 pContext->config.outputCfg.format = AUDIO_FORMAT_PCM_16_BIT;
860 pContext->config.outputCfg.samplingRate = 44100;
861 pContext->config.outputCfg.bufferProvider.getBuffer = NULL;
862 pContext->config.outputCfg.bufferProvider.releaseBuffer = NULL;
863 pContext->config.outputCfg.bufferProvider.cookie = NULL;
864 pContext->config.outputCfg.mask = EFFECT_CONFIG_ALL;
866 pContext->leftVolume = REVERB_UNIT_VOLUME;
867 pContext->rightVolume = REVERB_UNIT_VOLUME;
868 pContext->prevLeftVolume = REVERB_UNIT_VOLUME;
869 pContext->prevRightVolume = REVERB_UNIT_VOLUME;
870 pContext->volumeMode = REVERB_VOLUME_FLAT;
930 pContext->hInstance = LVM_NULL;
933 LvmStatus = LVREV_GetInstanceHandle(&pContext->hInstance,
946 pContext->SampleRate = LVM_FS_44100;
948 if(pContext->config.inputCfg.channels == AUDIO_CHANNEL_OUT_MONO){
963 pContext->SamplesToExitCount = (params.T60 * pContext->config.inputCfg.samplingRate)/1000;
969 pContext->SavedRoomLevel = -6000;
970 pContext->SavedHfLevel = 0;
971 pContext->bEnabled = LVM_FALSE;
972 pContext->SavedDecayTime = params.T60;
973 pContext->SavedDecayHfRatio = params.Damping*20;
974 pContext->SavedDensity = params.RoomSize*10;
975 pContext->SavedDiffusion = params.Density*10;
976 pContext->SavedReverbLevel = -6000;
979 LvmStatus = LVREV_SetControlParameters(pContext->hInstance,
1079 // pContext: effect engine context
1084 void ReverbSetRoomHfLevel(ReverbContext *pContext, int16_t level){
1091 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1099 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1102 pContext->SavedHfLevel = level;
1103 //ALOGV("\tReverbSetHfRoomLevel end.. saving %d", pContext->SavedHfLevel);
1114 // pContext: effect engine context
1118 int16_t ReverbGetRoomHfLevel(ReverbContext *pContext){
1120 //ALOGV("\tReverbGetRoomHfLevel start, saved level is %d", pContext->SavedHfLevel);
1126 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1131 level = ReverbConvertHfLevel(pContext->SavedHfLevel);
1133 //ALOGV("\tReverbGetRoomHfLevel() ActiveParams.LPFL %d, pContext->SavedHfLevel: %d, "
1134 // "converted level: %d\n", ActiveParams.LPF, pContext->SavedHfLevel, level);
1142 return pContext->SavedHfLevel;
1152 // pContext: effect engine context
1157 void ReverbSetReverbLevel(ReverbContext *pContext, int16_t level){
1165 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1171 CombinedLevel = (level + pContext->SavedRoomLevel)-LVREV_MAX_REVERB_LEVEL;
1173 // CombinedLevel, level, pContext->SavedRoomLevel);
1180 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1184 pContext->SavedReverbLevel = level;
1185 //ALOGV("\tReverbSetReverbLevel end pContext->SavedReverbLevel is %d\n\n",
1186 // pContext->SavedReverbLevel);
1197 // pContext: effect engine context
1201 int16_t ReverbGetReverbLevel(ReverbContext *pContext){
1210 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1216 CombinedLevel = (pContext->SavedReverbLevel + pContext->SavedRoomLevel)-LVREV_MAX_REVERB_LEVEL;
1219 //CombinedLevel, pContext->SavedReverbLevel, pContext->SavedRoomLevel);
1222 //ALOGV("\tReverbGetReverbLevel(): ActiveParams.Level: %d, pContext->SavedReverbLevel: %d, "
1223 //"pContext->SavedRoomLevel: %d, CombinedLevel: %d, converted level: %d\n",
1224 //ActiveParams.Level, pContext->SavedReverbLevel,pContext->SavedRoomLevel, CombinedLevel,level);
1233 return pContext->SavedReverbLevel;
1243 // pContext: effect engine context
1248 void ReverbSetRoomLevel(ReverbContext *pContext, int16_t level){
1256 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1262 CombinedLevel = (level + pContext->SavedReverbLevel)-LVREV_MAX_REVERB_LEVEL;
1266 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1270 pContext->SavedRoomLevel = level;
1282 // pContext: effect engine context
1286 int16_t ReverbGetRoomLevel(ReverbContext *pContext){
1295 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1301 CombinedLevel = (pContext->SavedRoomLevel + pContext->SavedReverbLevel-LVREV_MAX_REVERB_LEVEL);
1304 //ALOGV("\tReverbGetRoomLevel, Level = %d, pContext->SavedRoomLevel = %d, "
1305 // "pContext->SavedReverbLevel = %d, CombinedLevel = %d, level = %d",
1306 // ActiveParams.Level, pContext->SavedRoomLevel,
1307 // pContext->SavedReverbLevel, CombinedLevel, level);
1315 return pContext->SavedRoomLevel;
1325 // pContext: effect engine context
1330 void ReverbSetDecayTime(ReverbContext *pContext, uint32_t time){
1337 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1350 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1354 pContext->SamplesToExitCount = (ActiveParams.T60 * pContext->config.inputCfg.samplingRate)/1000;
1355 //ALOGV("\tReverbSetDecayTime() just Set SamplesToExitCount-> %d\n",pContext->SamplesToExitCount);
1356 pContext->SavedDecayTime = (int16_t)time;
1368 // pContext: effect engine context
1372 uint32_t ReverbGetDecayTime(ReverbContext *pContext){
1379 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1384 if(ActiveParams.T60 != pContext->SavedDecayTime){
1387 ActiveParams.T60, pContext->SavedDecayTime);
1401 // pContext: effect engine context
1406 void ReverbSetDecayHfRatio(ReverbContext *pContext, int16_t ratio){
1413 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1421 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1425 pContext->SavedDecayHfRatio = ratio;
1437 // pContext: effect engine context
1441 int32_t ReverbGetDecayHfRatio(ReverbContext *pContext){
1448 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1453 if(ActiveParams.Damping != (LVM_INT16)(pContext->SavedDecayHfRatio / 20)){
1455 ActiveParams.Damping, pContext->SavedDecayHfRatio);
1459 return pContext->SavedDecayHfRatio;
1469 // pContext: effect engine context
1474 void ReverbSetDiffusion(ReverbContext *pContext, int16_t level){
1481 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1489 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1493 pContext->SavedDiffusion = level;
1505 // pContext: effect engine context
1509 int32_t ReverbGetDiffusion(ReverbContext *pContext){
1517 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1522 Temp = (LVM_INT16)(pContext->SavedDiffusion/10);
1529 return pContext->SavedDiffusion;
1539 // pContext: effect engine context
1544 void ReverbSetDensity(ReverbContext *pContext, int16_t level){
1551 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1559 LvmStatus = LVREV_SetControlParameters(pContext->hInstance, &ActiveParams);
1563 pContext->SavedDensity = level;
1575 // pContext: effect engine context
1579 int32_t ReverbGetDensity(ReverbContext *pContext){
1586 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
1592 Temp = (LVM_INT16)(((pContext->SavedDensity * 99) / 1000) + 1);
1599 return pContext->SavedDensity;
1609 // pContext - handle to instance data
1616 int Reverb_LoadPreset(ReverbContext *pContext)
1620 pContext->curPreset = pContext->nextPreset;
1622 if (pContext->curPreset != REVERB_PRESET_NONE) {
1623 const t_reverb_settings *preset = &sReverbPresets[pContext->curPreset];
1624 ReverbSetRoomLevel(pContext, preset->roomLevel);
1625 ReverbSetRoomHfLevel(pContext, preset->roomHFLevel);
1626 ReverbSetDecayTime(pContext, preset->decayTime);
1627 ReverbSetDecayHfRatio(pContext, preset->decayHFRatio);
1630 ReverbSetReverbLevel(pContext, preset->reverbLevel);
1632 ReverbSetDiffusion(pContext, preset->diffusion);
1633 ReverbSetDensity(pContext, preset->density);
1647 // pContext - handle to instance data
1661 int Reverb_getParameter(ReverbContext *pContext,
1671 if (pContext->preset) {
1676 *(uint16_t *)pValue = pContext->nextPreset;
1677 ALOGV("get REVERB_PARAM_PRESET, preset %d", pContext->nextPreset);
1769 pProperties->roomLevel = ReverbGetRoomLevel(pContext);
1770 pProperties->roomHFLevel = ReverbGetRoomHfLevel(pContext);
1771 pProperties->decayTime = ReverbGetDecayTime(pContext);
1772 pProperties->decayHFRatio = ReverbGetDecayHfRatio(pContext);
1776 pProperties->reverbLevel = ReverbGetReverbLevel(pContext);
1777 pProperties->diffusion = ReverbGetDiffusion(pContext);
1778 pProperties->density = ReverbGetDensity(pContext);
1803 *(int16_t *)pValue = ReverbGetRoomLevel(pContext);
1809 *(int16_t *)pValue = ReverbGetRoomHfLevel(pContext);
1815 *(uint32_t *)pValue = ReverbGetDecayTime(pContext);
1821 *(int16_t *)pValue = ReverbGetDecayHfRatio(pContext);
1827 *(int16_t *)pValue = ReverbGetReverbLevel(pContext);
1833 *(int16_t *)pValue = ReverbGetDiffusion(pContext);
1840 *(int16_t *)pValue = ReverbGetDensity(pContext);
1869 // pContext - handle to instance data
1878 int Reverb_setParameter (ReverbContext *pContext, void *pParam, void *pValue, int vsize){
1888 if (pContext->preset) {
1898 pContext->nextPreset = preset;
1911 ReverbSetRoomLevel(pContext, pProperties->roomLevel);
1912 ReverbSetRoomHfLevel(pContext, pProperties->roomHFLevel);
1913 ReverbSetDecayTime(pContext, pProperties->decayTime);
1914 ReverbSetDecayHfRatio(pContext, pProperties->decayHFRatio);
1915 ReverbSetReverbLevel(pContext, pProperties->reverbLevel);
1916 ReverbSetDiffusion(pContext, pProperties->diffusion);
1917 ReverbSetDensity(pContext, pProperties->density);
1923 ReverbSetRoomLevel(pContext, level);
1930 ReverbSetRoomHfLevel(pContext, level);
1937 ReverbSetDecayTime(pContext, time);
1944 ReverbSetDecayHfRatio(pContext, ratio);
1951 ReverbSetReverbLevel(pContext, level);
1958 ReverbSetDiffusion(pContext, ratio);
1965 ReverbSetDensity(pContext, ratio);
2015 android::ReverbContext * pContext = (android::ReverbContext *) self;
2018 if (pContext == NULL){
2019 ALOGV("\tLVM_ERROR : Reverb_process() ERROR pContext == NULL");
2033 pContext);
2035 if (pContext->bEnabled == LVM_FALSE) {
2036 if (pContext->SamplesToExitCount > 0) {
2037 pContext->SamplesToExitCount -= outBuffer->frameCount;
2053 android::ReverbContext * pContext = (android::ReverbContext *) self;
2058 if (pContext == NULL){
2059 ALOGV("\tLVM_ERROR : Reverb_command ERROR pContext == NULL");
2087 *(int *) pReplyData = android::Reverb_setConfig(pContext,
2098 android::Reverb_getConfig(pContext, (effect_config_t *)pReplyData);
2104 Reverb_setConfig(pContext, &pContext->config);
2130 p->status = android::Reverb_getParameter(pContext,
2175 *(int *)pReplyData = android::Reverb_setParameter(pContext,
2190 if(pContext->bEnabled == LVM_TRUE){
2196 pContext->bEnabled = LVM_TRUE;
2198 LvmStatus = LVREV_GetControlParameters(pContext->hInstance, &ActiveParams);
2200 pContext->SamplesToExitCount =
2201 (ActiveParams.T60 * pContext->config.inputCfg.samplingRate)/1000;
2203 pContext->volumeMode = android::REVERB_VOLUME_FLAT;
2204 //ALOGV("\tEFFECT_CMD_ENABLE SamplesToExitCount = %d", pContext->SamplesToExitCount);
2215 if(pContext->bEnabled == LVM_FALSE){
2221 pContext->bEnabled = LVM_FALSE;
2234 pContext->leftVolume = (LVM_INT16)((*(uint32_t *)pCmdData + (1 << 11)) >> 12);
2235 pContext->rightVolume = (LVM_INT16)((*((uint32_t *)pCmdData + 1) + (1 << 11)) >> 12);
2238 if (pContext->volumeMode == android::REVERB_VOLUME_OFF) {
2240 pContext->volumeMode = android::REVERB_VOLUME_FLAT;
2243 pContext->leftVolume = REVERB_UNIT_VOLUME;
2244 pContext->rightVolume = REVERB_UNIT_VOLUME;
2245 pContext->volumeMode = android::REVERB_VOLUME_OFF;
2248 pContext->leftVolume, pContext->rightVolume, pContext->volumeMode);
2271 android::ReverbContext * pContext = (android::ReverbContext *)self;
2274 if (pContext == NULL || pDescriptor == NULL) {
2279 if (pContext->auxiliary) {
2280 if (pContext->preset) {
2286 if (pContext->preset) {