LVDBE.h revision 2c8e5cab3faa6d360e222b7a6c40a80083d021ac
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/**************************************************************************************** 192c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 202c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent $Author: nxp007753 $ 212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent $Revision: 1081 $ 222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent $Date: 2010-07-05 11:48:44 +0200 (Mon, 05 Jul 2010) $ 232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent*****************************************************************************************/ 252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 282c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Header file for the application layer interface of Dynamic Bass Enhancement */ 292c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* module. */ 302c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 312c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* This files includes all definitions, types, structures and function */ 322c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* prototypes required by the calling layer. All other types, structures and */ 332c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* functions are private. */ 342c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 352c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 362c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 372c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Note: 1 */ 382c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* ======= */ 392c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* The algorithm can execute either with separate input and output buffers or with */ 402c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* a common buffer, i.e. the data is processed in-place. */ 412c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 422c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 432c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 442c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Note: 2 */ 452c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* ======= */ 462c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* The Dynamic Bass Enhancement algorithm always processes data as stereo input. Mono*/ 472c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* format data is not supported. The data is interleaved as follows: */ 482c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 492c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Byte Offset Stereo Input Mono-In-Stereo Input */ 502c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* =========== ============ ==================== */ 512c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 0 Left Sample #1 Mono Sample #1 */ 522c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 2 Right Sample #1 Mono Sample #1 */ 532c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 4 Left Sample #2 Mono Sample #2 */ 542c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 6 Right Sample #2 Mono Sample #2 */ 552c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* . . . */ 562c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* . . . */ 572c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 582c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Mono format data is not supported, the calling routine must convert a Mono stream */ 592c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* in to Mono-In-Stereo format. */ 602c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 612c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 622c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 632c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#ifndef __LVDBE_H__ 642c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define __LVDBE_H__ 652c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 662c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#ifdef __cplusplus 672c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurentextern "C" { 682c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#endif /* __cplusplus */ 692c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 702c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 712c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 722c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 732c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Includes */ 742c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 752c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 762c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 772c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#include "LVM_Types.h" 782c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 792c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 802c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 812c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 822c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Definitions */ 832c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 842c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 852c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 862c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Memory table*/ 872c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_NR_MEMORY_REGIONS 4 /* Number of memory regions */ 882c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 892c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Bass Enhancement effect level */ 902c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_EFFECT_03DB 3 /* Effect defines for backwards compatibility */ 912c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_EFFECT_06DB 6 922c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_EFFECT_09DB 9 932c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_EFFECT_12DB 12 942c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_EFFECT_15DB 15 952c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 962c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 972c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 982c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 992c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Types */ 1002c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1012c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 1022c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1032c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Instance handle */ 1042c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef void *LVDBE_Handle_t; 1052c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1062c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1072c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Operating modes */ 1082c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef enum 1092c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 1102c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_OFF = 0, 1112c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_ON = 1, 1122c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_MODE_MAX = LVM_MAXINT_32 1132c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_Mode_en; 1142c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1152c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1162c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* High pass filter */ 1172c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef enum 1182c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 1192c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_HPF_OFF = 0, 1202c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_HPF_ON = 1, 1212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_HPF_MAX = LVM_MAXINT_32 1222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_FilterSelect_en; 1232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Volume control */ 1262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef enum 1272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 1282c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_VOLUME_OFF = 0, 1292c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_VOLUME_ON = 1, 1302c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_VOLUME_MAX = LVM_MAXINT_32 1312c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_Volume_en; 1322c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1332c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1342c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Memory Types */ 1352c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef enum 1362c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 1372c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_PERSISTENT = 0, 1382c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_PERSISTENT_DATA = 1, 1392c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_PERSISTENT_COEF = 2, 1402c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_SCRATCH = 3, 1412c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_MEMORY_MAX = LVM_MAXINT_32 1422c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1432c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_MemoryTypes_en; 1442c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1452c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1462c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Function return status */ 1472c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef enum 1482c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 1492c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_SUCCESS = 0, /* Successful return from a routine */ 1502c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_ALIGNMENTERROR = 1, /* Memory alignment error */ 1512c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_NULLADDRESS = 2, /* NULL allocation address */ 1522c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_TOOMANYSAMPLES = 3, /* Maximum block size exceeded */ 1532c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_SIZEERROR = 4, /* Incorrect structure size */ 1542c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_STATUS_MAX = LVM_MAXINT_32 1552c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_ReturnStatus_en; 1562c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1572c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1582c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 1592c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1602c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Linked enumerated type and capability definitions */ 1612c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1622c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* The capability definitions are used to define the required capabilities at */ 1632c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* initialisation, these are added together to give the capability word. The */ 1642c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* enumerated type is used to select the mode through a control function at run time. */ 1652c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1662c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* The capability definition is related to the enumerated type value by the equation: */ 1672c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1682c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Capability_value = 2^Enumerated_value */ 1692c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1702c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* For example, a module could be configurd at initialisation to support two sample */ 1712c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* rates only by calling the init function with the value: */ 1722c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Capabilities.SampleRate = LVDBE_CAP_32000 + LVCS_DBE_44100; */ 1732c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1742c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* and at run time it would be passed the value LVDBE_FS_32000 through the control */ 1752c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* function to select operation at 32kHz */ 1762c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 1772c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 1782c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1792c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 1802c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Bass Enhancement centre frequency 1812c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent */ 1822c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_CENTRE_55Hz 1 1832c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_CENTRE_66Hz 2 1842c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_CENTRE_78Hz 4 1852c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_CENTRE_90Hz 8 1862c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1872c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef enum 1882c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 1892c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_CENTRE_55HZ = 0, 1902c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_CENTRE_66HZ = 1, 1912c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_CENTRE_78HZ = 2, 1922c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_CENTRE_90HZ = 3, 1932c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_CENTRE_MAX = LVM_MAXINT_32 1942c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_CentreFreq_en; 1952c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1962c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1972c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 1982c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Supported sample rates in samples per second 1992c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent */ 2002c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_FS_8000 1 2012c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_FS_11025 2 2022c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_FS_12000 4 2032c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_FS_16000 8 2042c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_FS_22050 16 2052c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_FS_24000 32 2062c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_FS_32000 64 2072c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_FS_44100 128 2082c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#define LVDBE_CAP_FS_48000 256 2092c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2102c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef enum 2112c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 2122c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FS_8000 = 0, 2132c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FS_11025 = 1, 2142c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FS_12000 = 2, 2152c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FS_16000 = 3, 2162c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FS_22050 = 4, 2172c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FS_24000 = 5, 2182c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FS_32000 = 6, 2192c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FS_44100 = 7, 2202c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FS_48000 = 8, 2212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FS_MAX = LVM_MAXINT_32 2222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_Fs_en; 2232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 2262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Structures */ 2282c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2292c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 2302c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2312c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Memory region definition */ 2322c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 2332c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 2342c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT32 Size; /* Region size in bytes */ 2352c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 Alignment; /* Region alignment in bytes */ 2362c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_MemoryTypes_en Type; /* Region type */ 2372c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent void *pBaseAddress; /* Pointer to the region base address */ 2382c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_MemoryRegion_t; 2392c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2402c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2412c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Memory table containing the region definitions */ 2422c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 2432c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 2442c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_MemoryRegion_t Region[LVDBE_NR_MEMORY_REGIONS]; /* One definition for each region */ 2452c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_MemTab_t; 2462c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2472c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2482c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Parameter structure */ 2492c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 2502c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 2512c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_Mode_en OperatingMode; 2522c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_Fs_en SampleRate; 2532c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 EffectLevel; 2542c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_CentreFreq_en CentreFrequency; 2552c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_FilterSelect_en HPFSelect; 2562c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_Volume_en VolumeControl; 2572c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 VolumedB; 2582c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 HeadroomdB; 2592c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2602c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_Params_t; 2612c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2622c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2632c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Capability structure */ 2642c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurenttypedef struct 2652c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 2662c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 SampleRate; /* Sampling rate capabilities */ 2672c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 CentreFrequency; /* Centre frequency capabilities */ 2682c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 MaxBlockSize; /* Maximum block size in sample pairs */ 2692c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} LVDBE_Capabilities_t; 2702c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2712c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2722c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 2732c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2742c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Function Prototypes */ 2752c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2762c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 2772c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2782c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 2792c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2802c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVDBE_Memory */ 2812c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2822c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 2832c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* This function is used for memory allocation and free. It can be called in */ 2842c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* two ways: */ 2852c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2862c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance = NULL Returns the memory requirements */ 2872c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance = Instance handle Returns the memory requirements and */ 2882c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* allocated base addresses for the instance */ 2892c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2902c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* When this function is called for memory allocation (hInstance=NULL) the memory */ 2912c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* base address pointers are NULL on return. */ 2922c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2932c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* When the function is called for free (hInstance = Instance Handle) the memory */ 2942c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* table returns the allocated memory and base addresses used during initialisation. */ 2952c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 2962c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 2972c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance Handle */ 2982c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pMemoryTable Pointer to an empty memory definition table */ 2992c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pCapabilities Pointer to the default capabilites */ 3002c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3012c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 3022c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVDBE_SUCCESS Succeeded */ 3032c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3042c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* NOTES: */ 3052c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 1. This function may be interrupted by the LVDBE_Process function */ 3062c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3072c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 3082c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3092c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVDBE_ReturnStatus_en LVDBE_Memory(LVDBE_Handle_t hInstance, 3102c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_MemTab_t *pMemoryTable, 3112c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_Capabilities_t *pCapabilities); 3122c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3132c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3142c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 3152c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3162c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVDBE_Init */ 3172c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3182c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 3192c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Create and initialisation function for the Bass Enhancement module */ 3202c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* This function can be used to create an algorithm instance by calling with */ 3222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance set to NULL. In this case the algorithm returns the new instance */ 3232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* handle. */ 3242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* This function can be used to force a full re-initialisation of the algorithm */ 3262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* by calling with hInstance = Instance Handle. In this case the memory table */ 3272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* should be correct for the instance, this can be ensured by calling the function */ 3282c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVDBE_Memory before calling this function. */ 3292c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3302c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 3312c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance handle */ 3322c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pMemoryTable Pointer to the memory definition table */ 3332c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pCapabilities Pointer to the initialisation capabilities */ 3342c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3352c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 3362c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVDBE_SUCCESS Initialisation succeeded */ 3372c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVDBE_ALIGNMENTERROR Instance or scratch memory on incorrect alignment */ 3382c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVDBE_NULLADDRESS One or more memory has a NULL pointer */ 3392c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3402c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* NOTES: */ 3412c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 1. The instance handle is the pointer to the base address of the first memory */ 3422c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* region. */ 3432c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 2. This function must not be interrupted by the LVDBE_Process function */ 3442c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3452c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 3462c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3472c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVDBE_ReturnStatus_en LVDBE_Init(LVDBE_Handle_t *phInstance, 3482c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_MemTab_t *pMemoryTable, 3492c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_Capabilities_t *pCapabilities); 3502c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3512c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3522c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 3532c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3542c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVDBE_GetParameters */ 3552c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3562c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 3572c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Request the Bass Enhancement parameters. The current parameter set is returned */ 3582c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* via the parameter pointer. */ 3592c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3602c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 3612c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance handle */ 3622c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pParams Pointer to an empty parameter structure */ 3632c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3642c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 3652c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVDBE_SUCCESS Always succeeds */ 3662c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3672c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* NOTES: */ 3682c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 1. This function may be interrupted by the LVDBE_Process function */ 3692c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3702c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 3712c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3722c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVDBE_ReturnStatus_en LVDBE_GetParameters(LVDBE_Handle_t hInstance, 3732c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_Params_t *pParams); 3742c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3752c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3762c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 3772c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3782c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVDBE_GetCapabilities */ 3792c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3802c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 3812c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Request the Dynamic Bass Enhancement capabilities. The initial capabilities are */ 3822c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* returned via the pointer. */ 3832c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3842c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 3852c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance handle */ 3862c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pCapabilities Pointer to an empty capabilitiy structure */ 3872c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3882c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 3892c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVDBE_Success Always succeeds */ 3902c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3912c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* NOTES: */ 3922c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 1. This function may be interrupted by the LVDBE_Process function */ 3932c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 3942c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 3952c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3962c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVDBE_ReturnStatus_en LVDBE_GetCapabilities(LVDBE_Handle_t hInstance, 3972c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_Capabilities_t *pCapabilities); 3982c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 3992c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 4002c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 4012c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4022c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVDBE_Control */ 4032c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4042c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 4052c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Sets or changes the Bass Enhancement parameters. Changing the parameters while the */ 4062c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* module is processing signals may have the following side effects: */ 4072c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4082c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* General parameters: */ 4092c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* =================== */ 4102c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* OperatingMode: Changing the mode of operation may cause a change in volume */ 4112c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* level. */ 4122c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4132c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* SampleRate: Changing the sample rate may cause pops and clicks. */ 4142c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4152c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* EffectLevel: Changing the effect level setting will have no side effects */ 4162c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4172c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* CentreFrequency: Changing the centre frequency may cause pops and clicks */ 4182c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4192c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* HPFSelect: Selecting/de-selecting the high pass filter may cause pops and */ 4202c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* clicks */ 4212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* VolumedB Changing the volume setting will have no side effects */ 4232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 4262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance handle */ 4272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pParams Pointer to a parameter structure */ 4282c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4292c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 4302c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVDBE_SUCCESS Always succeeds */ 4312c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4322c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* NOTES: */ 4332c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 1. This function must not be interrupted by the LVDBE_Process function */ 4342c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4352c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 4362c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 4372c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVDBE_ReturnStatus_en LVDBE_Control(LVDBE_Handle_t hInstance, 4382c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVDBE_Params_t *pParams); 4392c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 4402c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 4412c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 4422c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4432c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* FUNCTION: LVDBE_Process */ 4442c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4452c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* DESCRIPTION: */ 4462c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* Process function for the Bass Enhancement module. */ 4472c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4482c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* PARAMETERS: */ 4492c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* hInstance Instance handle */ 4502c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pInData Pointer to the input data */ 4512c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* pOutData Pointer to the output data */ 4522c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* NumSamples Number of samples in the input buffer */ 4532c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4542c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* RETURNS: */ 4552c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVDBE_SUCCESS Succeeded */ 4562c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* LVDBE_TOOMANYSAMPLES NumSamples was larger than the maximum block size */ 4572c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4582c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* NOTES: */ 4592c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* */ 4602c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/****************************************************************************************/ 4612c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 4622c8e5cab3faa6d360e222b7a6c40a80083d021acEric LaurentLVDBE_ReturnStatus_en LVDBE_Process(LVDBE_Handle_t hInstance, 4632c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent const LVM_INT16 *pInData, 4642c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 *pOutData, 4652c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_UINT16 NumSamples); 4662c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 4672c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 4682c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#ifdef __cplusplus 4692c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} 4702c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#endif /* __cplusplus */ 4712c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 4722c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#endif /* __LVDBE_H__ */ 473