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