diff options
author | Eric Laurent <elaurent@google.com> | 2010-08-31 13:50:07 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2010-08-31 15:26:23 -0700 |
commit | a92ebfa1cd96dc91174f68baab820dbed8239e4b (patch) | |
tree | 0279d11049f5bd1ff971b41c528dd05de9395839 /media/libeffects | |
parent | 63070856d034a2819a26560bc7f2881e501c78b7 (diff) | |
download | frameworks_base-a92ebfa1cd96dc91174f68baab820dbed8239e4b.zip frameworks_base-a92ebfa1cd96dc91174f68baab820dbed8239e4b.tar.gz frameworks_base-a92ebfa1cd96dc91174f68baab820dbed8239e4b.tar.bz2 |
Audio Effects: fix problems in volume control.
- Fixed click when re-enabling effect during the turn off phase:
make sure the effect states where effect is processed are the same
where volume control is delegated to effect.
- Fixed click when effect is deleted while still active: do not apply
volume ramp if an effect having volume control was just removed from the
effect chain.
Also fixed a crash when PCM dump is enabled in effect bundle wrapper.
Change-Id: Ib562f5cf75c69af75df0e862536262e2514493e4
Diffstat (limited to 'media/libeffects')
-rw-r--r-- | media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp index d3bb96e..7297811 100644 --- a/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp +++ b/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp @@ -258,16 +258,24 @@ extern "C" int EffectCreate(effect_uuid_t *uuid, pContext->pBundledContext->firstVolume = LVM_TRUE; #ifdef LVM_PCM - pContext->pBundledContext->PcmInPtr = NULL; - pContext->pBundledContext->PcmOutPtr = NULL; - pContext->pBundledContext->PcmInPtr = fopen("/data/tmp/bundle_pcm_in.pcm", "w"); - pContext->pBundledContext->PcmOutPtr = fopen("/data/tmp/bundle_pcm_out.pcm", "w"); + char fileName[256]; + snprintf(fileName, 256, "/data/tmp/bundle_%p_pcm_in.pcm", pContext->pBundledContext); + pContext->pBundledContext->PcmInPtr = fopen(fileName, "w"); + if (pContext->pBundledContext->PcmInPtr == NULL) { + LOGV("cannot open %s", fileName); + return -EINVAL; + } - if((pContext->pBundledContext->PcmInPtr == NULL)|| - (pContext->pBundledContext->PcmOutPtr == NULL)){ + snprintf(fileName, 256, "/data/tmp/bundle_%p_pcm_out.pcm", pContext->pBundledContext); + pContext->pBundledContext->PcmOutPtr = fopen(fileName, "w"); + if (pContext->pBundledContext->PcmOutPtr == NULL) { + LOGV("cannot open %s", fileName); + fclose(pContext->pBundledContext->PcmInPtr); + pContext->pBundledContext->PcmInPtr = NULL; return -EINVAL; } + #endif /* Saved strength is used to return the exact strength that was used in the set to the get @@ -375,8 +383,14 @@ extern "C" int EffectRelease(effect_interface_t interface){ (GlobalSessionMemory[pContext->pBundledContext->SessionNo].bVirtualizerInstantiated==LVM_FALSE)) { #ifdef LVM_PCM - fclose(pContext->pBundledContext->PcmInPtr); - fclose(pContext->pBundledContext->PcmOutPtr); + if (pContext->pBundledContext->PcmInPtr != NULL) { + fclose(pContext->pBundledContext->PcmInPtr); + pContext->pBundledContext->PcmInPtr = NULL; + } + if (pContext->pBundledContext->PcmOutPtr != NULL) { + fclose(pContext->pBundledContext->PcmOutPtr); + pContext->pBundledContext->PcmOutPtr = NULL; + } #endif LvmSessionsActive--; |