12c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 22c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Copyright (C) 2004-2010 NXP Software 32c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Copyright (C) 2010 The Android Open Source Project 42c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * 52c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Licensed under the Apache License, Version 2.0 (the "License"); 62c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * you may not use this file except in compliance with the License. 72c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * You may obtain a copy of the License at 82c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * 92c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * http://www.apache.org/licenses/LICENSE-2.0 102c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * 112c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Unless required by applicable law or agreed to in writing, software 122c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * distributed under the License is distributed on an "AS IS" BASIS, 132c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 142c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * See the License for the specific language governing permissions and 152c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * limitations under the License. 162c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent */ 172c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 182c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#ifndef _LVPSA_H_ 192c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define _LVPSA_H_ 202c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#include "LVM_Types.h" 232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#ifdef __cplusplus 262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurentextern "C" { 272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#endif /* __cplusplus */ 282c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 292c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 302c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 312c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* CONSTANTS DEFINITIONS */ 322c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 332c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 342c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 352c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Memory table*/ 362c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVPSA_NR_MEMORY_REGIONS 4 /* Number of memory regions */ 372c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 382c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 392c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 402c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* TYPES DEFINITIONS */ 412c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 422c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 432c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Memory Types */ 442c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef enum 452c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 462c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_PERSISTENT = LVM_PERSISTENT, 472c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_PERSISTENT_DATA = LVM_PERSISTENT_DATA, 482c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_PERSISTENT_COEF = LVM_PERSISTENT_COEF, 492c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_SCRATCH = LVM_SCRATCH, 502c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_MEMORY_DUMMY = LVM_MAXINT_32 /* Force 32 bits enum, don't use it! */ 512c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVPSA_MemoryTypes_en; 522c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 532c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Level detection speed control parameters */ 542c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef enum 552c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 562c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_SPEED_LOW, /* Low speed level detection */ 572c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_SPEED_MEDIUM, /* Medium speed level detection */ 582c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_SPEED_HIGH, /* High speed level detection */ 592c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_SPEED_DUMMY = LVM_MAXINT_32 /* Force 32 bits enum, don't use it! */ 602c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVPSA_LevelDetectSpeed_en; 612c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 622c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Filter control parameters */ 632c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 642c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 652c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 CenterFrequency; /* Center frequency of the band-pass filter (in Hz) */ 662c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 QFactor; /* Quality factor of the filter (in 1/100) */ 672c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 PostGain; /* Postgain to apply after the filtering (in dB Q16.0) */ 682c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 692c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVPSA_FilterParam_t; 702c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 712c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVPSA initialization parameters */ 722c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 732c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 742c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 SpectralDataBufferDuration; /* Spectral data buffer duration in time (ms in Q16.0) */ 752c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 MaxInputBlockSize; /* Maximum expected input block size (in samples) */ 762c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 nBands; /* Number of bands of the SA */ 772c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_FilterParam_t *pFiltersParams; /* Points to nBands filter param structures for filters settings */ 782c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 792c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVPSA_InitParams_t, *pLVPSA_InitParams_t; 802c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 812c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVPSA control parameters */ 822c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 832c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 842c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_Fs_en Fs; /* Input sampling rate */ 852c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_LevelDetectSpeed_en LevelDetectionSpeed; /* Level detection speed */ 862c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 872c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVPSA_ControlParams_t, *pLVPSA_ControlParams_t; 882c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 892c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Memory region definition */ 902c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 912c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 922c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT32 Size; /* Region size in bytes */ 932c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_MemoryTypes_en Type; /* Region type */ 942c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent void *pBaseAddress; /* Pointer to the region base address */ 952c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVPSA_MemoryRegion_t; 962c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 972c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Memory table containing the region definitions */ 982c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 992c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 1002c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_MemoryRegion_t Region[LVPSA_NR_MEMORY_REGIONS];/* One definition for each region */ 1012c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVPSA_MemTab_t; 1022c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1032c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Audio time type */ 1042c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef LVM_INT32 LVPSA_Time; 1052c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1062c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Module instance Handle */ 1072c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef void *pLVPSA_Handle_t; 1082c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1092c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVPSA return codes */ 1102c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef enum 1112c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 1122c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_OK, /* The function ran without any problem */ 1132c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_ERROR_INVALIDPARAM, /* A parameter is incorrect */ 1142c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_ERROR_WRONGTIME, /* An incorrect AudioTime is used */ 1152c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_ERROR_NULLADDRESS, /* A pointer has a NULL value */ 1162c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_RETURN_DUMMY = LVM_MAXINT_32 /* Force 32 bits enum, don't use it! */ 1172c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVPSA_RETURN; 1182c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1192c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1202c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/********************************************************************************************************************************* 1222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent FUNCTIONS PROTOTYPE 1232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent**********************************************************************************************************************************/ 1242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 1252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVPSA_Memory */ 1272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1282c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 1292c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* This function is used for memory allocation and free. It can be called in */ 1302c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* two ways: */ 1312c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1322c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance = NULL Returns the memory requirements */ 1332c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance = Instance handle Returns the memory requirements and */ 1342c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* allocated base addresses for the instance */ 1352c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1362c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* When this function is called for memory allocation (hInstance=NULL) the memory */ 1372c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* base address pointers are NULL on return. */ 1382c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1392c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* When the function is called for free (hInstance = Instance Handle) the memory */ 1402c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* table returns the allocated memory and base addresses used during initialisation. */ 1412c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1422c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 1432c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance Handle */ 1442c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pMemoryTable Pointer to an empty memory definition table */ 1452c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pInitParams Pointer to the instance init parameters */ 1462c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1472c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 1482c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVPSA_OK Succeeds */ 1492c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* otherwise Error due to bad parameters */ 1502c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1512c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 1522c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVPSA_RETURN LVPSA_Memory ( pLVPSA_Handle_t hInstance, 1532c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_MemTab_t *pMemoryTable, 1542c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_InitParams_t *pInitParams ); 1552c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1562c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 1572c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1582c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVPSA_Init */ 1592c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1602c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 1612c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Initializes the LVPSA module. */ 1622c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1632c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1642c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 1652c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* phInstance Pointer to the instance Handle */ 1662c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pInitParams Pointer to the instance init parameters */ 1672c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pControlParams Pointer to the instance control parameters */ 1682c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pMemoryTable Pointer to the memory definition table */ 1692c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1702c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1712c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 1722c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVPSA_OK Succeeds */ 1732c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* otherwise Error due to bad parameters */ 1742c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1752c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 1762c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVPSA_RETURN LVPSA_Init ( pLVPSA_Handle_t *phInstance, 1772c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_InitParams_t *pInitParams, 1782c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_ControlParams_t *pControlParams, 1792c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_MemTab_t *pMemoryTable ); 1802c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1812c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 1822c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1832c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVPSA_Control */ 1842c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1852c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 1862c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Controls the LVPSA module. */ 1872c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1882c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 1892c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance Handle */ 1902c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pNewParams Pointer to the instance new control parameters */ 1912c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1922c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 1932c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVPSA_OK Succeeds */ 1942c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* otherwise Error due to bad parameters */ 1952c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1962c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 1972c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVPSA_RETURN LVPSA_Control ( pLVPSA_Handle_t hInstance, 1982c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_ControlParams_t *pNewParams ); 1992c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2002c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 2012c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2022c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVPSA_Process */ 2032c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2042c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 2052c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* The process calculates the levels of the frequency bands. */ 2062c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2072c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 2082c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance Handle */ 2092c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pLVPSA_InputSamples Pointer to the input samples buffer */ 2102c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* InputBlockSize Number of mono samples to process */ 2112c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* AudioTime Playback time of the first input sample */ 2122c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2132c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2142c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 2152c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVPSA_OK Succeeds */ 2162c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* otherwise Error due to bad parameters */ 2172c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2182c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 2192c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVPSA_RETURN LVPSA_Process ( pLVPSA_Handle_t hInstance, 2202c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 *pLVPSA_InputSamples, 2212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 InputBlockSize, 2222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_Time AudioTime ); 2232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 2252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVPSA_GetSpectrum */ 2272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2282c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 2292c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* This function is used for memory allocation and free. */ 2302c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2312c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2322c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 2332c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance Handle */ 2342c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* GetSpectrumAudioTime Time to retrieve the values at */ 2352c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pCurrentValues Pointer to an empty buffer : Current level values output */ 2362c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pPeakValues Pointer to an empty buffer : Peak level values output */ 2372c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2382c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2392c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 2402c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVPSA_OK Succeeds */ 2412c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* otherwise Error due to bad parameters */ 2422c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2432c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 2442c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVPSA_RETURN LVPSA_GetSpectrum ( pLVPSA_Handle_t hInstance, 2452c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_Time GetSpectrumAudioTime, 2462c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT8 *pCurrentValues, 2472c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT8 *pPeakValues ); 2482c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2492c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 2502c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2512c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVPSA_GetControlParams */ 2522c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2532c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 2542c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Get the current control parameters of the LVPSA module. */ 2552c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2562c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 2572c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance Handle */ 2582c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pParams Pointer to an empty control parameters structure */ 2592c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 2602c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVPSA_OK Succeeds */ 2612c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* otherwise Error due to bad parameters */ 2622c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2632c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 2642c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVPSA_RETURN LVPSA_GetControlParams ( pLVPSA_Handle_t hInstance, 2652c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_ControlParams_t *pParams ); 2662c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2672c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 2682c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2692c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVPSA_GetInitParams */ 2702c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2712c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 2722c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Get the initialization parameters of the LVPSA module. */ 2732c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2742c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 2752c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance Handle */ 2762c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pParams Pointer to an empty init parameters structure */ 2772c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 2782c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVPSA_OK Succeeds */ 2792c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* otherwise Error due to bad parameters */ 2802c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2812c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/*********************************************************************************************************************************/ 2822c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVPSA_RETURN LVPSA_GetInitParams ( pLVPSA_Handle_t hInstance, 2832c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVPSA_InitParams_t *pParams ); 2842c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2852c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2862c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#ifdef __cplusplus 2872c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} 2882c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#endif /* __cplusplus */ 2892c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2902c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#endif /* _LVPSA_H */ 291