MCS: move Coding Scheme enum outside of class definition

Move generic MCS enum to C header file to simplify further modifications
to GprsCodingScheme class in follow-up patches. This also allows us
to use standard libosmocore value_sting functions in upcoming patches
for IA Rest Octet encoding/decoding.

Related: OS#3014
Change-Id: I993b49d9a82b8c7ad677d52d11003794aeabe117
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 0ef3032..7b0052f 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -395,9 +395,9 @@
 			 * transistion is handled.
 			 * Refer commit be881c028fc4da00c4046ecd9296727975c206a3
 			 */
-			if (m_rlc.block(bsn)->cs_init == GprsCodingScheme::MCS8)
+			if (m_rlc.block(bsn)->cs_init == MCS8)
 				m_rlc.block(bsn)->cs_current_trans =
-					GprsCodingScheme::MCS8;
+					MCS8;
 		} else
 			m_rlc.block(bsn)->cs_current_trans =
 					m_rlc.block(bsn)->cs_last;
@@ -701,9 +701,9 @@
 	 * if the intial mcs is 8 and retransmission mcs is either 6 or 3
 	 * we have to include the padding of 6 octets in first segment
 	 */
-	if ((GprsCodingScheme::Scheme(cs_init) == GprsCodingScheme::MCS8) &&
-		(GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS6 ||
-		GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS3)) {
+	if ((CodingScheme(cs_init) == MCS8) &&
+		(CodingScheme(cs) == MCS6 ||
+		CodingScheme(cs) == MCS3)) {
 		if (spb_status == EGPRS_RESEG_DL_DEFAULT ||
 			spb_status == EGPRS_RESEG_SECOND_SEG_SENT)
 			need_padding  = true;
@@ -715,7 +715,7 @@
 		 * Refer commit be881c028fc4da00c4046ecd9296727975c206a3
 		 * dated 2016-02-07 23:45:40 (UTC)
 		 */
-		if (cs != GprsCodingScheme(GprsCodingScheme::MCS8))
+		if (cs != GprsCodingScheme(MCS8))
 			cs.decToSingleBlock(&need_padding);
 	}
 
@@ -1261,19 +1261,19 @@
 	if (cs_current_trans.headerTypeData() ==
 			GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3) {
 		if (*block_status_dl == EGPRS_RESEG_FIRST_SEG_SENT) {
-			switch (GprsCodingScheme::Scheme(cs_init)) {
-			case GprsCodingScheme::MCS6 :
-			case GprsCodingScheme::MCS9 :
+			switch (CodingScheme(cs_init)) {
+			case MCS6 :
+			case MCS9 :
 				*block_data = &rlc_data->block[37];
 				break;
-			case GprsCodingScheme::MCS7 :
-			case GprsCodingScheme::MCS5 :
+			case MCS7 :
+			case MCS5 :
 				*block_data = &rlc_data->block[28];
 				break;
-			case GprsCodingScheme::MCS8 :
+			case MCS8 :
 				*block_data = &rlc_data->block[31];
 				break;
-			case GprsCodingScheme::MCS4 :
+			case MCS4 :
 				*block_data = &rlc_data->block[22];
 				break;
 			default:
@@ -1291,10 +1291,10 @@
 			(cs_init.headerTypeData() ==
 				GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2)) {
 			return EGPRS_RESEG_FIRST_SEG_SENT;
-		} else if ((GprsCodingScheme::Scheme(cs_init) ==
-					GprsCodingScheme::MCS4) &&
-				(GprsCodingScheme::Scheme(cs_current_trans) ==
-					GprsCodingScheme::MCS1)) {
+		} else if ((CodingScheme(cs_init) ==
+					MCS4) &&
+				(CodingScheme(cs_current_trans) ==
+					MCS1)) {
 			return EGPRS_RESEG_FIRST_SEG_SENT;
 		}
 	}
@@ -1343,10 +1343,10 @@
 				GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2)) {
 			bts->spb_downlink_first_segment();
 			return EGPRS_RLCMAC_DL_FIRST_SEG;
-		} else if ((GprsCodingScheme::Scheme(cs_init) ==
-					GprsCodingScheme::MCS4) &&
-				(GprsCodingScheme::Scheme(cs_current_trans) ==
-					GprsCodingScheme::MCS1)) {
+		} else if ((CodingScheme(cs_init) ==
+					MCS4) &&
+				(CodingScheme(cs_current_trans) ==
+					MCS1)) {
 			bts->spb_downlink_first_segment();
 			return EGPRS_RLCMAC_DL_FIRST_SEG;
 		}
@@ -1367,61 +1367,61 @@
 {
 	uint8_t coding_scheme = 0;
 
-	coding_scheme = GprsCodingScheme::Scheme(cs);
+	coding_scheme = CodingScheme(cs);
 	if (cs.isGprs()) {
 		switch (coding_scheme) {
-		case GprsCodingScheme::CS1 :
+		case CS1 :
 			bts->gprs_dl_cs1();
 			rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS1]);
 			break;
-		case GprsCodingScheme::CS2 :
+		case CS2 :
 			bts->gprs_dl_cs2();
 			rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS2]);
 			break;
-		case GprsCodingScheme::CS3 :
+		case CS3 :
 			bts->gprs_dl_cs3();
 			rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS3]);
 			break;
-		case GprsCodingScheme::CS4 :
+		case CS4 :
 			bts->gprs_dl_cs4();
 			rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS4]);
 			break;
 		}
 	} else {
 		switch (coding_scheme) {
-		case GprsCodingScheme::MCS1 :
+		case MCS1 :
 			bts->egprs_dl_mcs1();
 			rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS1]);
 			break;
-		case GprsCodingScheme::MCS2 :
+		case MCS2 :
 			bts->egprs_dl_mcs2();
 			rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS2]);
 			break;
-		case GprsCodingScheme::MCS3 :
+		case MCS3 :
 			bts->egprs_dl_mcs3();
 			rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS3]);
 			break;
-		case GprsCodingScheme::MCS4 :
+		case MCS4 :
 			bts->egprs_dl_mcs4();
 			rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS4]);
 			break;
-		case GprsCodingScheme::MCS5 :
+		case MCS5 :
 			bts->egprs_dl_mcs5();
 			rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS5]);
 			break;
-		case GprsCodingScheme::MCS6 :
+		case MCS6 :
 			bts->egprs_dl_mcs6();
 			rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS6]);
 			break;
-		case GprsCodingScheme::MCS7 :
+		case MCS7 :
 			bts->egprs_dl_mcs7();
 			rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS7]);
 			break;
-		case GprsCodingScheme::MCS8 :
+		case MCS8 :
 			bts->egprs_dl_mcs8();
 			rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS8]);
 			break;
-		case GprsCodingScheme::MCS9 :
+		case MCS9 :
 			bts->egprs_dl_mcs9();
 			rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS9]);
 			break;