<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<!--This is an automatically generated file. DO NOT EDIT THIS FILE DIRECTLY. Rather, use the _ref.xml files found in the 'edits' folder.-->
<c74object name="hi" module="max" category="Devices">
	<digest>
		Human Interface (gaming) device input
	</digest>
	<description>
		Provides input from human interface peripherals (i.e. Trackpad, Keyboard, and others).
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Max
		</metadata>
		<metadata name="tag">
			Devices
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="message">
			<digest>
				(message) control messages
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="message">
			<digest>
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="list">
			<digest>
				(list) element and value, both integers
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="message">
			<digest>
				(message) device enumeration output in menu format
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="device" optional="1" type="symbol">
			<digest>
				Selected input device
			</digest>
			<description>
				An argument can be used to specify the object for focus on the <o>hi</o> object.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Output device events
			</digest>
			<description>
				<m>bang</m> message will output the current event queue.
			</description>
		</method>
		<method name="int">
			<arglist>
				<arg name="index" optional="0" type="int" />
			</arglist>
			<digest>
				Select an input device
			</digest>
			<description>
				An incoming <m>int</m> causes the object to focus on the device in the device list with that index.
			</description>
		</method>
		<method name="anything">
			<arglist>
				<arg name="device" optional="0" type="list" />
			</arglist>
			<digest>
				Set the input device
			</digest>
			<description>
				Sending the name of any device to the <o>hi</o> object will set the object to focus on the specified device.
			</description>
		</method>
		<method name="delta">
			<arglist>
				<arg name="element" optional="0" type="int" />
			</arglist>
			<digest>
				Only report changed data
			</digest>
			<description>
				The word <m>delta</m>, followed by an integer that represents an element of the device will cause the <o>hi</o> object to report an event from the specified element only if it is different then the last value that was reported.
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Reset <m>ignore</m> and <m>delta</m> settings
			</digest>
			<description>
				The message <m>clear</m> will reset all values set using the <m>ignore</m> and <m>delta</m> messages to their default values.
			</description>
		</method>
		<method name="ignore">
			<arglist>
				<arg name="element" optional="0" type="int" />
			</arglist>
			<digest>
				Disable event reporting
			</digest>
			<description>
				The word <m>ignore</m>, followed by an integer that represents an element of the device, disables event reporting from the specified element.
			</description>
		</method>
		<method name="info">
			<arglist />
			<digest>
				Print device information to the Max Console
			</digest>
			<description>
				The <m>info</m> message causes device information to be output to the Max console.
			</description>
		</method>
		<method name="menu">
			<arglist />
			<digest>
				Output a device list in menu format
			</digest>
			<description>
				The <m>menu</m> message causes a device list to be output from the right outlet in a format fit for a <m>umenu</m> object.
			</description>
		</method>
		<method name="poll">
			<arglist>
				<arg name="output-time" optional="0" units="ms" type="float" />
			</arglist>
			<digest>
				Set automatic polling
			</digest>
			<description>
				The word <m>poll</m>, followed by a number, sets the time in milliseconds between outputs of the event queue. The message <m>poll</m> 0 disables automatic polling.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="hi.png" caption="Affect the pitch and duration of notes" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="key" />
		<seealso name="keyup" />
		<seealso name="communicationschapter01" module="max" type="tutorial" />
	</seealsolist>
	<misc name="Output">
		<entry name="list">
			<description>
				The object collects data from the selected device and will output all collected data when a <m>bang</m> or a timing trigger from to a <m>poll</m> message is received. Data is output as a two-element integer list; he first element represents the element of the device to which the data applies, and the second element represents the data value.
			</description>
		</entry>
	</misc>
</c74object>
