<?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="pattrforward" module="max" category="Data">
	<digest>
		Send any message to a named object
	</digest>
	<description>
		Routes messages or selects new message routing destinations according to the messages it receives. You can also use the <o>pattrforward</o> object to route messages directly to a specific inlet of an object exposed by <o>pattr</o> or <o>autopattr</o> objects, and also send messages directly to a subpatcher, abstraction or bpatcher.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Max
		</metadata>
		<metadata name="tag">
			Data
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				messages or data in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="target" optional="1" type="symbol">
			<digest>
				Target object
			</digest>
			<description>
				A symbol argument may be optionally used to specify the target object.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Forward data to the target
			</digest>
			<description>
				<m>bang</m> is passed to the target object.
			</description>
		</method>
		<method name="int">
			<arglist>
				<arg name="input" optional="0" type="int" />
			</arglist>
			<digest>
				Forward data to the target
			</digest>
			<description>
				An int is passed to the target object.
			</description>
		</method>
		<method name="float">
			<arglist>
				<arg name="input" optional="0" type="float" />
			</arglist>
			<digest>
				Forward data to the target
			</digest>
			<description>
				A float is passed to the target object.
			</description>
		</method>
		<method name="list">
			<arglist>
				<arg name="input" optional="0" type="list" />
			</arglist>
			<digest>
				Forward data to the target
			</digest>
			<description>
				A list is passed to the target object.
			</description>
		</method>
		<method name="anything">
			<arglist>
				<arg name="input" optional="0" type="list" />
			</arglist>
			<digest>
				Forward data to the target
			</digest>
			<description>
				Incoming messages to the <o>pattrforward</o> object are analyzed. If the first element of the message matches the symbols in0, in1 ... inN, the <o>pattrforward</o> object will forward all remaining arguments to a specific inlet of the target object. in0 refers to the leftmost inlet (this is the default behavior of the <o>pattrforward</o> object), in1 refers to the inlet to the 2nd inlet from the left, and so on.
				<br />
				<br />
				If the target object is a subpatcher, abstraction or bpatcher, the special element inx can be used to send messages directly to the patcher object (in essence, in order to communicate with a virtual <o>thispatcher</o> object associated with the patch).
			</description>
		</method>
		<method name="(mouse)">
			<digest>
				Reveal the current target object
			</digest>
			<description>
				Double-clicking on the <o>pattrforward</o> object reveals the current target object in its parent patcher.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="send" get="1" set="1" type="symbol" size="1">
			<digest>
				Target object
			</digest>
			<description>
				The word <m>send</m>, followed by the patcher name of any object in the patcher hierarchy, sets the target object. Names can refer to objects in patchers other than the one in which the <o>pattrforward</o> object resides. A double-colon syntax ('::') is used to separate levels of the patcher hierarchy. For example, <m>some_subpatcher::some_object</m> or <m>parent::some_other_object</m> would be valid target object names.
			</description>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="pattrforward.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="autopattr">
			Manage multiple objects at once, or expose them to <o>pattrstorage</o> 
		</seealso>
		<seealso name="forward" />
		<seealso name="pattr" />
		<seealso name="pattrhub" />
		<seealso name="pattrmarker" />
		<seealso name="pattrstorage" />
		<seealso name="receive" />
		<seealso name="send" />
		<seealso name="thispatcher" />
	</seealsolist>
	<discussion>
		The <o>pattrforward</o> object uses an object's Scripting Name (its <m>varname</m> attribute, set using an object's Inspector) when specifying the path to objects you want to send messages to. For example, if you want to send a message to an object named <i>my_dial</i> in a subpatcher, and you've also set the Scripting Name of the subpatcher to <i>my_controls</i>, then you would send the message <m>send my_controls::my_dial</m> to the <o>pattrforward</o> object to set the destination for future messages.
	</discussion>
	<misc name="Output">
		<entry name="anything">
			<description>
				A message received in the inlet of <o>pattrforward</o> is sent to the named object anywhere in the patcher hierarchy.
			</description>
		</entry>
	</misc>
</c74object>
