| /* |
| * Copyright (C) 2004-2010 NXP Software |
| * Copyright (C) 2010 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| |
| /****************************************************************************************/ |
| /* */ |
| /* Includes */ |
| /* */ |
| /****************************************************************************************/ |
| |
| #include "LVM_Private.h" |
| #include "LVM_Tables.h" |
| |
| /****************************************************************************************/ |
| /* */ |
| /* FUNCTION: LVM_GetSpectrum */ |
| /* */ |
| /* DESCRIPTION: */ |
| /* This function is used to retrieve Spectral information at a given Audio time */ |
| /* for display usage */ |
| /* */ |
| /* PARAMETERS: */ |
| /* hInstance Instance Handle */ |
| /* pCurrentPeaks Pointer to location where currents peaks are to be saved */ |
| /* pPastPeaks Pointer to location where past peaks are to be saved */ |
| /* AudioTime Audio time at which the spectral information is needed */ |
| /* */ |
| /* RETURNS: */ |
| /* LVM_SUCCESS Succeeded */ |
| /* LVM_NULLADDRESS If any of input addresses are NULL */ |
| /* LVM_WRONGAUDIOTIME Failure due to audio time error */ |
| /* */ |
| /* NOTES: */ |
| /* 1. This function may be interrupted by the LVM_Process function */ |
| /* */ |
| /****************************************************************************************/ |
| LVM_ReturnStatus_en LVM_GetSpectrum( |
| LVM_Handle_t hInstance, |
| LVM_UINT8 *pCurrentPeaks, |
| LVM_UINT8 *pPastPeaks, |
| LVM_INT32 AudioTime |
| ) |
| { |
| LVM_Instance_t *pInstance = (LVM_Instance_t *)hInstance; |
| |
| pLVPSA_Handle_t *hPSAInstance; |
| LVPSA_RETURN LVPSA_Status; |
| |
| |
| if(pInstance == LVM_NULL) |
| { |
| return LVM_NULLADDRESS; |
| } |
| |
| /*If PSA is not included at the time of instance creation, return without any processing*/ |
| if(pInstance->InstParams.PSA_Included!=LVM_PSA_ON) |
| { |
| return LVM_SUCCESS; |
| } |
| |
| hPSAInstance = pInstance->hPSAInstance; |
| |
| if((pCurrentPeaks == LVM_NULL) || |
| (pPastPeaks == LVM_NULL)) |
| { |
| return LVM_NULLADDRESS; |
| } |
| |
| |
| /* |
| * Update new parameters if necessary |
| */ |
| if (pInstance->ControlPending == LVM_TRUE) |
| { |
| LVM_ApplyNewSettings(hInstance); |
| } |
| |
| /* If PSA module is disabled, do nothing */ |
| if(pInstance->Params.PSA_Enable==LVM_PSA_OFF) |
| { |
| return LVM_ALGORITHMDISABLED; |
| } |
| |
| LVPSA_Status = LVPSA_GetSpectrum(hPSAInstance, |
| (LVPSA_Time) (AudioTime), |
| (LVM_UINT8*) pCurrentPeaks, |
| (LVM_UINT8*) pPastPeaks ); |
| |
| if(LVPSA_Status != LVPSA_OK) |
| { |
| if(LVPSA_Status == LVPSA_ERROR_WRONGTIME) |
| { |
| return (LVM_ReturnStatus_en) LVM_WRONGAUDIOTIME; |
| } |
| else |
| { |
| return (LVM_ReturnStatus_en) LVM_NULLADDRESS; |
| } |
| } |
| |
| return(LVM_SUCCESS); |
| } |
| |
| |
| /****************************************************************************************/ |
| /* */ |
| /* FUNCTION: LVM_SetVolumeNoSmoothing */ |
| /* */ |
| /* DESCRIPTION: */ |
| /* This function is used to set output volume without any smoothing */ |
| /* */ |
| /* PARAMETERS: */ |
| /* hInstance Instance Handle */ |
| /* pParams Control Parameters, only volume value is used here */ |
| /* */ |
| /* RETURNS: */ |
| /* LVM_SUCCESS Succeeded */ |
| /* LVM_NULLADDRESS If any of input addresses are NULL */ |
| /* LVM_OUTOFRANGE When any of the control parameters are out of range */ |
| /* */ |
| /* NOTES: */ |
| /* 1. This function may be interrupted by the LVM_Process function */ |
| /* */ |
| /****************************************************************************************/ |
| LVM_ReturnStatus_en LVM_SetVolumeNoSmoothing( LVM_Handle_t hInstance, |
| LVM_ControlParams_t *pParams) |
| { |
| LVM_Instance_t *pInstance =(LVM_Instance_t *)hInstance; |
| LVM_ReturnStatus_en Error; |
| |
| /*Apply new controls*/ |
| Error = LVM_SetControlParameters(hInstance,pParams); |
| pInstance->NoSmoothVolume = LVM_TRUE; |
| return Error; |
| } |
| |