Changed tch_mode enum to support AMR
diff --git a/grc/decoding/gsm_tch_f_decoder.xml b/grc/decoding/gsm_tch_f_decoder.xml
index b8d6dbf..59ac97d 100644
--- a/grc/decoding/gsm_tch_f_decoder.xml
+++ b/grc/decoding/gsm_tch_f_decoder.xml
@@ -11,11 +11,43 @@
<type>enum</type>
<option>
<name>GSM-FR</name>
- <key>grgsm.MODE_SPEECH_FR</key>
+ <key>grgsm.TCH_FS</key>
</option>
<option>
<name>GSM-EFR</name>
- <key>grgsm.MODE_SPEECH_EFR</key>
+ <key>grgsm.TCH_EFR</key>
+ </option>
+ <option>
+ <name>GSM-AMR 12.2</name>
+ <key>grgsm.TCH_AFS12_2</key>
+ </option>
+ <option>
+ <name>GSM-AMR 10.2</name>
+ <key>grgsm.TCH_AFS10_2</key>
+ </option>
+ <option>
+ <name>GSM-AMR 7.95</name>
+ <key>grgsm.TCH_AFS7_95</key>
+ </option>
+ <option>
+ <name>GSM-AMR 7.4</name>
+ <key>grgsm.TCH_AFS7_4</key>
+ </option>
+ <option>
+ <name>GSM-AMR 6.7</name>
+ <key>grgsm.TCH_AFS6_7</key>
+ </option>
+ <option>
+ <name>GSM-AMR 5.9</name>
+ <key>grgsm.TCH_AFS5_9</key>
+ </option>
+ <option>
+ <name>GSM-AMR 5.15</name>
+ <key>grgsm.TCH_AFS5_15</key>
+ </option>
+ <option>
+ <name>GSM-AMR 4.75</name>
+ <key>grgsm.TCH_AFS4_75</key>
</option>
</param>
<param>
diff --git a/include/grgsm/decoding/tch_f_decoder.h b/include/grgsm/decoding/tch_f_decoder.h
index 42c9107..efe082c 100644
--- a/include/grgsm/decoding/tch_f_decoder.h
+++ b/include/grgsm/decoding/tch_f_decoder.h
@@ -32,8 +32,16 @@
enum tch_mode
{
- MODE_SPEECH_FR,
- MODE_SPEECH_EFR,
+ TCH_AFS12_2,
+ TCH_AFS10_2,
+ TCH_AFS7_95,
+ TCH_AFS7_4,
+ TCH_AFS6_7,
+ TCH_AFS5_9,
+ TCH_AFS5_15,
+ TCH_AFS4_75,
+ TCH_FS,
+ TCH_EFR
};
/*!
diff --git a/lib/decoding/tch_f_decoder_impl.cc b/lib/decoding/tch_f_decoder_impl.cc
index 283e0f0..c8265ea 100644
--- a/lib/decoding/tch_f_decoder_impl.cc
+++ b/lib/decoding/tch_f_decoder_impl.cc
@@ -57,7 +57,7 @@
throw std::runtime_error("TCH/F Decoder: can't open file\n");
}
- if (d_tch_mode == MODE_SPEECH_EFR)
+ if (d_tch_mode != TCH_FS)
{
fwrite(amr_nb_magic, 1, 6, d_speech_file);
}
@@ -196,7 +196,7 @@
unsigned char mTCHFrame[33];
unsigned int mTCHFrameLength;
- if (d_tch_mode == MODE_SPEECH_FR) // GSM-FR
+ if (d_tch_mode == TCH_FS) // GSM-FR
{
// Undo Um's importance-sorted bit ordering.
// See GSM 05.03 3.1 and Tablee 2.
@@ -207,7 +207,7 @@
mVFrame.pack(mTCHFrame);
mTCHFrameLength = 33;
}
- else if (d_tch_mode == MODE_SPEECH_EFR) // GSM-EFR / AMR 12.2
+ else if (d_tch_mode == TCH_EFR) // GSM-EFR / AMR 12.2
{
VocoderAMRFrame mVFrameAMR;