Hamlib 4.7~git
 
Loading...
Searching...
No Matches
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_USB_AF setting2idx_builtin(RIG_LEVEL_USB_AF)
143#define LVL_USB_AF_INPUT setting2idx_builtin(RIG_LEVEL_USB_AF_INPUT)
144/*#define LVL_BWC setting2idx_builtin(RIG_LEVEL_BWC)*/
145
146#define LVL_RFPOWER_METER setting2idx_builtin(RIG_LEVEL_RFPOWER_METER)
147#define LVL_RFPOWER_METER_WATTS setting2idx_builtin(RIG_LEVEL_RFPOWER_METER_WATTS)
148#define LVL_COMP_METER setting2idx_builtin(RIG_LEVEL_COMP_METER)
149#define LVL_VD_METER setting2idx_builtin(RIG_LEVEL_VD_METER)
150#define LVL_ID_METER setting2idx_builtin(RIG_LEVEL_ID_METER)
151
152#define LVL_NOTCHF_RAW setting2idx_builtin(RIG_LEVEL_NOTCHF_RAW)
153#define LVL_MONITOR_GAIN setting2idx_builtin(RIG_LEVEL_MONITOR_GAIN)
154
155#define LVL_NB setting2idx_builtin(RIG_LEVEL_NB)
156
157#define LVL_BRIGHT setting2idx_builtin(RIG_LEVEL_BRIGHT)
158
159#define LVL_SPECTRUM_MODE setting2idx_builtin(RIG_LEVEL_SPECTRUM_MODE)
160#define LVL_SPECTRUM_SPAN setting2idx_builtin(RIG_LEVEL_SPECTRUM_SPAN)
161#define LVL_SPECTRUM_EDGE_LOW setting2idx_builtin(RIG_LEVEL_SPECTRUM_EDGE_LOW)
162#define LVL_SPECTRUM_EDGE_HIGH setting2idx_builtin(RIG_LEVEL_SPECTRUM_EDGE_HIGH)
163#define LVL_SPECTRUM_SPEED setting2idx_builtin(RIG_LEVEL_SPECTRUM_SPEED)
164#define LVL_SPECTRUM_REF setting2idx_builtin(RIG_LEVEL_SPECTRUM_REF)
165#define LVL_SPECTRUM_AVG setting2idx_builtin(RIG_LEVEL_SPECTRUM_AVG)
166#define LVL_SPECTRUM_ATT setting2idx_builtin(RIG_LEVEL_SPECTRUM_ATT)
167
168#define LVL_USB_AF setting2idx_builtin(RIG_LEVEL_USB_AF)
169#define LVL_AGC_TIME setting2idx_builtin(RIG_LEVEL_AGC_TIME)
170#define LVL_BAND_SELECT setting2idx_builtin(RIG_LEVEL_BAND_SELECT)
171#define LVL_51 setting2idx_builtin(RIG_LEVEL_51)
172#define LVL_52 setting2idx_builtin(RIG_LEVEL_52)
173#define LVL_53 setting2idx_builtin(RIG_LEVEL_53)
174#define LVL_54 setting2idx_builtin(RIG_LEVEL_54)
175#define LVL_55 setting2idx_builtin(RIG_LEVEL_55)
176#define LVL_56 setting2idx_builtin(RIG_LEVEL_56)
177#define LVL_57 setting2idx_builtin(RIG_LEVEL_57)
178#define LVL_58 setting2idx_builtin(RIG_LEVEL_58)
179#define LVL_59 setting2idx_builtin(RIG_LEVEL_59)
180#define LVL_60 setting2idx_builtin(RIG_LEVEL_60)
181#define LVL_61 setting2idx_builtin(RIG_LEVEL_61)
182#define LVL_62 setting2idx_builtin(RIG_LEVEL_62)
183#define LVL_63 setting2idx_builtin(RIG_LEVEL_63)
184
185#define PARM_ANN setting2idx_builtin(RIG_PARM_ANN)
186#define PARM_APO setting2idx_builtin(RIG_PARM_APO)
187#define PARM_BACKLIGHT setting2idx_builtin(RIG_PARM_BACKLIGHT)
188#define PARM_BEEP setting2idx_builtin(RIG_PARM_BEEP)
189#define PARM_TIME setting2idx_builtin(RIG_PARM_TIME)
190#define PARM_BAT setting2idx_builtin(RIG_PARM_BAT)
191#define PARM_KEYLIGHT setting2idx_builtin(RIG_PARM_KEYLIGHT)
192#define PARM_BANDSELECT setting2idx_builtin(RIG_PARM_BANDSELECT)
193#define PARM_SCREENSAVER setting2idx_builtin(RIG_PARM_SCREENSAVER)
194#define PARM_KEYERTYPE setting2idx_builtin(RIG_PARM_KEYERTYPE)
195
196/* Rotator levels */
197
198#define ROT_LVL_SPEED setting2idx_builtin(ROT_LEVEL_SPEED)
199
200
201#endif /* _IDX_BUILTIN_H */
Hamlib rig data structures.
Hamlib rotator data structures.