aboutsummaryrefslogtreecommitdiffstats
path: root/op25/gr-op25_repeater/lib/nxdn_const.h
diff options
context:
space:
mode:
Diffstat (limited to 'op25/gr-op25_repeater/lib/nxdn_const.h')
-rw-r--r--op25/gr-op25_repeater/lib/nxdn_const.h98
1 files changed, 98 insertions, 0 deletions
diff --git a/op25/gr-op25_repeater/lib/nxdn_const.h b/op25/gr-op25_repeater/lib/nxdn_const.h
new file mode 100644
index 0000000..3452410
--- /dev/null
+++ b/op25/gr-op25_repeater/lib/nxdn_const.h
@@ -0,0 +1,98 @@
+//
+// NXDN Encoder (C) Copyright 2019 Max H. Parke KA1RBI
+// thx gr-ysf fr_vch_decoder_bb_impl.cc * Copyright 2015 Mathias Weyland *
+//
+// This file is part of OP25
+//
+// OP25 is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// OP25 is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+// License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with OP25; see the file COPYING. If not, write to the Free
+// Software Foundation, Inc., 51 Franklin Street, Boston, MA
+// 02110-1301, USA.
+
+#ifndef INCLUDED_NXDN_CONST_H
+#define INCLUDED_NXDN_CONST_H
+
+#include <stdint.h>
+
+/* postamble + frame sync (FS) */
+static const uint64_t NXDN_POSTFS_SYNC_MAGIC = 0x5775fdcdf59LL;
+/* frame sync + scrambled rendition of LICH=0x6e (a halfrate voice 4V) */
+static const uint64_t NXDN_CONV_SYNC_MAGIC = 0xcdf59d5dfLL;
+static const uint64_t NXDN_FS6E_SYNC_MAGIC = 0xcdf5975d7LL;
+static const uint64_t NXDN_SYNC_MAGIC = 0xcdf59LL;
+
+static const uint8_t PERM_12_5[] = {
+ 0,12,24,36,48,
+ 1,13,25,37,49,
+ 2,14,26,38,50,
+ 3,15,27,39,51,
+ 4,16,28,40,52,
+ 5,17,29,41,53,
+ 6,18,30,42,54,
+ 7,19,31,43,55,
+ 8,20,32,44,56,
+ 9,21,33,45,57,
+ 10,22,34,46,58,
+ 11,23,35,47,59
+};
+
+static const uint8_t PERM_16_9[] = {
+ 0, 16, 32, 48, 64, 80, 96, 112, 128,
+ 1, 17, 33, 49, 65, 81, 97, 113, 129,
+ 2, 18, 34, 50, 66, 82, 98, 114, 130,
+ 3, 19, 35, 51, 67, 83, 99, 115, 131,
+ 4, 20, 36, 52, 68, 84, 100, 116, 132,
+ 5, 21, 37, 53, 69, 85, 101, 117, 133,
+ 6, 22, 38, 54, 70, 86, 102, 118, 134,
+ 7, 23, 39, 55, 71, 87, 103, 119, 135,
+ 8, 24, 40, 56, 72, 88, 104, 120, 136,
+ 9, 25, 41, 57, 73, 89, 105, 121, 137,
+ 10, 26, 42, 58, 74, 90, 106, 122, 138,
+ 11, 27, 43, 59, 75, 91, 107, 123, 139,
+ 12, 28, 44, 60, 76, 92, 108, 124, 140,
+ 13, 29, 45, 61, 77, 93, 109, 125, 141,
+ 14, 30, 46, 62, 78, 94, 110, 126, 142,
+ 15, 31, 47, 63, 79, 95, 111, 127, 143
+};
+
+static const uint16_t PERM_12_25[] = {
+ 0,12,24,36,48,60,72,84,96,108,120,132,144,156,168,180,192,204,216,228,240,252,264,276,288,
+ 1,13,25,37,49,61,73,85,97,109,121,133,145,157,169,181,193,205,217,229,241,253,265,277,289,
+ 2,14,26,38,50,62,74,86,98,110,122,134,146,158,170,182,194,206,218,230,242,254,266,278,290,
+ 3,15,27,39,51,63,75,87,99,111,123,135,147,159,171,183,195,207,219,231,243,255,267,279,291,
+ 4,16,28,40,52,64,76,88,100,112,124,136,148,160,172,184,196,208,220,232,244,256,268,280,292,
+ 5,17,29,41,53,65,77,89,101,113,125,137,149,161,173,185,197,209,221,233,245,257,269,281,293,
+ 6,18,30,42,54,66,78,90,102,114,126,138,150,162,174,186,198,210,222,234,246,258,270,282,294,
+ 7,19,31,43,55,67,79,91,103,115,127,139,151,163,175,187,199,211,223,235,247,259,271,283,295,
+ 8,20,32,44,56,68,80,92,104,116,128,140,152,164,176,188,200,212,224,236,248,260,272,284,296,
+ 9,21,33,45,57,69,81,93,105,117,129,141,153,165,177,189,201,213,225,237,249,261,273,285,297,
+ 10,22,34,46,58,70,82,94,106,118,130,142,154,166,178,190,202,214,226,238,250,262,274,286,298,
+ 11,23,35,47,59,71,83,95,107,119,131,143,155,167,179,191,203,215,227,239,251,263,275,287,299
+};
+
+static const uint16_t PERM_12_29[] = {
+ 0,12,24,36,48,60,72,84,96,108,120,132,144,156,168,180,192,204,216,228,240,252,264,276,288,300,312,324,336,
+ 1,13,25,37,49,61,73,85,97,109,121,133,145,157,169,181,193,205,217,229,241,253,265,277,289,301,313,325,337,
+ 2,14,26,38,50,62,74,86,98,110,122,134,146,158,170,182,194,206,218,230,242,254,266,278,290,302,314,326,338,
+ 3,15,27,39,51,63,75,87,99,111,123,135,147,159,171,183,195,207,219,231,243,255,267,279,291,303,315,327,339,
+ 4,16,28,40,52,64,76,88,100,112,124,136,148,160,172,184,196,208,220,232,244,256,268,280,292,304,316,328,340,
+ 5,17,29,41,53,65,77,89,101,113,125,137,149,161,173,185,197,209,221,233,245,257,269,281,293,305,317,329,341,
+ 6,18,30,42,54,66,78,90,102,114,126,138,150,162,174,186,198,210,222,234,246,258,270,282,294,306,318,330,342,
+ 7,19,31,43,55,67,79,91,103,115,127,139,151,163,175,187,199,211,223,235,247,259,271,283,295,307,319,331,343,
+ 8,20,32,44,56,68,80,92,104,116,128,140,152,164,176,188,200,212,224,236,248,260,272,284,296,308,320,332,344,
+ 9,21,33,45,57,69,81,93,105,117,129,141,153,165,177,189,201,213,225,237,249,261,273,285,297,309,321,333,345,
+ 10,22,34,46,58,70,82,94,106,118,130,142,154,166,178,190,202,214,226,238,250,262,274,286,298,310,322,334,346,
+ 11,23,35,47,59,71,83,95,107,119,131,143,155,167,179,191,203,215,227,239,251,263,275,287,299,311,323,335,347
+};
+
+#endif /* INCLUDED_NXDN_CONST_H */