LVM_Types.h revision d918324d44aa48b3b064ea9b87d0c520c38f15a9
1/* 2 * Copyright (C) 2004-2010 NXP Software 3 * Copyright (C) 2010 The Android Open Source Project 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18/****************************************************************************************/ 19/* */ 20/* Header file defining the standard LifeVibes types for use in the application layer */ 21/* interface of all LifeVibes modules */ 22/* */ 23/****************************************************************************************/ 24 25#ifndef LVM_TYPES_H 26#define LVM_TYPES_H 27 28#ifdef __cplusplus 29extern "C" { 30#endif /* __cplusplus */ 31 32 33/****************************************************************************************/ 34/* */ 35/* definitions */ 36/* */ 37/****************************************************************************************/ 38 39#define LVM_NULL 0 /* NULL pointer */ 40 41#define LVM_TRUE 1 /* Booleans */ 42#define LVM_FALSE 0 43 44#define LVM_MAXINT_8 127 /* Maximum positive integer size */ 45#define LVM_MAXINT_16 32767 46#define LVM_MAXINT_32 2147483647 47#define LVM_MAXENUM 2147483647 48 49#define LVM_MODULEID_MASK 0xFF00 /* Mask to extract the calling module ID from callbackId */ 50#define LVM_EVENTID_MASK 0x00FF /* Mask to extract the callback event from callbackId */ 51 52/* Memory table*/ 53#define LVM_MEMREGION_PERSISTENT_SLOW_DATA 0 /* Offset to the instance memory region */ 54#define LVM_MEMREGION_PERSISTENT_FAST_DATA 1 /* Offset to the persistent data memory region */ 55#define LVM_MEMREGION_PERSISTENT_FAST_COEF 2 /* Offset to the persistent coefficient memory region */ 56#define LVM_MEMREGION_TEMPORARY_FAST 3 /* Offset to temporary memory region */ 57 58#define LVM_NR_MEMORY_REGIONS 4 /* Number of memory regions */ 59 60/* Memory partition type */ 61#define LVM_MEM_PARTITION0 0 /* 1st memory partition */ 62#define LVM_MEM_PARTITION1 1 /* 2nd memory partition */ 63#define LVM_MEM_PARTITION2 2 /* 3rd memory partition */ 64#define LVM_MEM_PARTITION3 3 /* 4th memory partition */ 65 66/* Use type */ 67#define LVM_MEM_PERSISTENT 0 /* Persistent memory type */ 68#define LVM_MEM_SCRATCH 4 /* Scratch memory type */ 69 70/* Access type */ 71#define LVM_MEM_INTERNAL 0 /* Internal (fast) access memory */ 72#define LVM_MEM_EXTERNAL 8 /* External (slow) access memory */ 73 74/* Platform specific */ 75#define LVM_PERSISTENT LVM_MEM_PARTITION0+LVM_MEM_PERSISTENT+LVM_MEM_INTERNAL 76#define LVM_PERSISTENT_DATA LVM_MEM_PARTITION1+LVM_MEM_PERSISTENT+LVM_MEM_INTERNAL 77#define LVM_PERSISTENT_COEF LVM_MEM_PARTITION2+LVM_MEM_PERSISTENT+LVM_MEM_INTERNAL 78#define LVM_SCRATCH LVM_MEM_PARTITION3+LVM_MEM_SCRATCH+LVM_MEM_INTERNAL 79 80/****************************************************************************************/ 81/* */ 82/* Basic types */ 83/* */ 84/****************************************************************************************/ 85 86typedef char LVM_CHAR; /* ASCII character */ 87 88typedef char LVM_INT8; /* Signed 8-bit word */ 89typedef unsigned char LVM_UINT8; /* Unsigned 8-bit word */ 90 91typedef short LVM_INT16; /* Signed 16-bit word */ 92typedef unsigned short LVM_UINT16; /* Unsigned 16-bit word */ 93 94typedef long LVM_INT32; /* Signed 32-bit word */ 95typedef unsigned long LVM_UINT32; /* Unsigned 32-bit word */ 96 97 98/****************************************************************************************/ 99/* */ 100/* Standard Enumerated types */ 101/* */ 102/****************************************************************************************/ 103 104/* Operating mode */ 105typedef enum 106{ 107 LVM_MODE_OFF = 0, 108 LVM_MODE_ON = 1, 109 LVM_MODE_DUMMY = LVM_MAXENUM 110} LVM_Mode_en; 111 112 113/* Format */ 114typedef enum 115{ 116 LVM_STEREO = 0, 117 LVM_MONOINSTEREO = 1, 118 LVM_MONO = 2, 119 LVM_SOURCE_DUMMY = LVM_MAXENUM 120} LVM_Format_en; 121 122 123/* LVM sampling rates */ 124typedef enum 125{ 126 LVM_FS_8000 = 0, 127 LVM_FS_11025 = 1, 128 LVM_FS_12000 = 2, 129 LVM_FS_16000 = 3, 130 LVM_FS_22050 = 4, 131 LVM_FS_24000 = 5, 132 LVM_FS_32000 = 6, 133 LVM_FS_44100 = 7, 134 LVM_FS_48000 = 8, 135 LVM_FS_INVALID = LVM_MAXENUM-1, 136 LVM_FS_DUMMY = LVM_MAXENUM 137} LVM_Fs_en; 138 139 140/* Memory Types */ 141typedef enum 142{ 143 LVM_PERSISTENT_SLOW_DATA = LVM_MEMREGION_PERSISTENT_SLOW_DATA, 144 LVM_PERSISTENT_FAST_DATA = LVM_MEMREGION_PERSISTENT_FAST_DATA, 145 LVM_PERSISTENT_FAST_COEF = LVM_MEMREGION_PERSISTENT_FAST_COEF, 146 LVM_TEMPORARY_FAST = LVM_MEMREGION_TEMPORARY_FAST, 147 LVM_MEMORYTYPE_DUMMY = LVM_MAXENUM 148} LVM_MemoryTypes_en; 149 150 151/* Memory region definition */ 152typedef struct 153{ 154 LVM_UINT32 Size; /* Region size in bytes */ 155 LVM_MemoryTypes_en Type; /* Region type */ 156 void *pBaseAddress; /* Pointer to the region base address */ 157} LVM_MemoryRegion_st; 158 159 160/* Memory table containing the region definitions */ 161typedef struct 162{ 163 LVM_MemoryRegion_st Region[LVM_NR_MEMORY_REGIONS]; /* One definition for each region */ 164} LVM_MemoryTable_st; 165 166 167/****************************************************************************************/ 168/* */ 169/* Standard Function Prototypes */ 170/* */ 171/****************************************************************************************/ 172typedef LVM_INT32 (*LVM_Callback)(void *pCallbackData, /* Pointer to the callback data structure */ 173 void *pGeneralPurpose, /* General purpose pointer (e.g. to a data structure needed in the callback) */ 174 LVM_INT16 GeneralPurpose ); /* General purpose variable (e.g. to be used as callback ID) */ 175 176 177/****************************************************************************************/ 178/* */ 179/* End of file */ 180/* */ 181/****************************************************************************************/ 182 183#ifdef __cplusplus 184} 185#endif /* __cplusplus */ 186 187#endif /* LVM_TYPES_H */ 188