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