GNU Radio Manual and C++ API Reference  3.10.9.1
The Free & Open Software Radio Ecosystem
freedv_api.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2016-2019 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * SPDX-License-Identifier: GPL-3.0-or-later
8  *
9  */
10 
11 #ifndef _VOCODER_FREEDV_H_
12 #define _VOCODER_FREEDV_H_
13 
14 #include <gnuradio/vocoder/api.h>
15 
16 // version >=0.9.1 contains fixes that doesn't require "extern C"
17 // between 0.8.1 and 0.9.1 the build fail
18 #ifdef CODEC2_LEGACY
19 extern "C" {
20 #endif
21 #include <codec2/codec2.h>
22 #include <codec2/freedv_api.h>
23 #include <codec2/modem_stats.h>
24 #ifdef CODEC2_LEGACY
25 }
26 #endif
27 
28 namespace gr {
29 namespace vocoder {
30 
32 {
33 public:
34  enum freedv_modes {
35 #ifdef FREEDV_MODE_1600
36  MODE_1600 = FREEDV_MODE_1600,
37 #endif
38 #ifdef FREEDV_MODE_700
39  MODE_700 = FREEDV_MODE_700,
40 #endif
41 #ifdef FREEDV_MODE_700B
42  MODE_700B = FREEDV_MODE_700B,
43 #endif
44 #ifdef FREEDV_MODE_2400A
45  MODE_2400A = FREEDV_MODE_2400A,
46 #endif
47 #ifdef FREEDV_MODE_2400B
48  MODE_2400B = FREEDV_MODE_2400B,
49 #endif
50 #ifdef FREEDV_MODE_800XA
51  MODE_800XA = FREEDV_MODE_800XA,
52 #endif
53 #ifdef FREEDV_MODE_700C
54  MODE_700C = FREEDV_MODE_700C,
55 #endif
56 #ifdef FREEDV_MODE_700D
57  MODE_700D = FREEDV_MODE_700D,
58  SYNC_UNSYNC = FREEDV_SYNC_UNSYNC,
59  SYNC_AUTO = FREEDV_SYNC_AUTO,
60  SYNC_MANUAL = FREEDV_SYNC_MANUAL,
61 #endif
62 #ifdef FREEDV_MODE_2020
63  MODE_2020 = FREEDV_MODE_2020,
64 #endif
65 #ifdef FREEDV_MODE_2020B
66  MODE_2020B = FREEDV_MODE_2020B,
67 #endif
68 #ifdef FREEDV_MODE_700E
69  MODE_700E = FREEDV_MODE_700E,
70 #endif
71 #ifdef FREEDV_MODE_FSK_LDPC
72  MODE_FSK_LDPC = FREEDV_MODE_FSK_LDPC,
73 #endif
74 #ifdef FREEDV_MODE_DATAC1
75  MODE_DATAC1 = FREEDV_MODE_DATAC1,
76 #endif
77 #ifdef FREEDV_MODE_DATAC3
78  MODE_DATAC3 = FREEDV_MODE_DATAC3,
79 #endif
80 #ifdef FREEDV_MODE_DATAC0
81  MODE_DATAC0 = FREEDV_MODE_DATAC0,
82 #endif
83  };
84 
85 private:
86 };
87 
88 } /* namespace vocoder */
89 } /* namespace gr */
90 
91 #endif /* _VOCODER_FREEDV_H_ */
Definition: freedv_api.h:32
freedv_modes
Definition: freedv_api.h:34
#define VOCODER_API
Definition: gr-vocoder/include/gnuradio/vocoder/api.h:18
GNU Radio logging wrapper.
Definition: basic_block.h:29