<!--
根节点为Project。Project包含三个属性:
name 		- 	project name
endian 	- 	大小端

Project中含有Block。Block包含两个属性：
id			-	block id
name	-	block name

Block中含有elem。elem包含五个属性：
name			-	element name，将被展现在界面上的名称
offset			-	element据上一个element的偏移，如果该element为第一个，那么就是据block起始位置的偏移
size				-	element的size
type			-   element展现在界面上的视觉效果

element可以包含子element来表示C语言中的结构体。
-->

<Project name="Geini_VT6K">
	<!--Big-->
	<Block id="0x98" name="system parameter">
		<elem name="sw_version" abs_offset="20" size="4" type="Integer" min="0" max="1000" step="1"/>
		<elem name="osd_text" abs_offset="25" size="1" type="ComboBox">
			<opt value="0" name="English"/>
			<opt value="1" name="Russian"/>
			<opt value="2" name="Thai"/>
			<opt value="3" name="Vienamese"/>
			<opt value="4" name="Burmese"/>
			<opt value="5" name="Farsi"/>
			<opt value="6" name="Georgian"/>
		</elem>
		<elem name="first_audio" abs_offset="26" size="1" type="ComboBox">
			<opt value="0" name="English"/>
			<opt value="1" name="Russian"/>
			<opt value="2" name="Thai"/>
			<opt value="3" name="Vienamese"/>
			<opt value="4" name="Burmese"/>
			<opt value="5" name="Farsi"/>
			<opt value="6" name="Georgian"/>
		</elem>
		<elem name="second_audio" abs_offset="27" size="1" type="ComboBox">
			<opt value="0" name="English"/>
			<opt value="1" name="Russian"/>
			<opt value="2" name="Thai"/>
			<opt value="3" name="Vienamese"/>
			<opt value="4" name="Burmese"/>
			<opt value="5" name="Farsi"/>
			<opt value="6" name="Georgian"/>
		</elem>
		<elem name="teletext" abs_offset="28" size="1" type="ComboBox">
			<opt value="0" name="English"/>
			<opt value="1" name="Russian"/>
			<opt value="2" name="Thai"/>
			<opt value="3" name="Vienamese"/>
			<opt value="4" name="Burmese"/>
			<opt value="5" name="Farsi"/>
			<opt value="6" name="Georgian"/>
		</elem>
		<elem name="subtitle" abs_offset="29" size="1" type="ComboBox">
			<opt value="0" name="English"/>
			<opt value="1" name="Russian"/>
			<opt value="2" name="Thai"/>
			<opt value="3" name="Vienamese"/>
			<opt value="4" name="Burmese"/>
			<opt value="5" name="Farsi"/>
			<opt value="6" name="Georgian"/>
		</elem>
		<elem name="video_text_encode" abs_offset="30" size="1" type="ComboBox">
			<opt value="0" name="unicode"/>
			<opt value="1" name="gb2312"/>
			<opt value="2" name="ascii"/>
			<opt value="3" name="utf8"/>
			<opt value="4" name="cp1256"/>
			<opt value="5" name="8859-9"/>
		</elem>
		<elem name="audio_text_encode" abs_offset="31" size="1" type="ComboBox">
			<opt value="0" name="unicode"/>
			<opt value="1" name="gb2312"/>
			<opt value="2" name="ascii"/>
			<opt value="3" name="utf8"/>
			<opt value="4" name="cp1256"/>
			<opt value="5" name="8859-9"/>
		</elem>
		<!-- AV Settings -->
		<elem name="tv_mode" abs_offset="32" size="1" type="ComboBox">
			<opt value="0" name="PAL"/>
			<opt value="1" name="NTSC"/>
			<opt value="2" name="AUTO"/>
		</elem>
		<elem name="tv_resolution" abs_offset="33" size="1" type="ComboBox">
			<opt value="0" name="576I/480I"/>
			<opt value="1" name="576P/480P"/>
			<opt value="2" name="720P"/>
			<opt value="3" name="1080I"/>
			<opt value="4" name="1080P"/>
		</elem>
		<elem name="tv_ratio" abs_offset="34" size="1" type="ComboBox">
			<opt value="0" name="AUTO"/>
			<opt value="1" name="4:3LetterBox"/>
			<opt value="2" name="4:3PanScan"/>
			<opt value="3" name="16:9"/>
		</elem>
		<elem name="video_output" abs_offset="35" size="1" type="ComboBox">
			<opt value="0" name="CVBS"/>
			<opt value="1" name="RGB"/>
		</elem>
		<elem name="audio_out" abs_offset="36" size="1" type="ComboBox">
			<opt value="0" name="LPCM"/>
			<opt value="1" name="BS"/>
		</elem>
		<!-- skip rf_system, rf_channel -->
		<elem name="video_effect" abs_offset="39" size="1" type="ComboBox">
			<opt value="0" name="Standard"/>
			<opt value="1" name="Default"/>
			<opt value="2" name="Vivid"/>
		</elem>
		<elem name="bitfield_1" abs_offset="40" size="1" type="Bitfield">
			<bit_elem name="audio_amplifier_onoff" bit_abs_offset="0" bit_size="4" type="ComboBox">
				<opt value="0" name="OFF"/>
				<opt value="1" name="ON"/> 
			</bit_elem>
			<bit_elem name="audio_description_onoff" bit_abs_offset="4" bit_size="4" type="Integer"/>
		</elem>
		<!-- skip audio_amplifier_onoff,audio_description_onoff,ad_volume_offset, 2 bytes -->

		<!-- play set -->
		<elem name="play_type" abs_offset="42" size="1" type="ComboBox">
			<opt value="0" name="All"/>
			<opt value="1" name="Free"/>
			<opt value="2" name="Scramble"/>
		</elem>
		<elem name="play_mode" abs_offset="43" size="1" type="ComboBox">
			<opt value="0" name="Freeze"/>
			<opt value="1" name="BlackScreen"/>
		</elem>

		<!-- osd set, abs_offset: 44 -->
		<!-- skip palette, 1 byte-->
		<elem name="transparent" abs_offset="45" size="1" type="Integer" min="0" max="40" step="10"/>
		<elem name="timeout" abs_offset="46" size="1" type="Integer" min="3" max="10" step="1"/>
		<elem name="enable_teltext" abs_offset="47" size="1" type="ComboBox">
			<opt value="0" name="OFF"/>
			<opt value="1" name="ON"/>
		</elem>
		<elem name="enable_subtitle" abs_offset="48" size="1" type="ComboBox">
			<opt value="0" name="OFF"/>
			<opt value="1" name="ON"/>
		</elem>
		<!-- skip enable_vbinserter, 1 byte-->

		<!-- time_set, abs_offset: 68 -->
		<elem name="time_set" abs_offset="68" size="10" type="Bitfield">
			<bit_elem name="gmt_usage" bit_abs_offset="64" bit_size="1" type="ComboBox">
				<opt value="0" name="OFF"/>
				<opt value="1" name="ON"/>
			</bit_elem>
			<bit_elem name="gmt_offset" bit_abs_offset="65" bit_size="6" type="ComboBox">
				<opt value="0" name="UTC - 11:30"/>
				<opt value="1" name="UTC - 11:00"/>
				<opt value="2" name="UTC - 10:30"/>
				<opt value="3" name="UTC - 10:00"/>
				<opt value="4" name="UTC - 09:30"/>
				<opt value="5" name="UTC - 09:00"/>
				<opt value="6" name="UTC - 08:30"/>
				<opt value="7" name="UTC - 08:00"/>
				<opt value="8" name="UTC - 07:30"/>
				<opt value="9" name="UTC - 07:00"/>
				<opt value="10" name="UTC - 06:30"/>
				<opt value="11" name="UTC - 06:00"/>
				<opt value="12" name="UTC - 05:30"/>
				<opt value="13" name="UTC - 05:00"/>
				<opt value="14" name="UTC - 04:30"/>
				<opt value="15" name="UTC - 04:00"/>
				<opt value="16" name="UTC - 03:30"/>
				<opt value="17" name="UTC - 03:00"/>
				<opt value="18" name="UTC - 02:30"/>
				<opt value="19" name="UTC - 02:00"/>
				<opt value="20" name="UTC - 01:30"/>
				<opt value="21" name="UTC - 01:00"/>
				<opt value="22" name="UTC - 00:30"/>
				<opt value="23" name="UTC + 00:00"/>
				<opt value="24" name="UTC + 00:30"/>
				<opt value="25" name="UTC + 01:00"/>
				<opt value="26" name="UTC + 01:30"/>
				<opt value="27" name="UTC + 02:00"/>
				<opt value="28" name="UTC + 02:30"/>
				<opt value="29" name="UTC + 03:00"/>
				<opt value="30" name="UTC + 03:30"/>
				<opt value="31" name="UTC + 04:00"/>
				<opt value="32" name="UTC + 04:30"/>
				<opt value="33" name="UTC + 05:00"/>
				<opt value="34" name="UTC + 05:30"/>
				<opt value="35" name="UTC + 06:00"/>
				<opt value="36" name="UTC + 06:30"/>
				<opt value="37" name="UTC + 07:00"/>
				<opt value="38" name="UTC + 07:30"/>
				<opt value="39" name="UTC + 08:00"/>
				<opt value="40" name="UTC + 08:30"/>
				<opt value="41" name="UTC + 09:00"/>
				<opt value="42" name="UTC + 09:30"/>
				<opt value="43" name="UTC + 10:00"/>
				<opt value="44" name="UTC + 10:30"/>
				<opt value="45" name="UTC + 11:00"/>
				<opt value="46" name="UTC + 11:30"/>
				<opt value="47" name="UTC + 12:00"/>
			</bit_elem>
			<bit_elem name="summer_time" bit_abs_offset="71" bit_size="1" type="ComboBox">
				<opt value="0" name="OFF"/>
				<opt value="1" name="ON"/>
			</bit_elem>
		</elem>

		<!-- bit_status, abs_offset: 1900 -->
		<elem name="bit_status" abs_offset="1900" size="4" type="Bitfield">
			<bit_elem name="lnb_power" bit_abs_offset="0" bit_size="1" type="ComboBox">
				<opt value="0" name="OFF"/>
				<opt value="1" name="ON"/> 
			</bit_elem>
			<bit_elem name="menu_lock" bit_abs_offset="3" bit_size="1" type="ComboBox">
				<opt value="0" name="OFF"/>
				<opt value="1" name="ON"/> 
			</bit_elem>
			<bit_elem name="program_lock" bit_abs_offset="4" bit_size="1" type="ComboBox">
				<opt value="0" name="OFF"/>
				<opt value="1" name="ON"/> 
			</bit_elem>
			<bit_elem name="is_scart_out" bit_abs_offset="10" bit_size="1" type="ComboBox">
				<opt value="0" name="no"/>
				<opt value="1" name="yes"/> 
			</bit_elem>
			<bit_elem name="avsync_mode" bit_abs_offset="13" bit_size="1" type="ComboBox">
				<opt value="0" name="pause_sync"/>
				<opt value="1" name="no_pause_sync"/> 
			</bit_elem>
			<bit_elem name="satellite_auto_ota_enable" bit_abs_offset="14" bit_size="1" type="ComboBox">
				<opt value="0" name="Disabled"/>
				<opt value="1" name="Enabled"/>
			</bit_elem>
			<bit_elem name="terrestial_auto_ota_enable" bit_abs_offset="15" bit_size="1" type="ComboBox">
				<opt value="0" name="Disabled"/>
				<opt value="1" name="Enabled"/> 
			</bit_elem>
			<bit_elem name="switch_pg_confirm" bit_abs_offset="16" bit_size="1" type="ComboBox">
				<opt value="0" name="OFF"/>
				<opt value="1" name="ON"/> 
			</bit_elem>
		</elem>
	</Block>

	<Block id="0xB4" name="STB information">
		<elem name="OUI" abs_offset="80" size = "4" type="Integer" />
		<elem name="HW_MOD" abs_offset="86" size = "2" type="Integer" />
		<elem name="HW_VER" abs_offset="90" size = "2" type="Integer" />
		<elem name="SW_VER" abs_offset="92" size = "2" type="Integer" />
	</Block>

	<Block id="0xB0" name="FrontPanel key">
		<elem name="V_KEY_POWER" abs_offset="0" size = "1" type="Hex" />
		<elem name="V_KEY_UP" abs_offset="1" size = "1" type="Hex" />
		<elem name="V_KEY_DOWN" abs_offset="2" size = "1" type="Hex" />
		<elem name="V_KEY_LEFT" abs_offset="3" size = "1" type="Hex" />
		<elem name="V_KEY_RIGHT" abs_offset="4" size = "1" type="Hex" />
		<elem name="V_KEY_OK" abs_offset="5" size = "1" type="Hex" />
		<elem name="V_KEY_MENU" abs_offset="6" size = "1" type="Hex" />
		<elem name="V_KEY_VUP" abs_offset="7" size = "1" type="Hex" />
		<elem name="V_KEY_VDOWN" abs_offset="8" size = "1" type="Hex" />
	</Block>

	<Block id="0xAF" name="remote control 1">
		<elem name="V_KEY_POWER" abs_offset="0" size = "1" type="Integer" />
		<elem name="V_KEY_TVAV" abs_offset="1" size = "1" type="Integer" />
		<elem name="V_KEY_MUTE" abs_offset="2" size = "1" type="Integer" />
		<elem name="V_KEY_ASPECT_MODE" abs_offset="3" size = "1" type="Integer" />
		<elem name="V_KEY_USB" abs_offset="4" size = "1" type="Integer" />
		<elem name="V_KEY_VIDEO_MODE" abs_offset="5" size = "1" type="Integer" />
		<elem name="V_KEY_AUDIO" abs_offset="6" size = "1" type="Integer" />
		<elem name="V_KEY_1" abs_offset="7" size = "1" type="Integer" />
		<elem name="V_KEY_2" abs_offset="8" size = "1" type="Integer" />
		<elem name="V_KEY_3" abs_offset="9" size = "1" type="Integer" />
		<elem name="V_KEY_4" abs_offset="10" size = "1" type="Integer" />
		<elem name="V_KEY_5" abs_offset="11" size = "1" type="Integer" />
		<elem name="V_KEY_6" abs_offset="12" size = "1" type="Integer" />
		<elem name="V_KEY_7" abs_offset="13" size = "1" type="Integer" />
		<elem name="V_KEY_8" abs_offset="14" size = "1" type="Integer" />
		<elem name="V_KEY_9" abs_offset="15" size = "1" type="Integer" />
		<elem name="V_KEY_0" abs_offset="16" size = "1" type="Integer" />
		<elem name="V_KEY_SUBT" abs_offset="17" size = "1" type="Integer" />
		<elem name="V_KEY_TTX" abs_offset="18" size = "1" type="Integer" />
		<elem name="V_KEY_PAGE_UP" abs_offset="19" size = "1" type="Integer" />
		<elem name="V_KEY_PAGE_DOWN" abs_offset="20" size = "1" type="Integer" />
		<elem name="V_KEY_RECALL" abs_offset="21" size = "1" type="Integer" />
		<elem name="V_KEY_TVRADIO" abs_offset="22" size = "1" type="Integer" />
		<elem name="V_KEY_MENU" abs_offset="23" size = "1" type="Integer" />
		<elem name="V_KEY_CANCEL" abs_offset="24" size = "1" type="Integer" />
		<elem name="V_KEY_UP" abs_offset="25" size = "1" type="Integer" />
		<elem name="V_KEY_DOWN" abs_offset="26" size = "1" type="Integer" />
		<elem name="V_KEY_LEFT" abs_offset="27" size = "1" type="Integer" />
		<elem name="V_KEY_RIGHT" abs_offset="28" size = "1" type="Integer" />
		<elem name="V_KEY_OK" abs_offset="29" size = "1" type="Integer" />
		<elem name="V_KEY_FAV" abs_offset="30" size = "1" type="Integer" />
		<elem name="V_KEY_EPG" abs_offset="31" size = "1" type="Integer" />
		<elem name="V_KEY_INFO" abs_offset="32" size = "1" type="Integer" />
		<elem name="V_KEY_SAT" abs_offset="33" size = "1" type="Integer" />
		<elem name="V_KEY_RED" abs_offset="34" size = "1" type="Integer" />
		<elem name="V_KEY_GREEN" abs_offset="35" size = "1" type="Integer" />
		<elem name="V_KEY_YELLOW" abs_offset="36" size = "1" type="Integer" />
		<elem name="V_KEY_BLUE" abs_offset="37" size = "1" type="Integer" />
		<elem name="V_KEY_FIND" abs_offset="38" size = "1" type="Integer" />
		<elem name="V_KEY_ZOOM" abs_offset="39" size = "1" type="Integer" />
		<elem name="V_KEY_VUP" abs_offset="40" size = "1" type="Integer" />
		<elem name="V_KEY_VDOWN" abs_offset="41" size = "1" type="Integer" />
		<elem name="V_KEY_BACK" abs_offset="42" size = "1" type="Integer" />
		<elem name="V_KEY_FORW" abs_offset="43" size = "1" type="Integer" />
		<elem name="V_KEY_PAUSE" abs_offset="44" size = "1" type="Integer" />
		<elem name="V_KEY_STOP" abs_offset="45" size = "1" type="Integer" />
		<elem name="V_KEY_REVSLOW" abs_offset="46" size = "1" type="Integer" />
		<elem name="V_KEY_SLOW" abs_offset="47" size = "1" type="Integer" />
		<elem name="V_KEY_PLAY" abs_offset="48" size = "1" type="Integer" />
		<elem name="V_KEY_REC" abs_offset="49" size = "1" type="Integer" />
		<elem name="V_KEY_PREV" abs_offset="50" size = "1" type="Integer" />
		<elem name="V_KEY_NEXT" abs_offset="51" size = "1" type="Integer" />
		<elem name="V_KEY_REPEAT" abs_offset="52" size = "1" type="Integer" />
		<elem name="V_KEY_LIST" abs_offset="53" size = "1" type="Integer" />
		<elem name="V_KEY_GOTO" abs_offset="54" size = "1" type="Integer" />
		<elem name="V_KEY_SLOW" abs_offset="55" size = "1" type="Integer" />
		<elem name="UserCode " abs_offset="56" size = "2" type="Integer" />
	</Block>

	<Block id="0xB1" name="remote control 2">
		<elem name="V_KEY_POWER" abs_offset="0" size = "1" type="Integer" />
		<elem name="V_KEY_TVAV" abs_offset="1" size = "1" type="Integer" />
		<elem name="V_KEY_MUTE" abs_offset="2" size = "1" type="Integer" />
		<elem name="V_KEY_ASPECT_MODE" abs_offset="3" size = "1" type="Integer" />
		<elem name="V_KEY_USB" abs_offset="4" size = "1" type="Integer" />
		<elem name="V_KEY_VIDEO_MODE" abs_offset="5" size = "1" type="Integer" />
		<elem name="V_KEY_AUDIO" abs_offset="6" size = "1" type="Integer" />
		<elem name="V_KEY_1" abs_offset="7" size = "1" type="Integer" />
		<elem name="V_KEY_2" abs_offset="8" size = "1" type="Integer" />
		<elem name="V_KEY_3" abs_offset="9" size = "1" type="Integer" />
		<elem name="V_KEY_4" abs_offset="10" size = "1" type="Integer" />
		<elem name="V_KEY_5" abs_offset="11" size = "1" type="Integer" />
		<elem name="V_KEY_6" abs_offset="12" size = "1" type="Integer" />
		<elem name="V_KEY_7" abs_offset="13" size = "1" type="Integer" />
		<elem name="V_KEY_8" abs_offset="14" size = "1" type="Integer" />
		<elem name="V_KEY_9" abs_offset="15" size = "1" type="Integer" />
		<elem name="V_KEY_0" abs_offset="16" size = "1" type="Integer" />
		<elem name="V_KEY_SUBT" abs_offset="17" size = "1" type="Integer" />
		<elem name="V_KEY_TTX" abs_offset="18" size = "1" type="Integer" />
		<elem name="V_KEY_PAGE_UP" abs_offset="19" size = "1" type="Integer" />
		<elem name="V_KEY_PAGE_DOWN" abs_offset="20" size = "1" type="Integer" />
		<elem name="V_KEY_RECALL" abs_offset="21" size = "1" type="Integer" />
		<elem name="V_KEY_TVRADIO" abs_offset="22" size = "1" type="Integer" />
		<elem name="V_KEY_MENU" abs_offset="23" size = "1" type="Integer" />
		<elem name="V_KEY_CANCEL" abs_offset="24" size = "1" type="Integer" />
		<elem name="V_KEY_UP" abs_offset="25" size = "1" type="Integer" />
		<elem name="V_KEY_DOWN" abs_offset="26" size = "1" type="Integer" />
		<elem name="V_KEY_LEFT" abs_offset="27" size = "1" type="Integer" />
		<elem name="V_KEY_RIGHT" abs_offset="28" size = "1" type="Integer" />
		<elem name="V_KEY_OK" abs_offset="29" size = "1" type="Integer" />
		<elem name="V_KEY_FAV" abs_offset="30" size = "1" type="Integer" />
		<elem name="V_KEY_EPG" abs_offset="31" size = "1" type="Integer" />
		<elem name="V_KEY_INFO" abs_offset="32" size = "1" type="Integer" />
		<elem name="V_KEY_SAT" abs_offset="33" size = "1" type="Integer" />
		<elem name="V_KEY_RED" abs_offset="34" size = "1" type="Integer" />
		<elem name="V_KEY_GREEN" abs_offset="35" size = "1" type="Integer" />
		<elem name="V_KEY_YELLOW" abs_offset="36" size = "1" type="Integer" />
		<elem name="V_KEY_BLUE" abs_offset="37" size = "1" type="Integer" />
		<elem name="V_KEY_FIND" abs_offset="38" size = "1" type="Integer" />
		<elem name="V_KEY_ZOOM" abs_offset="39" size = "1" type="Integer" />
		<elem name="V_KEY_VUP" abs_offset="40" size = "1" type="Integer" />
		<elem name="V_KEY_VDOWN" abs_offset="41" size = "1" type="Integer" />
		<elem name="V_KEY_BACK" abs_offset="42" size = "1" type="Integer" />
		<elem name="V_KEY_FORW" abs_offset="43" size = "1" type="Integer" />
		<elem name="V_KEY_PAUSE" abs_offset="44" size = "1" type="Integer" />
		<elem name="V_KEY_STOP" abs_offset="45" size = "1" type="Integer" />
		<elem name="V_KEY_REVSLOW" abs_offset="46" size = "1" type="Integer" />
		<elem name="V_KEY_SLOW" abs_offset="47" size = "1" type="Integer" />
		<elem name="V_KEY_PLAY" abs_offset="48" size = "1" type="Integer" />
		<elem name="V_KEY_REC" abs_offset="49" size = "1" type="Integer" />
		<elem name="V_KEY_PREV" abs_offset="50" size = "1" type="Integer" />
		<elem name="V_KEY_NEXT" abs_offset="51" size = "1" type="Integer" />
		<elem name="V_KEY_REPEAT" abs_offset="52" size = "1" type="Integer" />
		<elem name="V_KEY_LIST" abs_offset="53" size = "1" type="Integer" />
		<elem name="V_KEY_GOTO" abs_offset="54" size = "1" type="Integer" />
		<elem name="V_KEY_SLOW" abs_offset="55" size = "1" type="Integer" />
		<elem name="UserCode " abs_offset="56" size = "2" type="Integer" />
	</Block>
</Project>
