xref: /aosp_15_r20/external/libldac/src/struct_ldac.h (revision aef9bcd9217ad2365ebc8e70efaf94b64e04df14)
1*aef9bcd9SKiyoung Kim /*
2*aef9bcd9SKiyoung Kim  * Copyright (C) 2003 - 2016 Sony Corporation
3*aef9bcd9SKiyoung Kim  *
4*aef9bcd9SKiyoung Kim  * Licensed under the Apache License, Version 2.0 (the "License");
5*aef9bcd9SKiyoung Kim  * you may not use this file except in compliance with the License.
6*aef9bcd9SKiyoung Kim  * You may obtain a copy of the License at
7*aef9bcd9SKiyoung Kim  *
8*aef9bcd9SKiyoung Kim  *      http://www.apache.org/licenses/LICENSE-2.0
9*aef9bcd9SKiyoung Kim  *
10*aef9bcd9SKiyoung Kim  * Unless required by applicable law or agreed to in writing, software
11*aef9bcd9SKiyoung Kim  * distributed under the License is distributed on an "AS IS" BASIS,
12*aef9bcd9SKiyoung Kim  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*aef9bcd9SKiyoung Kim  * See the License for the specific language governing permissions and
14*aef9bcd9SKiyoung Kim  * limitations under the License.
15*aef9bcd9SKiyoung Kim  */
16*aef9bcd9SKiyoung Kim 
17*aef9bcd9SKiyoung Kim #ifndef _STRUCT_H
18*aef9bcd9SKiyoung Kim #define _STRUCT_H
19*aef9bcd9SKiyoung Kim 
20*aef9bcd9SKiyoung Kim #include <stdio.h>
21*aef9bcd9SKiyoung Kim #include <stdlib.h>
22*aef9bcd9SKiyoung Kim #include <string.h>
23*aef9bcd9SKiyoung Kim #include <math.h>
24*aef9bcd9SKiyoung Kim 
25*aef9bcd9SKiyoung Kim /***************************************************************************************************
26*aef9bcd9SKiyoung Kim     Macro Definition
27*aef9bcd9SKiyoung Kim ***************************************************************************************************/
28*aef9bcd9SKiyoung Kim 
29*aef9bcd9SKiyoung Kim #define DECLFUNC static
30*aef9bcd9SKiyoung Kim #define UNUSED_ATTR __attribute__((unused))
31*aef9bcd9SKiyoung Kim 
32*aef9bcd9SKiyoung Kim #ifndef PI
33*aef9bcd9SKiyoung Kim #ifdef M_PI
34*aef9bcd9SKiyoung Kim #define PI M_PI
35*aef9bcd9SKiyoung Kim #else /* M_PI */
36*aef9bcd9SKiyoung Kim #define PI (double)(3.14159265358979323846)
37*aef9bcd9SKiyoung Kim #endif /* M_PI */
38*aef9bcd9SKiyoung Kim #endif /* PI */
39*aef9bcd9SKiyoung Kim 
40*aef9bcd9SKiyoung Kim /***************************************************************************************************
41*aef9bcd9SKiyoung Kim     Type Definition
42*aef9bcd9SKiyoung Kim ***************************************************************************************************/
43*aef9bcd9SKiyoung Kim typedef unsigned char STREAM;
44*aef9bcd9SKiyoung Kim 
45*aef9bcd9SKiyoung Kim typedef short          INT16;
46*aef9bcd9SKiyoung Kim typedef int            INT32;
47*aef9bcd9SKiyoung Kim typedef unsigned int  UINT32;
48*aef9bcd9SKiyoung Kim typedef long long      INT64;
49*aef9bcd9SKiyoung Kim 
50*aef9bcd9SKiyoung Kim typedef float         SCALAR;
51*aef9bcd9SKiyoung Kim #define _scalar(x) x##f
52*aef9bcd9SKiyoung Kim typedef union {
53*aef9bcd9SKiyoung Kim     float f;
54*aef9bcd9SKiyoung Kim     int i;
55*aef9bcd9SKiyoung Kim } IEEE754_FI;
56*aef9bcd9SKiyoung Kim 
57*aef9bcd9SKiyoung Kim /***************************************************************************************************
58*aef9bcd9SKiyoung Kim     Macro Functions
59*aef9bcd9SKiyoung Kim ***************************************************************************************************/
60*aef9bcd9SKiyoung Kim /* Buffer Operations */
61*aef9bcd9SKiyoung Kim #define clear_data_ldac(p, n)      memset((p), 0, (n))
62*aef9bcd9SKiyoung Kim #define clear_seq_s_ldac(p, n)     memset((char *)(p), 0, (n)*sizeof(short))
63*aef9bcd9SKiyoung Kim #define clear_seq_l_ldac(p, n)     memset((char *)(p), 0, (n)*sizeof(int))
64*aef9bcd9SKiyoung Kim #define clear_seq_f_ldac(p, n)     memset((char *)(p), 0, (n)*sizeof(SCALAR))
65*aef9bcd9SKiyoung Kim 
66*aef9bcd9SKiyoung Kim #if _MSC_VER >=1400
67*aef9bcd9SKiyoung Kim /* Secured CRT Functions */
68*aef9bcd9SKiyoung Kim #define copy_data_ldac(p1, p2, n)  memcpy_s((p2), (n), (p1), (n))
69*aef9bcd9SKiyoung Kim #define copy_seq_s_ldac(p1, p2, n) memcpy_s((p2), (n)*sizeof(short), (p1), (n)*sizeof(short))
70*aef9bcd9SKiyoung Kim #define copy_seq_l_ldac(p1, p2, n) memcpy_s((p2), (n)*sizeof(int), (p1), (n)*sizeof(int))
71*aef9bcd9SKiyoung Kim #define copy_seq_f_ldac(p1, p2, n) memcpy_s((p2), (n)*sizeof(SCALAR), (p1), (n)*sizeof(SCALAR))
72*aef9bcd9SKiyoung Kim #define move_seq_f_ldac(p1, p2, n) memmove_s((p2), (n)*sizeof(SCALAR), (p1), (n)*sizeof(SCALAR))
73*aef9bcd9SKiyoung Kim #else
74*aef9bcd9SKiyoung Kim #define copy_data_ldac(p1, p2, n)  memcpy((p2), (p1), (n))
75*aef9bcd9SKiyoung Kim #define copy_seq_s_ldac(p1, p2, n) memcpy((p2), (p1), (n)*sizeof(short))
76*aef9bcd9SKiyoung Kim #define copy_seq_l_ldac(p1, p2, n) memcpy((p2), (p1), (n)*sizeof(int))
77*aef9bcd9SKiyoung Kim #define copy_seq_f_ldac(p1, p2, n) memcpy((p2), (p1), (n)*sizeof(SCALAR))
78*aef9bcd9SKiyoung Kim #define move_seq_f_ldac(p1, p2, n) memmove((p2), (p1), (n)*sizeof(SCALAR))
79*aef9bcd9SKiyoung Kim #endif
80*aef9bcd9SKiyoung Kim 
81*aef9bcd9SKiyoung Kim #endif /* _STRUCT_H */
82*aef9bcd9SKiyoung Kim 
83