OSDN Git Service

Fixed bug in vlm effect bunde wrapper effect init function.
authorEric Laurent <elaurent@google.com>
Mon, 26 Jul 2010 08:03:37 +0000 (01:03 -0700)
committerEric Laurent <elaurent@google.com>
Mon, 26 Jul 2010 08:07:38 +0000 (01:07 -0700)
The status in the command reply field was not initialized by Effect_command() for
EFFECT_CMD_INIT causing unpredictable failures when initializing an effect.

Change-Id: I7dccb094c9244fad4ed9aea3062a395db295e082

media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp

index 6043dd5..5e91974 100644 (file)
@@ -2337,7 +2337,6 @@ extern "C" int Effect_command(effect_interface_t  self,
                               void                *pReplyData){
     EffectContext * pContext = (EffectContext *) self;
     int retsize;
-    int status = 0;
 
     //LOGV("\t\nEffect_command start");
 
@@ -2371,54 +2370,29 @@ extern "C" int Effect_command(effect_interface_t  self,
 
     switch (cmdCode){
         case EFFECT_CMD_INIT:
+            if (pReplyData == NULL || *replySize != sizeof(int)){
+                LOGV("\tLVM_ERROR, EFFECT_CMD_INIT: ERROR for effect type %d",
+                        pContext->EffectType);
+                return -EINVAL;
+            }
+            *(int *) pReplyData = 0;
             //LOGV("\tEffect_command cmdCode Case: EFFECT_CMD_INIT start");
             if(pContext->EffectType == LVM_BASS_BOOST){
                 //LOGV("\tEffect_command cmdCode Case: EFFECT_CMD_INIT for LVM_BASS_BOOST");
-
-                if (pReplyData == NULL || *replySize != sizeof(int)){
-                    LOGV("\tLVM_ERROR : BassBoost_command cmdCode Case: "
-                            "EFFECT_CMD_INIT: ERROR");
-                    return -EINVAL;
-                }
-
                 android::BassSetStrength(pContext, 0);
             }
             if(pContext->EffectType == LVM_VIRTUALIZER){
                 //LOGV("\tEffect_command cmdCode Case: EFFECT_CMD_INIT for LVM_VIRTUALIZER");
-
-                if (pReplyData == NULL || *replySize != sizeof(int)){
-                    LOGV("\tLVM_ERROR : Virtualizer_command cmdCode Case: "
-                            "EFFECT_CMD_INIT: ERROR");
-                    return -EINVAL;
-                }
-
                 android::VirtualizerSetStrength(pContext, 0);
             }
             if(pContext->EffectType == LVM_EQUALIZER){
                 //LOGV("\tEffect_command cmdCode Case: EFFECT_CMD_INIT for LVM_EQUALIZER");
-
-                if (pReplyData == NULL || *replySize != sizeof(int)){
-                    LOGV("\tLVM_ERROR : Equalizer_command cmdCode Case: "
-                            "EFFECT_CMD_INIT: ERROR");
-                    return -EINVAL;
-                }
-
                 android::EqualizerSetPreset(pContext, 0);
             }
             if(pContext->EffectType == LVM_VOLUME){
                 //LOGV("\tEffect_command cmdCode Case: "
                 //        "EFFECT_CMD_INIT start");
-
-                if (pReplyData == NULL || *replySize != sizeof(int)){
-                    LOGV("\tLVM_ERROR : Volume_command cmdCode Case: "
-                            "EFFECT_CMD_INIT: ERROR");
-                    return -EINVAL;
-                }
-
-                status = android::VolumeSetVolumeLevel(pContext, 0);
-                if(status == -EINVAL){
-                    return -EINVAL;
-                }
+                *(int *) pReplyData = android::VolumeSetVolumeLevel(pContext, 0);
             }
             break;