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