from UniTAP.dev.modules.dut_tests.test_group_params_types import Param, param_by_ci_name
from enum import IntEnum


class HdmiTestMode(IntEnum):
    ForceVICoutput = 0
    CTStest = 1


class HdmiFrlRate(IntEnum):
    Mode_Disable = 0
    Mode_3lanes_3gbps = 1
    Mode_3lanes_6gbps = 2
    Mode_4lanes_6gbps = 3
    Mode_4lanes_8gbps = 4
    Mode_4lanes_10gbps = 5
    Mode_4lanes_12gbps = 6


class HdmiAvailableVideoModes:

    def __init__(self, param_1: Param, param_2: Param):
        self.__param_1 = param_1
        self.__param_2 = param_2

    @property
    def T_2560x1080_100hz_vic_91(self) -> bool:
        """
        Set and get state of support timing VIC 91 2560x1080 100Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(0)

    @T_2560x1080_100hz_vic_91.setter
    def T_2560x1080_100hz_vic_91(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=0)

    @property
    def T_2560x1080_120hz_vic_92(self) -> bool:
        """
        Set and get state of support timing VIC 92 2560x1080 120Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(1)

    @T_2560x1080_120hz_vic_92.setter
    def T_2560x1080_120hz_vic_92(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=1)

    @property
    def T_1920x1080_120hz_vic_63(self) -> bool:
        """
        Set and get state of support timing VIC 63 1920x1080 120Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(2)

    @T_1920x1080_120hz_vic_63.setter
    def T_1920x1080_120hz_vic_63(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=2)

    @property
    def T_1920x1080_100hz_vic_64(self) -> bool:
        """
        Set and get state of support timing VIC 64 1920x1080 100Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(3)

    @T_1920x1080_100hz_vic_64.setter
    def T_1920x1080_100hz_vic_64(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=3)

    @property
    def T_1920x1080_100hz_vic_77(self) -> bool:
        """
        Set and get state of support timing VIC 77 1920x1080 100Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(4)

    @T_1920x1080_100hz_vic_77.setter
    def T_1920x1080_100hz_vic_77(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=4)

    @property
    def T_1920x1080_120hz_vic_78(self) -> bool:
        """
        Set and get state of support timing VIC 78 1920x1080 120Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(5)

    @T_1920x1080_120hz_vic_78.setter
    def T_1920x1080_120hz_vic_78(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=5)

    @property
    def T_3840x2160_24hz_vic_93(self) -> bool:
        """
        Set and get state of support timing VIC 93 3840x2160 24Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(6)

    @T_3840x2160_24hz_vic_93.setter
    def T_3840x2160_24hz_vic_93(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=6)

    @property
    def T_3840x2160_25hz_vic_94(self) -> bool:
        """
        Set and get state of support timing VIC 94 3840x2160 25Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(7)

    @T_3840x2160_25hz_vic_94.setter
    def T_3840x2160_25hz_vic_94(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=7)

    @property
    def T_3840x2160_30hz_vic_95(self) -> bool:
        """
        Set and get state of support timing VIC 95 3840x2160 30Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(8)

    @T_3840x2160_30hz_vic_95.setter
    def T_3840x2160_30hz_vic_95(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=8)

    @property
    def T_3840x2160_50hz_vic_96(self) -> bool:
        """
        Set and get state of support timing VIC 96 3840x2160 50Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(9)

    @T_3840x2160_50hz_vic_96.setter
    def T_3840x2160_50hz_vic_96(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=9)

    @property
    def T_3840x2160_60hz_vic_97(self) -> bool:
        """
        Set and get state of support timing VIC 97 3840x2160 60Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(10)

    @T_3840x2160_60hz_vic_97.setter
    def T_3840x2160_60hz_vic_97(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=10)

    @property
    def T_4096x2160_24hz_vic_98(self) -> bool:
        """
        Set and get state of support timing VIC 98 4096x2160 24Hz (256:135).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(11)

    @T_4096x2160_24hz_vic_98.setter
    def T_4096x2160_24hz_vic_98(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=11)

    @property
    def T_4096x2160_25hz_vic_99(self) -> bool:
        """
        Set and get state of support timing VIC 99 4096x2160 25Hz (256:135).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(12)

    @T_4096x2160_25hz_vic_99.setter
    def T_4096x2160_25hz_vic_99(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=12)

    @property
    def T_4096x2160_30hz_vic_100(self) -> bool:
        """
        Set and get state of support timing VIC 100 4096x2160 30Hz (256:135).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(13)

    @T_4096x2160_30hz_vic_100.setter
    def T_4096x2160_30hz_vic_100(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=13)

    @property
    def T_4096x2160_50hz_vic_101(self) -> bool:
        """
        Set and get state of support timing VIC 101 4096x2160 50Hz (256:135).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(14)

    @T_4096x2160_50hz_vic_101.setter
    def T_4096x2160_50hz_vic_101(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=14)

    @property
    def T_4096x2160_60hz_vic_102(self) -> bool:
        """
        Set and get state of support timing VIC 102 4096x2160 60Hz (256:135).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(15)

    @T_4096x2160_60hz_vic_102.setter
    def T_4096x2160_60hz_vic_102(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=15)

    @property
    def T_3840x2160_24hz_vic_103(self) -> bool:
        """
        Set and get state of support timing VIC 103 3840x2160 24Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(16)

    @T_3840x2160_24hz_vic_103.setter
    def T_3840x2160_24hz_vic_103(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=16)

    @property
    def T_3840x2160_25hz_vic_104(self) -> bool:
        """
        Set and get state of support timing VIC 104 3840x2160 25Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(17)

    @T_3840x2160_25hz_vic_104.setter
    def T_3840x2160_25hz_vic_104(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=17)

    @property
    def T_3840x2160_30hz_vic_105(self) -> bool:
        """
        Set and get state of support timing VIC 105 3840x2160 30Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(18)

    @T_3840x2160_30hz_vic_105.setter
    def T_3840x2160_30hz_vic_105(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=18)

    @property
    def T_3840x2160_50hz_vic_106(self) -> bool:
        """
        Set and get state of support timing VIC 106 3840x2160 50Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(19)

    @T_3840x2160_50hz_vic_106.setter
    def T_3840x2160_50hz_vic_106(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=19)

    @property
    def T_3840x2160_60hz_vic_107(self) -> bool:
        """
        Set and get state of support timing VIC 107 3840x2160 60Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(20)

    @T_3840x2160_60hz_vic_107.setter
    def T_3840x2160_60hz_vic_107(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=20)

    @property
    def T_3840x2160_48hz_vic_114(self) -> bool:
        """
        Set and get state of support timing VIC 114 3840x2160 48Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(21)

    @T_3840x2160_48hz_vic_114.setter
    def T_3840x2160_48hz_vic_114(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=21)

    @property
    def T_4096x2160_48hz_vic_115(self) -> bool:
        """
        Set and get state of support timing VIC 115 4096x2160 48Hz (256:135).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(22)

    @T_4096x2160_48hz_vic_115.setter
    def T_4096x2160_48hz_vic_115(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=22)

    @property
    def T_3840x2160_48hz_vic_116(self) -> bool:
        """
        Set and get state of support timing VIC 116 3840x2160 48Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(23)

    @T_3840x2160_48hz_vic_116.setter
    def T_3840x2160_48hz_vic_116(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=23)

    @property
    def T_3840x2160_100hz_vic_117(self) -> bool:
        """
        Set and get state of support timing VIC 117 3840x2160 100Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(24)

    @T_3840x2160_100hz_vic_117.setter
    def T_3840x2160_100hz_vic_117(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=24)

    @property
    def T_3840x2160_120hz_vic_118(self) -> bool:
        """
        Set and get state of support timing VIC 118 3840x2160 120Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(25)

    @T_3840x2160_120hz_vic_118.setter
    def T_3840x2160_120hz_vic_118(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=25)

    @property
    def T_3840x2160_100hz_vic_119(self) -> bool:
        """
        Set and get state of support timing VIC 119 3840x2160 100Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(26)

    @T_3840x2160_100hz_vic_119.setter
    def T_3840x2160_100hz_vic_119(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=26)

    @property
    def T_3840x2160_120hz_vic_120(self) -> bool:
        """
        Set and get state of support timing VIC 120 3840x2160 120Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(27)

    @T_3840x2160_120hz_vic_120.setter
    def T_3840x2160_120hz_vic_120(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=27)

    @property
    def T_5120x2160_24hz_vic_121(self) -> bool:
        """
        Set and get state of support timing VIC 121 5120x2160 24Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(28)

    @T_5120x2160_24hz_vic_121.setter
    def T_5120x2160_24hz_vic_121(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=28)

    @property
    def T_5120x2160_25hz_vic_122(self) -> bool:
        """
        Set and get state of support timing VIC 122 5120x2160 25Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(29)

    @T_5120x2160_25hz_vic_122.setter
    def T_5120x2160_25hz_vic_122(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=29)

    @property
    def T_5120x2160_30hz_vic_123(self) -> bool:
        """
        Set and get state of support timing VIC 123 5120x2160 30Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(30)

    @T_5120x2160_30hz_vic_123.setter
    def T_5120x2160_30hz_vic_123(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=30)

    @property
    def T_5120x2160_48hz_vic_124(self) -> bool:
        """
        Set and get state of support timing VIC 124 5120x2160 48Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_1._get_by_bit_number(31)

    @T_5120x2160_48hz_vic_124.setter
    def T_5120x2160_48hz_vic_124(self, state: bool):
        self.__param_1._set_by_bit_number(state=state, value=1, bit_number=31)

    @property
    def T_5120x2160_50hz_vic_125(self) -> bool:
        """
        Set and get state of support timing VIC 125 5120x2160 50Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(0)

    @T_5120x2160_50hz_vic_125.setter
    def T_5120x2160_50hz_vic_125(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=0)

    @property
    def T_5120x2160_60hz_vic_126(self) -> bool:
        """
        Set and get state of support timing VIC 126 5120x2160 60Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(1)

    @T_5120x2160_60hz_vic_126.setter
    def T_5120x2160_60hz_vic_126(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=1)

    @property
    def T_5120x2160_100hz_vic_127(self) -> bool:
        """
        Set and get state of support timing VIC 127 5120x2160 100Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(2)

    @T_5120x2160_100hz_vic_127.setter
    def T_5120x2160_100hz_vic_127(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=2)

    @property
    def T_5120x2160_120hz_vic_193(self) -> bool:
        """
        Set and get state of support timing VIC 193 5120x2160 120Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(3)

    @T_5120x2160_120hz_vic_193.setter
    def T_5120x2160_120hz_vic_193(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=3)

    @property
    def T_7680x4320_24hz_vic_194(self) -> bool:
        """
        Set and get state of support timing VIC 194 7680x4320 24Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(4)

    @T_7680x4320_24hz_vic_194.setter
    def T_7680x4320_24hz_vic_194(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=4)

    @property
    def T_7680x4320_25hz_vic_195(self) -> bool:
        """
        Set and get state of support timing VIC 195 7680x4320 25Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(5)

    @T_7680x4320_25hz_vic_195.setter
    def T_7680x4320_25hz_vic_195(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=5)

    @property
    def T_7680x4320_30hz_vic_196(self) -> bool:
        """
        Set and get state of support timing VIC 196 7680x4320 30Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(6)

    @T_7680x4320_30hz_vic_196.setter
    def T_7680x4320_30hz_vic_196(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=6)

    @property
    def T_7680x4320_48hz_vic_197(self) -> bool:
        """
        Set and get state of support timing VIC 197 7680x4320 48Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(7)

    @T_7680x4320_48hz_vic_197.setter
    def T_7680x4320_48hz_vic_197(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=7)

    @property
    def T_7680x4320_50hz_vic_198(self) -> bool:
        """
        Set and get state of support timing VIC 198 7680x4320 50Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(8)

    @T_7680x4320_50hz_vic_198.setter
    def T_7680x4320_50hz_vic_198(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=8)

    @property
    def T_7680x4320_60hz_vic_199(self) -> bool:
        """
        Set and get state of support timing VIC 199 7680x4320 60Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(9)

    @T_7680x4320_60hz_vic_199.setter
    def T_7680x4320_60hz_vic_199(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=9)

    @property
    def T_7680x4320_100hz_vic_200(self) -> bool:
        """
        Set and get state of support timing VIC 200 7680x4320 100Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(10)

    @T_7680x4320_100hz_vic_200.setter
    def T_7680x4320_100hz_vic_200(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=10)

    @property
    def T_7680x4320_120hz_vic_201(self) -> bool:
        """
        Set and get state of support timing VIC 201 7680x4320 120Hz (16:9).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(11)

    @T_7680x4320_120hz_vic_201.setter
    def T_7680x4320_120hz_vic_201(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=11)

    @property
    def T_7680x4320_24hz_vic_202(self) -> bool:
        """
        Set and get state of support timing VIC 202 7680x4320 24Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(12)

    @T_7680x4320_24hz_vic_202.setter
    def T_7680x4320_24hz_vic_202(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=12)

    @property
    def T_7680x4320_25hz_vic_203(self) -> bool:
        """
        Set and get state of support timing VIC 203 7680x4320 25Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(13)

    @T_7680x4320_25hz_vic_203.setter
    def T_7680x4320_25hz_vic_203(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=13)

    @property
    def T_7680x4320_30hz_vic_204(self) -> bool:
        """
        Set and get state of support timing VIC 204 7680x4320 30Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(14)

    @T_7680x4320_30hz_vic_204.setter
    def T_7680x4320_30hz_vic_204(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=14)

    @property
    def T_7680x4320_48hz_vic_205(self) -> bool:
        """
        Set and get state of support timing VIC 205 7680x4320 48Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(15)

    @T_7680x4320_48hz_vic_205.setter
    def T_7680x4320_48hz_vic_205(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=15)

    @property
    def T_7680x4320_50hz_vic_206(self) -> bool:
        """
        Set and get state of support timing VIC 206 7680x4320 50Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(16)

    @T_7680x4320_50hz_vic_206.setter
    def T_7680x4320_50hz_vic_206(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=16)

    @property
    def T_7680x4320_60hz_vic_207(self) -> bool:
        """
        Set and get state of support timing VIC 207 7680x4320 60Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(17)

    @T_7680x4320_60hz_vic_207.setter
    def T_7680x4320_60hz_vic_207(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=17)

    @property
    def T_7680x4320_100hz_vic_208(self) -> bool:
        """
        Set and get state of support timing VIC 208 7680x4320 100Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(18)

    @T_7680x4320_100hz_vic_208.setter
    def T_7680x4320_100hz_vic_208(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=18)

    @property
    def T_7680x4320_120hz_vic_209(self) -> bool:
        """
        Set and get state of support timing VIC 209 7680x4320 120Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(19)

    @T_7680x4320_120hz_vic_209.setter
    def T_7680x4320_120hz_vic_209(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=19)

    @property
    def T_10240x4320_24hz_vic_210(self) -> bool:
        """
        Set and get state of support timing VIC 210 10240x4320 24Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(20)

    @T_10240x4320_24hz_vic_210.setter
    def T_10240x4320_24hz_vic_210(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=20)

    @property
    def T_10240x4320_25hz_vic_211(self) -> bool:
        """
        Set and get state of support timing VIC 211 10240x4320 25Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(21)

    @T_10240x4320_25hz_vic_211.setter
    def T_10240x4320_25hz_vic_211(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=21)

    @property
    def T_10240x4320_30hz_vic_212(self) -> bool:
        """
        Set and get state of support timing VIC 212 10240x4320 30Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(22)

    @T_10240x4320_30hz_vic_212.setter
    def T_10240x4320_30hz_vic_212(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=22)

    @property
    def T_10240x4320_48hz_vic_213(self) -> bool:
        """
        Set and get state of support timing VIC 213 10240x4320 48Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(23)

    @T_10240x4320_48hz_vic_213.setter
    def T_10240x4320_48hz_vic_213(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=23)

    @property
    def T_10240x4320_50hz_vic_214(self) -> bool:
        """
        Set and get state of support timing VIC 214 10240x4320 50Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(24)

    @T_10240x4320_50hz_vic_214.setter
    def T_10240x4320_50hz_vic_214(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=24)

    @property
    def T_10240x4320_60hz_vic_215(self) -> bool:
        """
        Set and get state of support timing VIC 215 10240x4320 60Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(25)

    @T_10240x4320_60hz_vic_215.setter
    def T_10240x4320_60hz_vic_215(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=25)

    @property
    def T_10240x4320_100hz_vic_216(self) -> bool:
        """
        Set and get state of support timing VIC 216 10240x4320 10Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(26)

    @T_10240x4320_100hz_vic_216.setter
    def T_10240x4320_100hz_vic_216(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=26)

    @property
    def T_10240x4320_120hz_vic_217(self) -> bool:
        """
        Set and get state of support timing VIC 217 10240x4320 120Hz (64:27).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(27)

    @T_10240x4320_120hz_vic_217.setter
    def T_10240x4320_120hz_vic_217(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=27)

    @property
    def T_4096x2160_100hz_vic_218(self) -> bool:
        """
        Set and get state of support timing VIC 218 4096x2160 100Hz (256:135).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(28)

    @T_4096x2160_100hz_vic_218.setter
    def T_4096x2160_100hz_vic_218(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=28)

    @property
    def T_4096x2160_120hz_vic_219(self) -> bool:
        """
        Set and get state of support timing VIC 219 4096x2160 120Hz (256:135).

        Returns:
            object of bool type
        """
        return self.__param_2._get_by_bit_number(29)

    @T_4096x2160_120hz_vic_219.setter
    def T_4096x2160_120hz_vic_219(self, state: bool):
        self.__param_2._set_by_bit_number(state=state, value=1, bit_number=29)

    def clear_all(self):
        self.__param_1.default_value = 0
        self.__param_2.default_value = 0


class HdmiDutCaps:
    """
    Class `DutCapsDp14` defines the DUT capabilities and allows setting:
    - Set and get state of sink DSC support `is_sink_dsc_support`.
    - Set and get state of sink DSC 10 BPC support `is_sink_dsc_10bpc`.
    - Set and get state of sink DSC 12 BPC support `is_sink_dsc_12bpc`.
    - Set and get state of sink Native 420 support `is_sink_dsc_native_420`.
    - Set and get state of sink Native 420 support `is_sink_dsc_16bpc`.
    - Set and get state of sink Native 420 support `is_sink_dsc_all_bpp`.
    """
    def __init__(self, param: Param):
        self.__value = param

    @property
    def is_sink_dsc_support(self) -> bool:
        """
        Set and get state of SINK DSC support.

        Returns:
            object of bool type
        """
        return self.__value._get_by_bit_number(4)

    @is_sink_dsc_support.setter
    def is_sink_dsc_support(self, state: bool):
        self.__value._set_by_bit_number(state=state, value=1, bit_number=4)

    @property
    def is_sink_dsc_10bpc(self) -> bool:
        """
        Set and get state of SINK DSC 10 bpc support.

        Returns:
            object of bool type
        """
        return self.__value._get_by_bit_number(5)

    @is_sink_dsc_10bpc.setter
    def is_sink_dsc_10bpc(self, state: bool):
        self.__value._set_by_bit_number(state=state, value=1, bit_number=5)

    @property
    def is_sink_dsc_12bpc(self) -> bool:
        """
        Set and get state of SINK DSC 12 bpc support.

        Returns:
            object of bool type
        """
        return self.__value._get_by_bit_number(6)

    @is_sink_dsc_12bpc.setter
    def is_sink_dsc_12bpc(self, state: bool):
        self.__value._set_by_bit_number(state=state, value=1, bit_number=6)

    @property
    def is_sink_dsc_native_420(self) -> bool:
        """
        Set and get state of SINK DSC Native 420 support.

        Returns:
            object of bool type
        """
        return self.__value._get_by_bit_number(7)

    @is_sink_dsc_native_420.setter
    def is_sink_dsc_native_420(self, state: bool):
        self.__value._set_by_bit_number(state=state, value=1, bit_number=7)

    @property
    def is_sink_dsc_16bpc(self) -> bool:
        """
        Set and get state of SINK DSC 16 bpc support.

        Returns:
            object of bool type
        """
        return self.__value._get_by_bit_number(8)

    @is_sink_dsc_16bpc.setter
    def is_sink_dsc_16bpc(self, state: bool):
        self.__value._set_by_bit_number(state=state, value=1, bit_number=8)

    @property
    def is_sink_dsc_all_bpp(self) -> bool:
        """
        Set and get state of SINK DSC all BPP support.

        Returns:
            object of bool type
        """
        return self.__value._get_by_bit_number(9)

    @is_sink_dsc_all_bpp.setter
    def is_sink_dsc_all_bpp(self, state: bool):
        self.__value._set_by_bit_number(state=state, value=1, bit_number=9)

    @property
    def is_sink_ycbcr_support(self) -> bool:
        """
        Set and get state of SINK YCbCr support.

        Returns:
            object of bool type
        """
        return self.__value._get_by_bit_number(10)

    @is_sink_ycbcr_support.setter
    def is_sink_ycbcr_support(self, state: bool):
        self.__value._set_by_bit_number(state=state, value=1, bit_number=10)


class HdmiSinkDUTTestParam:
    """
    Class `HdmiSinkDUTTestParam` allows working with parameters from HDMI DSC source part.
    - Seg and get test mode `test_mode`.
    - Set and get timeout `timeout`.
    - Set and get MAX FRL rate `max_frl_rate` type `HdmiFrlRate`.
    - Set and get MAX TMDS Clock 'max_tmds_clock'.
    - Set and get HDMI DUT Caps 'dut_caps' type 'HdmiDutCaps'.
    - Set and get DSC MAX FRL rate `dsc_max_frl_rate` type `HdmiFrlRate`.
    - Set and get available video modes `video_modes`.
    - Set and get DSC max slice (from 0 to 7) 'dsc_max_slice'.
    - Set and get Total chunk bytes `total_chunk_bytes`.
    """
    def __init__(self, json_obj):
        self.__test_mode = Param(json_obj["TSI_HDMI_SNKCTS_TEST_MODE"])
        self.__timeout = Param(json_obj["TSI_HDMI_SNKCTS_TIMEOUT"])
        self.__max_frl_rate = Param(json_obj["TSI_HDMI_SNKCTS_MAX_FRL_RATE"])
        self.__max_tmds_clock = Param(json_obj["TSI_HDMI_SNKCTS_MAX_TMDS_CLOCK"])
        self.__dut_caps = HdmiDutCaps(Param(json_obj["TSI_HDMI_SNKCTS_DUT_CAPS"]))
        self.__dsc_max_frl_rate = Param(json_obj["TSI_HDMI_SNKCTS_DSC_MAX_FRL_RATE"])
        self.__video_modes = HdmiAvailableVideoModes(Param(json_obj["TSI_HDMI_SNKCTS_DSC_VIDEO_FORMAT"]),
                                                     Param(json_obj["TSI_HDMI_SNKCTS_DSC_VIDEO_FORMAT_2"]))
        self.__dsc_max_slice = Param(json_obj["TSI_HDMI_SNKCTS_DSC_MAX_SLICES"])
        self.__total_chunk_bytes = Param(json_obj["TSI_HDMI_SNKCTS_DSC_TOTAL_CHUNK_BYTES"])

    @property
    def test_mode(self) -> HdmiTestMode:
        """
        Set and get test mode.

        Returns:
            object of `HdmiTestMode` type
        """
        return HdmiTestMode(self.__test_mode.default_value)

    @test_mode.setter
    def test_mode(self, test_mode: HdmiTestMode):
        self.__test_mode.default_value = test_mode.value

    @property
    def timeout(self) -> int:
        """
        Set and get test timeout, in milliseconds.

        Returns:
            object of int type
        """
        return self.__timeout.default_value

    @timeout.setter
    def timeout(self, timeout: int):
        if not(self.__timeout.min_value < timeout < self.__timeout.max_value):
            raise ValueError(f"Timeout cannot be less than {self.__timeout.min_value} and more than "
                             f"{self.__timeout.max_value}.")
        self.__timeout.default_value = timeout

    @property
    def max_frl_rate(self) -> HdmiFrlRate:
        """
        Set and get Max DSC FRL mode.

        Returns:
            object of `HdmiFrlRate` type
        """
        return HdmiFrlRate(self.__max_frl_rate.default_value)

    @max_frl_rate.setter
    def max_frl_rate(self, max_frl_rate: HdmiFrlRate):
        self.__max_frl_rate.default_value = max_frl_rate.value

    @property
    def max_tmds_clock(self) -> int:
        """
        Set and get test MAX TMDS clock, in MHz.

        Returns:
            object of int type
        """
        return self.__max_tmds_clock.default_value

    @max_tmds_clock.setter
    def max_tmds_clock(self, max_tmds_clock: int):
        if not (self.__max_tmds_clock.min_value < max_tmds_clock < self.__max_tmds_clock.max_value):
            raise ValueError(f"MAX TMDS clock cannot be less than {self.__max_tmds_clock.min_value} and more than "
                             f"{self.__max_tmds_clock.max_value}.")
        self.__max_tmds_clock.default_value = max_tmds_clock

    @property
    def dut_caps(self) -> HdmiDutCaps:
        """
        Set and get DUT caps.

        Returns:
            object HdmiDutCaps
        """
        return self.__dut_caps

    @dut_caps.setter
    def dut_caps(self, dut_caps: HdmiDutCaps):
        self.__dut_caps = dut_caps

    @property
    def dsc_max_frl_rate(self) -> HdmiFrlRate:
        """
        Set and get Max DSC FRL mode.

        Returns:
            object of `HdmiFrlRate` type
        """
        return HdmiFrlRate(self.__dsc_max_frl_rate.default_value)

    @dsc_max_frl_rate.setter
    def dsc_max_frl_rate(self, max_dsc_frl_rate: HdmiFrlRate):
        self.__dsc_max_frl_rate.default_value = max_dsc_frl_rate.value

    @property
    def video_modes(self) -> HdmiAvailableVideoModes:
        """
        Set and get supported video modes.

        Returns:
            object `HdmiAvailableVideoModes`
        """
        return self.__video_modes

    @video_modes.setter
    def video_modes(self, video_modes: HdmiAvailableVideoModes):
        self.__video_modes = video_modes

    @property
    def dsc_max_slice(self) -> int:
        """
        Set and get test DSC max slice, in milliseconds.

        Returns:
            object of int type
        """
        return self.__dsc_max_slice.default_value

    @dsc_max_slice.setter
    def dsc_max_slice(self, dsc_max_slice: int):
        if not(self.__dsc_max_slice.min_value < dsc_max_slice < self.__dsc_max_slice.max_value):
            raise ValueError(f"DSC max slice cannot be less than {self.__dsc_max_slice.min_value} and more than "
                             f"{self.__dsc_max_slice.max_value}.")
        self.__dsc_max_slice.default_value = dsc_max_slice

    @property
    def total_chunk_bytes(self) -> int:
        """
        Set and get test Total chunk bytes, in milliseconds.

        Returns:
            object of int type
        """
        return self.__total_chunk_bytes.default_value

    @total_chunk_bytes.setter
    def total_chunk_bytes(self, total_chunk_bytes: int):
        if not(self.__total_chunk_bytes.min_value < total_chunk_bytes < self.__total_chunk_bytes.max_value):
            raise ValueError(f"Total chunk bytes cannot be less than {self.__total_chunk_bytes.min_value} and more than"
                             f" {self.__total_chunk_bytes.max_value}.")
        self.__total_chunk_bytes.default_value = total_chunk_bytes
