LVREV.h revision c59c6fd7f859b4010d788db89b8d4d76bbb70e57
1c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* 2c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * Copyright (C) 2004-2010 NXP Software 3c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * Copyright (C) 2010 The Android Open Source Project 4c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * 5c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * Licensed under the Apache License, Version 2.0 (the "License"); 6c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * you may not use this file except in compliance with the License. 7c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * You may obtain a copy of the License at 8c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * 9c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * http://www.apache.org/licenses/LICENSE-2.0 10c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * 11c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * Unless required by applicable law or agreed to in writing, software 12c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * distributed under the License is distributed on an "AS IS" BASIS, 13c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * See the License for the specific language governing permissions and 15c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent * limitations under the License. 16c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent */ 17c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 18c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/************************************************************************/ 19c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 20c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Project:: */ 21c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* $Author: beq03888 $*/ 22c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* $Revision: 1204 $*/ 23c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* $Date: 2010-07-14 08:55:43 +0200 (Wed, 14 Jul 2010) $*/ 24c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 25c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/************************************************************************/ 26c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 27c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 28c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 29c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Header file for the application layer interface of the LVREV module */ 30c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 31c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* This files includes all definitions, types, structures and function prototypes */ 32c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* required by the calling layer. All other types, structures and functions are */ 33c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* private. */ 34c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 35c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 36c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 37c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#ifndef __LVREV_H__ 38c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#define __LVREV_H__ 39c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 40c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#ifdef __cplusplus 41c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurentextern "C" { 42c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#endif /* __cplusplus */ 43c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 44c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 45c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 46c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 47c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Includes */ 48c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 49c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 50c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#include "LVM_Types.h" 51c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 52c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 53c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 54c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 55c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Definitions */ 56c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 57c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 58c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* General */ 59c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#define LVREV_BLOCKSIZE_MULTIPLE 1 /* Processing block size multiple */ 60c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#define LVREV_MAX_T60 7000 /* Maximum decay time is 7000ms */ 61c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 62c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Memory table*/ 63c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#define LVREV_NR_MEMORY_REGIONS 4 /* Number of memory regions */ 64c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 65c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 66c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 67c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 68c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Types */ 69c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 70c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 71c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Instance handle */ 72c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurenttypedef void *LVREV_Handle_t; 73c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 74c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 75c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Status return values */ 76c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurenttypedef enum 77c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent{ 78c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_SUCCESS = 0, /* Successful return from a routine */ 79c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_NULLADDRESS = 1, /* NULL allocation address */ 80c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_OUTOFRANGE = 2, /* Out of range control parameter */ 81c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_INVALIDNUMSAMPLES = 3, /* Invalid number of samples */ 82c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_RETURNSTATUS_DUMMY = LVM_MAXENUM 83c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent} LVREV_ReturnStatus_en; 84c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 85c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 86c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Reverb delay lines */ 87c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurenttypedef enum 88c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent{ 89c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_DELAYLINES_1 = 1, /* One delay line */ 90c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_DELAYLINES_2 = 2, /* Two delay lines */ 91c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_DELAYLINES_4 = 4, /* Four delay lines */ 92c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_DELAYLINES_DUMMY = LVM_MAXENUM 93c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent} LVREV_NumDelayLines_en; 94c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 95c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 96c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 97c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 98c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Structures */ 99c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 100c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 101c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 102c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Memory table containing the region definitions */ 103c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurenttypedef struct 104c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent{ 105c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_MemoryRegion_st Region[LVREV_NR_MEMORY_REGIONS]; /* One definition for each region */ 106c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent} LVREV_MemoryTable_st; 107c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 108c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 109c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Control Parameter structure */ 110c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurenttypedef struct 111c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent{ 112c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent /* General parameters */ 113c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_Mode_en OperatingMode; /* Operating mode */ 114c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_Fs_en SampleRate; /* Sample rate */ 115c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_Format_en SourceFormat; /* Source data format */ 116c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 117c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent /* Parameters for REV */ 118c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_UINT16 Level; /* Level, 0 to 100 representing percentage of reverb */ 119c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_UINT16 LPF; /* Low pass filter, in Hz */ 120c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_UINT16 HPF; /* High pass filter, in Hz */ 121c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_UINT16 T60; /* Decay time constant, in ms */ 122c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_UINT16 Density; /* Echo density, 0 to 100 for minimum to maximum density */ 123c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_UINT16 Damping; /* Damping */ 124c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_UINT16 RoomSize; /* Simulated room size, 1 to 100 for minimum to maximum size */ 125c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 126c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent} LVREV_ControlParams_st; 127c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 128c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 129c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Instance Parameter structure */ 130c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurenttypedef struct 131c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent{ 132c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent /* General */ 133c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_UINT16 MaxBlockSize; /* Maximum processing block size */ 134c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 135c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent /* Reverb */ 136c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_Format_en SourceFormat; /* Source data formats to support */ 137c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_NumDelayLines_en NumDelays; /* The number of delay lines, 1, 2 or 4 */ 138c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 139c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent} LVREV_InstanceParams_st; 140c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 141c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 142c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 143c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 144c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Function Prototypes */ 145c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 146c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 147c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 148c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 149c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 150c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* FUNCTION: LVREV_GetMemoryTable */ 151c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 152c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* DESCRIPTION: */ 153c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* This function is used to obtain the LVREV module memory requirements to support */ 154c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* memory allocation. It can also be used to return the memory base address provided */ 155c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* during memory allocation to support freeing of memory when the LVREV module is no */ 156c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* longer required. It is called in two ways: */ 157c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 158c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* hInstance = NULL Returns the memory requirements */ 159c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* hInstance = Instance handle Returns the memory requirements and allocated */ 160c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* base addresses. */ 161c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 162c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* When this function is called with hInstance = NULL the memory base address pointers */ 163c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* will be NULL on return. */ 164c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 165c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* When the function is called for freeing memory, hInstance = Instance Handle the */ 166c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* memory table returns the allocated memory and base addresses used during */ 167c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* initialisation. */ 168c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 169c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* PARAMETERS: */ 170c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* hInstance Instance Handle */ 171c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* pMemoryTable Pointer to an empty memory table */ 172c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* pInstanceParams Pointer to the instance parameters */ 173c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 174c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* RETURNS: */ 175c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_SUCCESS Succeeded */ 176c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_NULLADDRESS When pMemoryTable is NULL */ 177c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_NULLADDRESS When requesting memory requirements and pInstanceParams */ 178c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* is NULL */ 179c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 180c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* NOTES: */ 181c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* 1. This function may be interrupted by the LVREV_Process function */ 182c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 183c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 184c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric LaurentLVREV_ReturnStatus_en LVREV_GetMemoryTable(LVREV_Handle_t hInstance, 185c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_MemoryTable_st *pMemoryTable, 186c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_InstanceParams_st *pInstanceParams); 187c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 188c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 189c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 190c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 191c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* FUNCTION: LVREV_GetInstanceHandle */ 192c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 193c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* DESCRIPTION: */ 194c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* This function is used to create a LVREV module instance. It returns the created */ 195c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* instance handle through phInstance. All parameters are set to invalid values, the */ 196c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_SetControlParameters function must be called with a set of valid control */ 197c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* parameters before the LVREV_Process function can be called. */ 198c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 199c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* The memory allocation must be provided by the application by filling in the memory */ 200c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* region base addresses in the memory table before calling this function. */ 201c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 202c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* PARAMETERS: */ 203c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* phInstance Pointer to the instance handle */ 204c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* pMemoryTable Pointer to the memory definition table */ 205c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* pInstanceParams Pointer to the instance parameters */ 206c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 207c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* RETURNS: */ 208c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_SUCCESS Succeeded */ 209c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_NULLADDRESS When phInstance or pMemoryTable or pInstanceParams is NULL */ 210c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_NULLADDRESS When one of the memory regions has a NULL pointer */ 211c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 212c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* NOTES: */ 213c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 214c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 215c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric LaurentLVREV_ReturnStatus_en LVREV_GetInstanceHandle(LVREV_Handle_t *phInstance, 216c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_MemoryTable_st *pMemoryTable, 217c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_InstanceParams_st *pInstanceParams); 218c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 219c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 220c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 221c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 222c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* FUNCTION: LVXX_GetControlParameters */ 223c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 224c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* DESCRIPTION: */ 225c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Request the LVREV module control parameters. The current parameter set is returned */ 226c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* via the parameter pointer. */ 227c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 228c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* PARAMETERS: */ 229c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* hInstance Instance handle */ 230c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* pControlParams Pointer to an empty parameter structure */ 231c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 232c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* RETURNS: */ 233c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_SUCCESS Succeeded */ 234c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_NULLADDRESS When hInstance or pControlParams is NULL */ 235c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 236c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* NOTES: */ 237c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* 1. This function may be interrupted by the LVREV_Process function */ 238c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 239c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 240c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric LaurentLVREV_ReturnStatus_en LVREV_GetControlParameters(LVREV_Handle_t hInstance, 241c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_ControlParams_st *pControlParams); 242c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 243c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 244c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 245c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 246c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* FUNCTION: LVREV_SetControlParameters */ 247c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 248c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* DESCRIPTION: */ 249c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Sets or changes the LVREV module parameters. */ 250c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 251c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* PARAMETERS: */ 252c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* hInstance Instance handle */ 253c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* pNewParams Pointer to a parameter structure */ 254c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 255c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* RETURNS: */ 256c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_SUCCESS Succeeded */ 257c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_NULLADDRESS When hInstance or pNewParams is NULL */ 258c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 259c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* NOTES: */ 260c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* 1. This function may be interrupted by the LVREV_Process function */ 261c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 262c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 263c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric LaurentLVREV_ReturnStatus_en LVREV_SetControlParameters(LVREV_Handle_t hInstance, 264c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVREV_ControlParams_st *pNewParams); 265c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 266c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 267c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 268c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 269c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* FUNCTION: LVREV_ClearAudioBuffers */ 270c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 271c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* DESCRIPTION: */ 272c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* This function is used to clear the internal audio buffers of the module. */ 273c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 274c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* PARAMETERS: */ 275c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* hInstance Instance handle */ 276c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 277c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* RETURNS: */ 278c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_SUCCESS Initialisation succeeded */ 279c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_NULLADDRESS Instance is NULL */ 280c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 281c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* NOTES: */ 282c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* 1. This function must not be interrupted by the LVREV_Process function */ 283c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 284c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 285c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric LaurentLVREV_ReturnStatus_en LVREV_ClearAudioBuffers(LVREV_Handle_t hInstance); 286c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 287c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 288c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 289c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 290c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* FUNCTION: LVREV_Process */ 291c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 292c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* DESCRIPTION: */ 293c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* Process function for the LVREV module. */ 294c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 295c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* PARAMETERS: */ 296c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* hInstance Instance handle */ 297c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* pInData Pointer to the input data */ 298c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* pOutData Pointer to the output data */ 299c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* NumSamples Number of samples in the input buffer */ 300c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 301c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* RETURNS: */ 302c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_SUCCESS Succeeded */ 303c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* LVREV_INVALIDNUMSAMPLES NumSamples was larger than the maximum block size */ 304c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 305c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* NOTES: */ 306c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* 1. The input and output buffers must be 32-bit aligned */ 307c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* */ 308c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/****************************************************************************************/ 309c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric LaurentLVREV_ReturnStatus_en LVREV_Process(LVREV_Handle_t hInstance, 310c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent const LVM_INT32 *pInData, 311c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent LVM_INT32 *pOutData, 312c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent const LVM_UINT16 NumSamples); 313c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 314c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 315c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#ifdef __cplusplus 316c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent} 317c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#endif /* __cplusplus */ 318c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 319c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent#endif /* __LVREV_H__ */ 320c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent 321c59c6fd7f859b4010d788db89b8d4d76bbb70e57Eric Laurent/* End of file */ 322