libdrmconf  0.12.0
A library to program DMR radios.
signaling.hh
1 #ifndef SIGNALING_HH
2 #define SIGNALING_HH
3 
4 #include <QString>
5 #include <QObject>
6 
10 class Signaling: public QObject
11 {
12  Q_OBJECT
13 
14 public:
18  enum Code {
19  SIGNALING_NONE = 0,
20  CTCSS_67_0Hz, CTCSS_71_9Hz, CTCSS_74_4Hz, CTCSS_77_0Hz, CTCSS_79_7Hz, CTCSS_82_5Hz,
21  CTCSS_85_4Hz, CTCSS_88_5Hz, CTCSS_91_5Hz, CTCSS_94_8Hz, CTCSS_97_4Hz, CTCSS_100_0Hz,
22  CTCSS_103_5Hz, CTCSS_107_2Hz, CTCSS_110_9Hz, CTCSS_114_8Hz, CTCSS_118_8Hz, CTCSS_123_0Hz,
23  CTCSS_127_3Hz, CTCSS_131_8Hz, CTCSS_136_5Hz, CTCSS_141_3Hz, CTCSS_146_2Hz, CTCSS_151_4Hz,
24  CTCSS_156_7Hz, CTCSS_162_2Hz, CTCSS_167_9Hz, CTCSS_173_8Hz, CTCSS_179_9Hz, CTCSS_186_2Hz,
25  CTCSS_192_8Hz, CTCSS_203_5Hz, CTCSS_210_7Hz, CTCSS_218_1Hz, CTCSS_225_7Hz, CTCSS_233_6Hz,
26  CTCSS_241_8Hz, CTCSS_250_3Hz,
27  DCS_023N, DCS_025N, DCS_026N, DCS_031N, DCS_032N, DCS_036N, DCS_043N, DCS_047N, DCS_051N,
28  DCS_053N, DCS_054N, DCS_071N, DCS_072N, DCS_073N, DCS_074N, DCS_114N, DCS_115N, DCS_116N,
29  DCS_122N, DCS_125N, DCS_131N, DCS_132N, DCS_134N, DCS_143N, DCS_145N, DCS_152N, DCS_155N,
30  DCS_156N, DCS_162N, DCS_165N, DCS_172N, DCS_174N, DCS_205N, DCS_212N, DCS_223N, DCS_225N,
31  DCS_226N, DCS_243N, DCS_244N, DCS_245N, DCS_246N, DCS_251N, DCS_252N, DCS_255N, DCS_261N,
32  DCS_263N, DCS_265N, DCS_266N, DCS_267N, DCS_271N, DCS_274N, DCS_306N, DCS_311N, DCS_315N,
33  DCS_325N, DCS_331N, DCS_332N, DCS_343N, DCS_346N, DCS_351N, DCS_356N, DCS_364N, DCS_365N,
34  DCS_371N, DCS_411N, DCS_412N, DCS_413N, DCS_423N, DCS_431N, DCS_432N, DCS_445N, DCS_446N,
35  DCS_452N, DCS_454N, DCS_455N, DCS_462N, DCS_464N, DCS_465N, DCS_466N, DCS_503N, DCS_506N,
36  DCS_516N, DCS_523N, DCS_526N, DCS_532N, DCS_546N, DCS_565N, DCS_606N, DCS_612N, DCS_624N,
37  DCS_627N, DCS_631N, DCS_632N, DCS_654N, DCS_662N, DCS_664N, DCS_703N, DCS_712N, DCS_723N,
38  DCS_731N, DCS_732N, DCS_734N, DCS_743N, DCS_754N,
39  DCS_023I, DCS_025I, DCS_026I, DCS_031I, DCS_032I, DCS_036I, DCS_043I, DCS_047I, DCS_051I,
40  DCS_053I, DCS_054I, DCS_071I, DCS_072I, DCS_073I, DCS_074I, DCS_114I, DCS_115I, DCS_116I,
41  DCS_122I, DCS_125I, DCS_131I, DCS_132I, DCS_134I, DCS_143I, DCS_145I, DCS_152I, DCS_155I,
42  DCS_156I, DCS_162I, DCS_165I, DCS_172I, DCS_174I, DCS_205I, DCS_212I, DCS_223I, DCS_225I,
43  DCS_226I, DCS_243I, DCS_244I, DCS_245I, DCS_246I, DCS_251I, DCS_252I, DCS_255I, DCS_261I,
44  DCS_263I, DCS_265I, DCS_266I, DCS_267I, DCS_271I, DCS_274I, DCS_306I, DCS_311I, DCS_315I,
45  DCS_325I, DCS_331I, DCS_332I, DCS_343I, DCS_346I, DCS_351I, DCS_356I, DCS_364I, DCS_365I,
46  DCS_371I, DCS_411I, DCS_412I, DCS_413I, DCS_423I, DCS_431I, DCS_432I, DCS_445I, DCS_446I,
47  DCS_452I, DCS_454I, DCS_455I, DCS_462I, DCS_464I, DCS_465I, DCS_466I, DCS_503I, DCS_506I,
48  DCS_516I, DCS_523I, DCS_526I, DCS_532I, DCS_546I, DCS_565I, DCS_606I, DCS_612I, DCS_624I,
49  DCS_627I, DCS_631I, DCS_632I, DCS_654I, DCS_662I, DCS_664I, DCS_703I, DCS_712I, DCS_723I,
50  DCS_731I, DCS_732I, DCS_734I, DCS_743I, DCS_754I
51  };
52  Q_ENUM(Code)
53 
54 
55  static bool isCTCSS(Code code);
57  static bool isCTCSSFrequency(float freq);
61  static float toCTCSSFrequency(Code code);
64  static Code fromCTCSSFrequency(float freq);
65 
67  static bool isDCSNumber(uint16_t num);
69  static bool isDCSNormal(Code code);
71  static bool isDCSInverted(Code code);
73  static bool isDCS(Code code);
75  static uint16_t toDCSNumber(Code code);
79  static Code fromDCSNumber(uint16_t num, bool inverted);
80 
82  static QString codeLabel(Code code);
84  static QString configString(Code code);
85 };
86 
87 #endif // SIGNALING_HH
Contains the enum and utility functions to deal with analog signaling like CTCSS and DCS.
Definition: signaling.hh:11
static float toCTCSSFrequency(Code code)
Maps CTCSS enum to CTCSS frequency.
Definition: signaling.cc:153
static bool isCTCSS(Code code)
Returns true if the given Signaling::Code enum entry refers to a CTCSS frequency.
Definition: signaling.cc:141
static bool isDCS(Code code)
Returns true if the given code is a DSC code (inverted or not).
Definition: signaling.cc:185
static QString codeLabel(Code code)
Maps a Signaling::Code enum element to its text label.
Definition: signaling.cc:209
static QString configString(Code code)
Represents the given signaling code as a string as used in config files.
Definition: signaling.cc:221
static bool isDCSNormal(Code code)
Returns true if the given DCS code is not inverted.
Definition: signaling.cc:175
static bool isCTCSSFrequency(float freq)
Returns true if the given frequency is a valid CTCSS frequency.
Definition: signaling.cc:146
Code
This huge enum lists all possible RX/TX tones that can be associated with analog channels.
Definition: signaling.hh:18
static Code fromCTCSSFrequency(float freq)
Maps a CTCSS frequency to the corresponding Signaling::Code enum element.
Definition: signaling.cc:160
static uint16_t toDCSNumber(Code code)
Maps a DCS Signaling::Code to the corresponding DCS number.
Definition: signaling.cc:190
static bool isDCSNumber(uint16_t num)
Returns true if a valid DCS code number is given.
Definition: signaling.cc:168
static bool isDCSInverted(Code code)
Returns true if the given DCS code is inverted.
Definition: signaling.cc:180
static Code fromDCSNumber(uint16_t num, bool inverted)
Maps a DCS number to the corresponding DCS Signaling::Code enum element.
Definition: signaling.cc:199