aboutsummaryrefslogtreecommitdiffstats
path: root/src/fig/FIG0_8.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/fig/FIG0_8.cpp')
-rw-r--r--src/fig/FIG0_8.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/fig/FIG0_8.cpp b/src/fig/FIG0_8.cpp
index 2d25547..8d69a1d 100644
--- a/src/fig/FIG0_8.cpp
+++ b/src/fig/FIG0_8.cpp
@@ -23,11 +23,40 @@
along with ODR-DabMux. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "fig/FIG0structs.h"
#include "fig/FIG0_8.h"
#include "utils.h"
namespace FIC {
+struct FIGtype0_8_short {
+ uint8_t SCIdS:4;
+ uint8_t rfa_1:3;
+ uint8_t ext:1;
+ uint8_t Id:6;
+ uint8_t MscFic:1;
+ uint8_t LS:1;
+ uint8_t rfa_2;
+} PACKED;
+
+struct FIGtype0_8_long {
+ uint8_t SCIdS:4;
+ uint8_t rfa_1:3;
+ uint8_t ext:1;
+ uint8_t SCId_high:4;
+ uint8_t rfa:3;
+ uint8_t LS:1;
+ uint8_t SCId_low;
+ uint8_t rfa_2;
+ void setSCId(uint16_t id) {
+ SCId_high = id >> 8;
+ SCId_low = id & 0xff;
+ }
+ uint16_t getSCid() {
+ return (SCId_high << 8) | SCId_low;
+ }
+} PACKED;
+
FIG0_8::FIG0_8(FIGRuntimeInformation *rti) :
m_rti(rti),
m_initialised(false),