1 /*========================== begin_copyright_notice ============================ 2 3 Copyright (C) 2017-2021 Intel Corporation 4 5 SPDX-License-Identifier: MIT 6 7 ============================= end_copyright_notice ===========================*/ 8 9 #ifndef GED_POSITION_INTERPRETER_H 10 #define GED_POSITION_INTERPRETER_H 11 12 #include "common/ged_ins_decoding_table.h" 13 #include "xcoder/ged_ins.h" 14 15 16 class GEDInterpreter 17 { 18 public: 19 // STATIC FUNCTIONS 20 InterpretPositionRaw(uint32_t value,const uint32_t interpId,const uint8_t modelId,GED_RETURN_VALUE & ret)21 inline static uint32_t InterpretPositionRaw(uint32_t value, /* GED_PSEUDO_FIELD */ const uint32_t interpId, 22 const /* GED_MODEL */ uint8_t modelId, GED_RETURN_VALUE& ret) 23 { return InterpretPositionInternal(value, interpId, modelId, GED_VALUE_TYPE_ENCODED, ret); } 24 25 InterpretPosition(uint32_t value,const uint32_t interpId,const uint8_t modelId,GED_RETURN_VALUE & ret)26 inline static uint32_t InterpretPosition(uint32_t value, /* GED_PSEUDO_FIELD */ const uint32_t interpId, 27 const /* GED_MODEL */ uint8_t modelId, GED_RETURN_VALUE& ret) 28 { return InterpretPositionInternal(value, interpId, modelId, GED_VALUE_TYPE_PROCESSED, ret); } 29 30 31 static uint32_t ReinterpretEnum(uint32_t value, /* GED_REINTERPRETED_ENUM */ const uint32_t interpId, 32 const /* GED_MODEL */ uint8_t modelId, GED_RETURN_VALUE& ret); 33 34 35 static uint32_t CollectFields(GEDIns& ins, /* GED_COLLECTOR */ const uint32_t interpId, GED_RETURN_VALUE& ret); 36 37 SetInterpretedPosition(uint32_t & writeTo,const uint32_t interpId,const uint8_t modelId,uint32_t valueToWrite)38 inline static GED_RETURN_VALUE SetInterpretedPosition(uint32_t& writeTo, /* GED_PSEUDO_FIELD */ const uint32_t interpId, 39 const /* GED_MODEL */ uint8_t modelId, uint32_t valueToWrite) 40 { 41 return SetInterpretedPositionInternal(writeTo, interpId, modelId, GED_VALUE_TYPE_PROCESSED, valueToWrite); 42 } 43 44 private: 45 // PRIVATE MEMBER FUNCTIONS 46 47 static uint32_t InterpretPositionInternal(uint32_t value, /* GED_PSEUDO_FIELD */ const uint32_t interpId, 48 const /* GED_MODEL */ uint8_t modelId, const GED_VALUE_TYPE valueType, 49 GED_RETURN_VALUE& ret); 50 51 static GED_RETURN_VALUE SetInterpretedPositionInternal(uint32_t& writeTo, /* GED_PSEUDO_FIELD */ const uint32_t interpId, 52 const /* GED_MODEL */ uint8_t modelId, const GED_VALUE_TYPE valueType, 53 uint32_t valueToWrite); 54 }; 55 56 #endif // GED_POSITION_INTERPRETER_H 57