Hamlib  4.1
idx_builtin.h
1 /*
2  * Hamlib Interface - setting2idx for builtin constants
3  * Copyright (c) 2002-2005 by Stephane Fillod and Frank Singleton
4  *
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  *
20  */
21 
22 #ifndef _IDX_BUILTIN_H
23 #define _IDX_BUILTIN_H 1
24 
25 #include <hamlib/rig.h>
26 #include <hamlib/rotator.h>
27 
28 /*
29  * only for Hamlib internal use (backend caps)
30  * This is a rig_setting2idx version that works for builtin_constant,
31  * hence allowing its use in array initializers. The compiler simplifies
32  * everything at compile time.
33  *
34  * struct rig_caps foo = {
35  * .level_gran = { [LVL_PREAMP] = { .min = 0, .max = 20, .step = 10 } },
36  * }
37  *
38  * Of course, it can't work with setting2idx_builtin(RIG_LEVEL_XX|RIG_LEVEL_YY)
39  */
40 
41 // This is future-proofed for 64 levels
42 #define setting2idx_builtin(s) (( \
43  (s)==(1ull<<0)?0: \
44  (s)==(1ull<<1)?1: \
45  (s)==(1ull<<2)?2: \
46  (s)==(1ull<<3)?3: \
47  (s)==(1ull<<4)?4: \
48  (s)==(1ull<<5)?5: \
49  (s)==(1ull<<6)?6: \
50  (s)==(1ull<<7)?7: \
51  (s)==(1ull<<8)?8: \
52  (s)==(1ull<<9)?9: \
53  (s)==(1ull<<10)?10: \
54  (s)==(1ull<<11)?11: \
55  (s)==(1ull<<12)?12: \
56  (s)==(1ull<<13)?13: \
57  (s)==(1ull<<14)?14: \
58  (s)==(1ull<<15)?15: \
59  (s)==(1ull<<16)?16: \
60  (s)==(1ull<<17)?17: \
61  (s)==(1ull<<18)?18: \
62  (s)==(1ull<<19)?19: \
63  (s)==(1ull<<20)?20: \
64  (s)==(1ull<<21)?21: \
65  (s)==(1ull<<22)?22: \
66  (s)==(1ull<<23)?23: \
67  (s)==(1ull<<24)?24: \
68  (s)==(1ull<<25)?25: \
69  (s)==(1ull<<26)?26: \
70  (s)==(1ull<<27)?27: \
71  (s)==(1ull<<28)?28: \
72  (s)==(1ull<<29)?29: \
73  (s)==(1ull<<30)?30: \
74  (s)==(1ull<<31)?31: \
75  (s)==(1ull<<32)?32: \
76  (s)==(1ull<<33)?33: \
77  (s)==(1ull<<34)?34: \
78  (s)==(1ull<<35)?35: \
79  (s)==(1ull<<36)?36: \
80  (s)==(1ull<<37)?37: \
81  (s)==(1ull<<38)?38: \
82  (s)==(1ull<<39)?39: \
83  (s)==(1ull<<40)?40: \
84  (s)==(1ull<<41)?41: \
85  (s)==(1ull<<42)?42: \
86  (s)==(1ull<<43)?43: \
87  (s)==(1ull<<44)?44: \
88  (s)==(1ull<<45)?45: \
89  (s)==(1ull<<46)?46: \
90  (s)==(1ull<<47)?47: \
91  (s)==(1ull<<48)?48: \
92  (s)==(1ull<<49)?49: \
93  (s)==(1ull<<50)?50: \
94  (s)==(1ull<<51)?51: \
95  (s)==(1ull<<52)?52: \
96  (s)==(1ull<<53)?53: \
97  (s)==(1ull<<54)?54: \
98  (s)==(1ull<<55)?55: \
99  (s)==(1ull<<56)?56: \
100  (s)==(1ull<<57)?57: \
101  (s)==(1ull<<58)?58: \
102  (s)==(1ull<<59)?59: \
103  (s)==(1ull<<60)?60: \
104  (s)==(1ull<<61)?61: \
105  (s)==(1ull<<62)?62: \
106  (s)==(1ull<<63)?63: \
107  -1) \
108  )
109 
110 #define LVL_PREAMP setting2idx_builtin(RIG_LEVEL_PREAMP)
111 #define LVL_ATT setting2idx_builtin(RIG_LEVEL_ATT)
112 #define LVL_VOXDELAY setting2idx_builtin(RIG_LEVEL_VOXDELAY)
113 #define LVL_AF setting2idx_builtin(RIG_LEVEL_AF)
114 #define LVL_RF setting2idx_builtin(RIG_LEVEL_RF)
115 #define LVL_SQL setting2idx_builtin(RIG_LEVEL_SQL)
116 #define LVL_IF setting2idx_builtin(RIG_LEVEL_IF)
117 #define LVL_APF setting2idx_builtin(RIG_LEVEL_APF)
118 #define LVL_NR setting2idx_builtin(RIG_LEVEL_NR)
119 #define LVL_PBT_IN setting2idx_builtin(RIG_LEVEL_PBT_IN)
120 #define LVL_PBT_OUT setting2idx_builtin(RIG_LEVEL_PBT_OUT)
121 #define LVL_CWPITCH setting2idx_builtin(RIG_LEVEL_CWPITCH)
122 #define LVL_RFPOWER setting2idx_builtin(RIG_LEVEL_RFPOWER)
123 #define LVL_MICGAIN setting2idx_builtin(RIG_LEVEL_MICGAIN)
124 #define LVL_KEYSPD setting2idx_builtin(RIG_LEVEL_KEYSPD)
125 #define LVL_NOTCHF setting2idx_builtin(RIG_LEVEL_NOTCHF)
126 #define LVL_COMP setting2idx_builtin(RIG_LEVEL_COMP)
127 #define LVL_AGC setting2idx_builtin(RIG_LEVEL_AGC)
128 #define LVL_BKINDL setting2idx_builtin(RIG_LEVEL_BKINDL)
129 #define LVL_BALANCE setting2idx_builtin(RIG_LEVEL_BALANCE)
130 #define LVL_METER setting2idx_builtin(RIG_LEVEL_METER)
131 #define LVL_VOXGAIN setting2idx_builtin(RIG_LEVEL_VOXGAIN)
132 #define LVL_ANTIVOX setting2idx_builtin(RIG_LEVEL_ANTIVOX)
133 #define LVL_SLOPE_LOW setting2idx_builtin(RIG_LEVEL_SLOPE_LOW)
134 #define LVL_SLOPE_HIGH setting2idx_builtin(RIG_LEVEL_SLOPE_HIGH)
135 #define LVL_BKIN_DLYMS setting2idx_builtin(RIG_LEVEL_BKIN_DLYMS)
136 
137 #define LVL_RAWSTR setting2idx_builtin(RIG_LEVEL_RAWSTR)
138 #define LVL_SQLSTAT setting2idx_builtin(RIG_LEVEL_SQLSTAT)
139 #define LVL_SWR setting2idx_builtin(RIG_LEVEL_SWR)
140 #define LVL_ALC setting2idx_builtin(RIG_LEVEL_ALC)
141 #define LVL_STRENGTH setting2idx_builtin(RIG_LEVEL_STRENGTH)
142 /*#define LVL_BWC setting2idx_builtin(RIG_LEVEL_BWC)*/
143 
144 #define LVL_RFPOWER_METER setting2idx_builtin(RIG_LEVEL_RFPOWER_METER)
145 #define LVL_RFPOWER_METER_WATTS setting2idx_builtin(RIG_LEVEL_RFPOWER_METER_WATTS)
146 #define LVL_COMP_METER setting2idx_builtin(RIG_LEVEL_COMP_METER)
147 #define LVL_VD_METER setting2idx_builtin(RIG_LEVEL_VD_METER)
148 #define LVL_ID_METER setting2idx_builtin(RIG_LEVEL_ID_METER)
149 
150 #define LVL_NOTCHF_RAW setting2idx_builtin(RIG_LEVEL_NOTCHF_RAW)
151 #define LVL_MONITOR_GAIN setting2idx_builtin(RIG_LEVEL_MONITOR_GAIN)
152 
153 #define LVL_NB setting2idx_builtin(RIG_LEVEL_NB)
154 
155 #define LVL_BRIGHT setting2idx_builtin(RIG_LEVEL_BRIGHT)
156 
157 #define LVL_40 setting2idx_builtin(RIG_LEVEL_40)
158 #define LVL_41 setting2idx_builtin(RIG_LEVEL_41)
159 #define LVL_42 setting2idx_builtin(RIG_LEVEL_42)
160 #define LVL_43 setting2idx_builtin(RIG_LEVEL_43)
161 #define LVL_44 setting2idx_builtin(RIG_LEVEL_44)
162 #define LVL_45 setting2idx_builtin(RIG_LEVEL_45)
163 #define LVL_46 setting2idx_builtin(RIG_LEVEL_46)
164 #define LVL_47 setting2idx_builtin(RIG_LEVEL_47)
165 #define LVL_48 setting2idx_builtin(RIG_LEVEL_48)
166 #define LVL_49 setting2idx_builtin(RIG_LEVEL_49)
167 #define LVL_50 setting2idx_builtin(RIG_LEVEL_50)
168 #define LVL_51 setting2idx_builtin(RIG_LEVEL_51)
169 #define LVL_52 setting2idx_builtin(RIG_LEVEL_52)
170 #define LVL_53 setting2idx_builtin(RIG_LEVEL_53)
171 #define LVL_54 setting2idx_builtin(RIG_LEVEL_54)
172 #define LVL_55 setting2idx_builtin(RIG_LEVEL_55)
173 #define LVL_56 setting2idx_builtin(RIG_LEVEL_56)
174 #define LVL_57 setting2idx_builtin(RIG_LEVEL_57)
175 #define LVL_58 setting2idx_builtin(RIG_LEVEL_58)
176 #define LVL_59 setting2idx_builtin(RIG_LEVEL_59)
177 #define LVL_60 setting2idx_builtin(RIG_LEVEL_60)
178 #define LVL_61 setting2idx_builtin(RIG_LEVEL_61)
179 #define LVL_62 setting2idx_builtin(RIG_LEVEL_62)
180 #define LVL_63 setting2idx_builtin(RIG_LEVEL_63)
181 
182 #define PARM_ANN setting2idx_builtin(RIG_PARM_ANN)
183 #define PARM_APO setting2idx_builtin(RIG_PARM_APO)
184 #define PARM_BACKLIGHT setting2idx_builtin(RIG_PARM_BACKLIGHT)
185 #define PARM_BEEP setting2idx_builtin(RIG_PARM_BEEP)
186 #define PARM_TIME setting2idx_builtin(RIG_PARM_TIME)
187 #define PARM_BAT setting2idx_builtin(RIG_PARM_BAT)
188 #define PARM_KEYLIGHT setting2idx_builtin(RIG_PARM_KEYLIGHT)
189 
190 /* Rotator levels */
191 
192 #define ROT_LVL_SPEED setting2idx_builtin(ROT_LEVEL_SPEED)
193 
194 
195 #endif /* _IDX_BUILTIN_H */
Hamlib rig data structures.
Hamlib rotator data structures.

Generated by doxygen 1.9.1

Hamlib documentation for version 4.1 -- Mon Feb 1 2021 08:00:28
Project page: http://www.hamlib.org