10c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*
20c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project
30c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi *
40c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License");
50c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * you may not use this file except in compliance with the License.
60c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * You may obtain a copy of the License at
70c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi *
80c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi *      http://www.apache.org/licenses/LICENSE-2.0
90c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi *
100c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software
110c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS,
120c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * See the License for the specific language governing permissions and
140c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * limitations under the License.
150c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi */
160c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
170c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************
180c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * @file name:          LVM_Types.h
190c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
200c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi*****************************************************************************************/
210c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
220c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
230c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
240c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*  Header file defining the standard LifeVibes types for use in the application layer  */
250c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*  interface of all LifeVibes modules                                                  */
260c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
270c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
280c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
290c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#ifndef LVM_TYPES_H
300c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_TYPES_H
310c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
320c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#ifdef __cplusplus
330c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargiextern "C" {
340c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#endif /* __cplusplus */
350c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
360c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
370c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
380c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
390c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*  definitions                                                                         */
400c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
410c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
420c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
430c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_NULL                0                   /* NULL pointer */
440c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
450c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_TRUE                1                   /* Booleans */
460c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_FALSE               0
470c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
480c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MAXINT_8            127                 /* Maximum positive integer size */
490c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MAXINT_16           32767
500c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MAXINT_32           2147483647
510c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MAXENUM             2147483647
520c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
530c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MODULEID_MASK       0xFF00              /* Mask to extract the calling module ID
540c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi                                                        from callbackId */
550c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_EVENTID_MASK        0x00FF              /* Mask to extract the callback event from
560c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi                                                         callbackId */
570c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
580c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Memory table*/
590c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MEMREGION_PERSISTENT_SLOW_DATA      0   /* Offset to the instance memory region */
600c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MEMREGION_PERSISTENT_FAST_DATA      1   /* Offset to the persistent data memory
610c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi                                                        region */
620c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MEMREGION_PERSISTENT_FAST_COEF      2   /* Offset to the persistent coefficient
630c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi                                                        memory region */
640c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MEMREGION_TEMPORARY_FAST            3   /* Offset to temporary memory region */
650c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
660c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
670c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
680c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
690c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*  Basic types                                                                         */
700c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
710c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
720c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
730c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef     char                LVM_CHAR;           /* ASCII character */
740c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
750c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef     char                LVM_INT8;           /* Signed 8-bit word */
760c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef     unsigned char       LVM_UINT8;          /* Unsigned 8-bit word */
770c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
780c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef     short               LVM_INT16;          /* Signed 16-bit word */
790c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef     unsigned short      LVM_UINT16;         /* Unsigned 16-bit word */
800c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
810c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef     long                LVM_INT32;          /* Signed 32-bit word */
820c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef     unsigned long       LVM_UINT32;         /* Unsigned 32-bit word */
830c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
840c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
850c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
860c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
870c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*  Standard Enumerated types                                                           */
880c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
890c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
900c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
910c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Operating mode */
920c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef enum
930c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{
940c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_MODE_OFF    = 0,
950c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_MODE_ON     = 1,
960c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_MODE_DUMMY  = LVM_MAXENUM
970c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_Mode_en;
980c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
990c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1000c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Format */
1010c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef enum
1020c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{
1030c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_STEREO          = 0,
1040c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_MONOINSTEREO    = 1,
1050c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_MONO            = 2,
1060c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_SOURCE_DUMMY    = LVM_MAXENUM
1070c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_Format_en;
1080c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1090c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1100c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Word length */
1110c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef enum
1120c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{
1130c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_16_BIT      = 0,
1140c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_32_BIT      = 1,
1150c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_WORDLENGTH_DUMMY = LVM_MAXENUM
1160c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_WordLength_en;
1170c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1180c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1190c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* LVM sampling rates */
1200c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef enum
1210c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{
1220c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_8000  = 0,
1230c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_11025 = 1,
1240c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_12000 = 2,
1250c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_16000 = 3,
1260c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_22050 = 4,
1270c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_24000 = 5,
1280c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_32000 = 6,
1290c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_44100 = 7,
1300c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_48000 = 8,
1310c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_INVALID = LVM_MAXENUM-1,
1320c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_FS_DUMMY = LVM_MAXENUM
1330c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_Fs_en;
1340c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1350c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1360c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Memory Types */
1370c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef enum
1380c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{
1390c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_PERSISTENT_SLOW_DATA    = LVM_MEMREGION_PERSISTENT_SLOW_DATA,
1400c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_PERSISTENT_FAST_DATA    = LVM_MEMREGION_PERSISTENT_FAST_DATA,
1410c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_PERSISTENT_FAST_COEF    = LVM_MEMREGION_PERSISTENT_FAST_COEF,
1420c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_TEMPORARY_FAST          = LVM_MEMREGION_TEMPORARY_FAST,
1430c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_MEMORYTYPE_DUMMY        = LVM_MAXENUM
1440c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_MemoryTypes_en;
1450c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1460c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1470c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Memory region definition */
1480c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef struct
1490c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{
1500c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_UINT32                  Size;                   /* Region size in bytes */
1510c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    LVM_MemoryTypes_en          Type;                   /* Region type */
1520c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi    void                        *pBaseAddress;          /* Pointer to the region base address */
1530c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_MemoryRegion_st;
1540c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1550c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1560c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
1570c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
1580c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*  Standard Function Prototypes                                                        */
1590c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
1600c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
1610c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef LVM_INT32 (*LVM_Callback)(void          *pCallbackData,     /* Pointer to the callback
1620c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi                                                                     data structure */
1630c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi                                  void          *pGeneralPurpose,   /* General purpose pointer
1640c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi                                                                    (e.g. to a data structure
1650c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi                                                                    needed in the callback) */
1660c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi                                  LVM_INT16     GeneralPurpose );   /* General purpose variable
1670c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi                                  (e.g. to be used as callback ID) */
1680c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1690c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1700c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
1710c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
1720c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*  End of file                                                                         */
1730c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/*                                                                                      */
1740c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/
1750c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1760c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#ifdef __cplusplus
1770c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi}
1780c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#endif /* __cplusplus */
1790c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi
1800c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#endif  /* LVM_TYPES_H */
181