<?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="routepass" module="max" category="Control">
	<digest>
		Route a complete incoming message based on input matching
	</digest>
	<description>
		Tries to match a message's first argument to the <o>route</o> object's own arguments. Unlike the <o>route</o> object, <o>routepass</o> does not strip off the matched portion of the message. The rightmost outlet passes any message that matched no other choice, so you may gang <o>route</o> objects to get more choices
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			TEXT_HERE
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				Number or list to be Routed
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				Change Selector for Match 0
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				Outputs if Input Matches 0
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				Input if Input Doesn't Match
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="selectors" optional="1" type="anything">
			<digest>
				Outlet selectors
			</digest>
			<description>
				Arguments can be a mix of ints, floats, or symbols. The number of arguments determines the number of outlets, in addition to the rightmost outlet. Each argument assigns a name or a number to an outlet. If there is no argument, there is one other outlet, which is assigned the number <m>0</m>.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Route output based on a match
			</digest>
			<description>
				Sending a bang to the object will send a bang out any outlet that uses 'bang' as its argument. If bangs are not specified as arguments, a bant will be passed out the rightmost outlet.
			</description>
		</method>
		<method name="int">
			<arglist>
				<arg name="input" optional="0" type="int" />
			</arglist>
			<digest>
				Route output based on a match
			</digest>
			<description>
				If the first integer value in the message is the same as one of the arguments of <o>routepass</o>, the entire message is sent out the outlet that corresponds to that argument. If the first integer value does not match any of the arguments, the entire message is passed out the rightmost outlet.
			</description>
		</method>
		<method name="float">
			<arglist>
				<arg name="input" optional="0" type="float" />
			</arglist>
			<digest>
				Route output based on a match
			</digest>
			<description>
				If the first floating-point value in the message is the same as one of the arguments of <o>routepass</o>, the entire message is sent out the outlet that corresponds to that argument. If the first floating-point value does not match any of the arguments, the entire message is passed out the rightmost outlet.
			</description>
		</method>
		<method name="list">
			<arglist>
				<arg name="input" optional="0" type="list" />
			</arglist>
			<digest>
				Route output based on a match
			</digest>
			<description>
				If the first item of the message is the same as one of the arguments of <o>routepass</o>, the entire message is sent out the outlet that corresponds to that argument. If the first item does not match any of the arguments, the entire message is passed out the rightmost outlet.
			</description>
		</method>
		<method name="anything">
			<arglist>
				<arg name="input" optional="0" type="list" />
			</arglist>
			<digest>
				Route output based on a match
			</digest>
			<description>
				If the first item of the message is the same as one of the arguments of <o>routepass</o>, the entire message is sent out the outlet that corresponds to that argument. If the first item does not match any of the arguments, the entire message is passed out the rightmost outlet.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example caption="The routepass object matches inputs, but passes the whole message (unlike route)" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="bucket" />
		<seealso name="forward" />
		<seealso name="gate" />
		<seealso name="join" />
		<seealso name="pack" />
		<seealso name="receive" />
		<seealso name="select" />
		<seealso name="send" />
		<seealso name="sprintf" />
		<seealso name="route" />
		<seealso name="zl" />
		<seealso module="max" name="basicchapter18" type="tutorial" />
	</seealsolist>
	<misc name="Output">
		<entry name="anything">
			<description>
				The first item of any message received in the inlet is compared with the arguments. If it matches one of the arguments, the full message is sent out the specified outlet. Otherwise, the message is passed out the rightmost outlet.
			</description>
		</entry>
		<entry name="bang">
			<description>
				If the first item of a message matches one of the arguments, but the message has no additional items, <m>bang</m> is sent out the specified outlet.
			</description>
		</entry>
	</misc>
</c74object>
