Hamlib
4.5.5
src
register.h
1
/*
2
* Hamlib Interface - plugin registration
3
* Copyright (c) 2003-2005 by Stephane Fillod
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
#ifndef _REGISTER_H
22
#define _REGISTER_H 1
23
24
25
#include <
hamlib/rig.h
>
26
#include <
hamlib/rotator.h
>
27
#include <
hamlib/amplifier.h
>
28
#include <hamlib/config.h>
29
30
#ifdef __cplusplus
31
#define EXTERN_C extern "C"
32
#else
33
#define EXTERN_C extern
34
#endif
35
36
#define CONCAT4(w__, x__, y__, z__) w__ ## x__ ## y__ ## z__
37
#define MAKE_VERSIONED_FN(prefix__, version__, name_args__) CONCAT4(prefix__, version__, _, name_args__)
38
/* void MAKE_VERSIONED_FN(foo, 42, bar(int i)) -> void foo42_bar(int i) */
39
40
#ifndef ABI_VERSION
41
#error ABI_VERSION undefined! Did you include config.h?
42
#endif
43
44
#define PREFIX_INITRIG initrigs
45
#define PREFIX_PROBERIG probeallrigs
46
47
#define DECLARE_INITRIG_BACKEND(backend) \
48
EXTERN_C BACKEND_EXPORT(int) \
49
MAKE_VERSIONED_FN(PREFIX_INITRIG, ABI_VERSION, backend(void *be_handle))
50
51
#define DECLARE_PROBERIG_BACKEND(backend) \
52
EXTERN_C BACKEND_EXPORT(rig_model_t) \
53
MAKE_VERSIONED_FN(PREFIX_PROBERIG, \
54
ABI_VERSION, \
55
backend(hamlib_port_t *port, \
56
rig_probe_func_t cfunc, \
57
rig_ptr_t data))
58
59
#define PREFIX_INITROTS initrots
60
#define PREFIX_PROBEROTS probeallrots
61
62
#define DECLARE_INITROT_BACKEND(backend) \
63
EXTERN_C BACKEND_EXPORT(int) \
64
MAKE_VERSIONED_FN(PREFIX_INITROTS, ABI_VERSION, backend(void *be_handle))
65
66
#define DECLARE_PROBEROT_BACKEND(backend) \
67
EXTERN_C BACKEND_EXPORT(rot_model_t) \
68
MAKE_VERSIONED_FN(PREFIX_PROBEROTS, \
69
ABI_VERSION, \
70
backend(hamlib_port_t *port, \
71
rig_probe_func_t cfunc, \
72
rig_ptr_t data))
73
74
#define PREFIX_INITAMPS initamps
75
#define PREFIX_PROBEAMPS probeallamps
76
77
#define DECLARE_INITAMP_BACKEND(backend) \
78
EXTERN_C BACKEND_EXPORT(int) \
79
MAKE_VERSIONED_FN(PREFIX_INITAMPS, ABI_VERSION, backend(void *be_handle))
80
81
#define DECLARE_PROBEAMP_BACKEND(backend) \
82
EXTERN_C BACKEND_EXPORT(amp_model_t) \
83
MAKE_VERSIONED_FN(PREFIX_PROBEAMPS, \
84
ABI_VERSION, \
85
backend(hamlib_port_t *port, \
86
rig_probe_func_t cfunc, \
87
rig_ptr_t data))
88
89
#endif
/* _REGISTER_H */
rig.h
Hamlib rig data structures.
amplifier.h
Hamlib amplifier data structures.
rotator.h
Hamlib rotator data structures.
Generated by
1.8.17
Hamlib documentation for version 4.5.5—Fri Jun 14 2024 20:58:18
Project page:
http://www.hamlib.org