Added typical signalization channels (CCCH, BCCH, SDCCH) decoder and demapper for BCCH.
The implementation is quite dirty at this moment.
diff --git a/lib/decoding/cch.h b/lib/decoding/cch.h
new file mode 100644
index 0000000..efd5615
--- /dev/null
+++ b/lib/decoding/cch.h
@@ -0,0 +1,59 @@
+//TODO: this file shouldn't be part of the GSM Receiver
+#ifndef __GSMSTACK_CCH_H__
+#define __GSMSTACK_CCH_H__ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//#include "gsmstack.h"
+
+/*
+ * decode_cch
+ *
+ * 	Decode a "common" control channel.  Most control channels use
+ * 	the same burst, interleave, Viterbi and parity configuration.
+ * 	The documentation for the control channels defines SACCH first
+ * 	and then just keeps referring to that.
+ *
+ * 	The current (investigated) list is as follows:
+ *
+ * 		BCCH Norm
+ * 		BCCH Ext
+ * 		PCH
+ * 		AGCH
+ * 		CBCH (SDCCH/4)
+ * 		CBCH (SDCCH/8)
+ * 		SDCCH/4
+ * 		SACCH/C4
+ * 		SDCCH/8
+ * 		SACCH/C8
+ *
+ * 	We provide two functions, one for where all four bursts are
+ * 	contiguous, and one where they aren't.
+ */
+
+#define DATA_BLOCK_SIZE		184
+#define PARITY_SIZE		40
+#define FLUSH_BITS_SIZE		4
+#define PARITY_OUTPUT_SIZE (DATA_BLOCK_SIZE + PARITY_SIZE + FLUSH_BITS_SIZE)
+
+#define CONV_INPUT_SIZE		PARITY_OUTPUT_SIZE
+#define CONV_SIZE		(2 * CONV_INPUT_SIZE)
+
+#define BLOCKS			4
+#define iBLOCK_SIZE		(CONV_SIZE / BLOCKS)
+#define eBLOCK_SIZE		(iBLOCK_SIZE + 2)
+
+int conv_decode(unsigned char *output, unsigned char *data);
+int parity_check(unsigned char *d);
+//unsigned char *decode_cch(GS_CTX *ctx, unsigned char *burst, unsigned int *len);
+//unsigned char *decode_facch(GS_CTX *ctx, unsigned char *burst, unsigned int *len, int offset);
+//unsigned char *decode_cch(GS_CTX *ctx, unsigned char *, unsigned char *, unsigned char *, unsigned char *, unsigned int *len);
+//unsigned char *decode_cch(GS_CTX *ctx, unsigned char *, unsigned int *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif