<?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="imovie" module="max" category="U/I">
	<digest>
		Play video
	</digest>
	<description>
		Plays a movie in a user-interface object within the patcher window.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Max
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				int Locates, start Plays, Many Other Commands
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				Movie Time in Response To time Message
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				Horiz Mouse Location When Clicked in Movie
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				Vert Mouse Location When Clicked in Movie
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<palette action="imovie" category="Images" pic="imovie.svg" />
	<!--ARGUMENTS-->
	<objarglist>
		<objarg id="0" name="OBJARG_NAME" type="OBJARG_TYPE" optional="0">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				TEXT_HERE
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Begin playback from the current location
			</digest>
			<description>
				Same as <m>resume</m>.
			</description>
		</method>
		<method name="int">
			<arglist>
				<arg name="location" optional="0" type="int" />
			</arglist>
			<digest>
				Set the current location within the movie
			</digest>
			<description>
				Sets the current time location of the movie. If the movie is playing, it will play from the newly set location. 0 is always the beginning. The end time varies from one movie to another. (The <m>length</m> message reports the end time location out the left outlet.)
			</description>
		</method>
		<method name="(drag)">
			<digest>
				Load a file with drag-and-drop
			</digest>
			<description>
				When a QuickTIme movie file is dragged from the Max File Browser to a <o>imovie</o> object, the file will be loaded.
			</description>
		</method>
		<method name="active">
			<arglist>
				<arg name="flag" optional="0" type="int" />
			</arglist>
			<digest>
				Make a move active
			</digest>
			<description>
				The word <m>active</m>, followed by a non-zero number, makes the movie active (the default). Followed by a 0, <m>active</m> makes the movie inactive. An inactive movie will not play or change location.
			</description>
		</method>
		<method name="dispose">
			<arglist>
				<arg name="filename" optional="0" type="symbol" />
			</arglist>
			<digest>
				Remove a movie file from memory
			</digest>
			<description>
				Removes all movies from the <o>imovie</o> object's memory. If the word <m>dispose</m> is followed by the name of a loaded movie, only the named movie will be removed.
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Remove all movie files
			</digest>
			<description>
				Has the same effect as <m>dispose</m> with no arguments.
			</description>
		</method>
		<method name="duration">
			<arglist />
			<digest>
				Output the movie duration
			</digest>
			<description>
				Reports the duration of the movie (in milliseconds) from the left outlet.
			</description>
		</method>
		<method name="getduration">
			<arglist />
			<digest>
				Output the movie duration
			</digest>
			<description>
				Reports the end time position of the movie (in QuickTime Time Units) from the left outlet.
			</description>
		</method>
		<method name="getrate">
			<arglist />
			<digest>
				Output the playback rate
			</digest>
			<description>
				Reports the current rate multiplied by 65536 out the right outlet. Thus, normal speed is reported as <m>65536</m>, half speed is reported as <m>32768</m>, double speed backward is reported as <m>-131072</m>, etc. If the movie is not playing, the rate is reported as <m>0</m>, and if no movie has yet been loaded nothing is sent out.
			</description>
		</method>
		<method name="gettime">
			<arglist />
			<digest>
				Output the current playback location
			</digest>
			<description>
				Reports the current time location of the movie.
			</description>
		</method>
		<method name="length">
			<arglist />
			<digest>
				Output the movie length
			</digest>
			<description>
				The <m>length</m> message's functionality is equivalent to the <m>getduration</m> message.
			</description>
		</method>
		<method name="loadintoram">
			<arglist>
				<arg name="flag (0 or non-zero)" optional="0" type="int" />
			</arglist>
			<digest>
				Load a movie into RAM memory
			</digest>
			<description>
				The word <m>loadintoram</m>, followed by a non-zero number, attempts to load the entire movie into memory, if possible. The default is 0.
			</description>
		</method>
		<method name="next">
			<arglist>
				<arg name="time-units" optional="0" type="int" />
			</arglist>
			<digest>
				Move the current location forward
			</digest>
			<description>
				The word <m>next</m>, followed by a number, moves the time location ahead by that amount. If no number is supplied, <m>next</m> moves the time ahead by 5. (The actual time meaning of these units varies from movie to movie.)
			</description>
		</method>
		<method name="nextmovie">
			<arglist />
			<digest>
				Stop playback and switch movies
			</digest>
			<description>
				Stops the movie if it is playing, and switches to the movie that was loaded just prior to the current movie. (The movies are stored in reverse order from the order in which they were loaded.) If there is no prior movie, <m>nextmovie</m> wraps around back to the most recently loaded movie. Note that the title of the movie window is not automatically changed, even though the &quot;current movie&quot; has been changed by <m>nextmovie</m>.
			</description>
		</method>
		<method name="matrix">
			<arglist>
				<arg name="transform" optional="0" type="list" />
			</arglist>
			<digest>
				Perform a transformation matrix
			</digest>
			<description>
				The word <m>matrix</m>, followed by nine floating point numbers, reloads the current movie into RAM after performing a transformation matrix operation on the image. This transformation is the same one used for the mapping in QuickTime of points from one coordinate space (i.e, the original image) into another coordinate space (a scaled, rotated, or translated version of the original image).
				<br />
				<br />
				The transform matrix operation consists of nine matrix elements
			</description>
		</method>
		<method name="mute">
			<arglist>
				<arg name="flag" optional="0" type="int" />
			</arglist>
			<digest>
				Set movie audio mute status
			</digest>
			<description>
				The word <m>mute</m>, followed by a non-zero number, turns off the movie's sound (if it has any). Followed by a 0, <m>mute</m> turns on the movie's sound (the default).
			</description>
		</method>
		<method name="loop">
			<arglist>
				<arg name="flag" optional="0" type="int" />
			</arglist>
			<digest>
				Set the looping mode
			</digest>
			<description>
				The word <m>loop</m>, followed by a number in the range 0-2, controls looping for the current film on. The options are:
				<br />
				0: looping off (default) 1: looping on 2: palindrome mode (forward and then backward)
			</description>
		</method>
		<method name="loopend">
			<arglist>
				<arg name="endpoint" optional="0" type="int" />
			</arglist>
			<digest>
				Set loop end
			</digest>
			<description>
				Sets the ending point of a loop. The default value the time value that represents the end of the movie.
			</description>
		</method>
		<method name="looppoints">
			<arglist>
				<arg name="start" optional="0" type="int" />
				<arg name="end" optional="0" type="int" />
			</arglist>
			<digest>
				Set both loop points
			</digest>
			<description>
				The word <m>looppoints</m>, followed by two numbers, sets the beginning and end points of a loop. the default values are 0 (i.e., the start of the film) for the start point and the end of the film for the endpoint.
			</description>
		</method>
		<method name="loopset">
			<arglist>
				<arg name="start" optional="0" type="int" />
				<arg name="end" optional="0" type="int" />
			</arglist>
			<digest>
				Set both loop points
			</digest>
			<description>
				See the <m>looppoints</m> entry.
			</description>
		</method>
		<method name="loopstart">
			<arglist>
				<arg name="startpoint" optional="0" type="int" />
			</arglist>
			<digest>
				Set loop start
			</digest>
			<description>
				Sets the beginning point of a loop. The default value is 0 (the start of the movie).
			</description>
		</method>
		<method name="(mouse)">
			<digest>
				Activate the movie window
			</digest>
			<description>
				Double-clicking on the <o>imovie</o> object will make the movie window active.
			</description>
		</method>
		<method name="palindrome">
			<arglist>
				<arg name="flag" optional="0" type="int" />
			</arglist>
			<digest>
				Set the palindrome playback mode
			</digest>
			<description>
				The word <m>palindrome</m>, followed by a non-zero number, sets the movie to play in palindrome mode (forward and then backward). Looping must be turned on. <m>palindrome 0</m> (the default) disables palindrome mode.
			</description>
		</method>
		<method name="pause">
			<arglist />
			<digest>
				Pause movie playback
			</digest>
			<description>
			</description>
		</method>
		<method name="prev">
			<arglist>
				<arg name="time-units" optional="0" type="int" />
			</arglist>
			<digest>
				Move the current location backward
			</digest>
			<description>
				The word <m>prev</m>, followed by a number, moves the time location backward by that amount. If no number is supplied, <m>prev</m> moves the time backward by 5.
			</description>
		</method>
		<method name="rate">
			<arglist>
				<arg name="speed" optional="0" type="list" />
			</arglist>
			<digest>
				Set playback speed
			</digest>
			<description>
				The word <m>rate</m>, followed by one or more integers or floats, sets the playing speed of the movie. If <m>rate</m> is followed by one integer, that number is taken to be a whole number playing speed. If <m>rate</m> is followed by two numbers, the first number is taken to be the numerator and the second the denominator of a fractional speed. <m>1</m> is the normal playing speed, <m>0</m> means the movie is stopped, and a negative rate plays backwards. <m>rate 1 2</m> would play the movie at half speed. Immediately after you send a non-zero <m>rate</m> message, the movie will begin playing, so you may wish to precede any <m>rate</m> messages with an integer to locate to the desired starting position.
			</description>
		</method>
		<method name="read">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
			</arglist>
			<digest>
				Load a movie
			</digest>
			<description>
				The word <m>read</m>, followed by a symbol, looks for a QuickTime movie file with that name in Max's file search path, and opens it if it exists, displaying the movie's first frame in a movie window. If the filename contains any spaces or special characters, the name should be enclosed in double quotes or each special character should be preceded by a backslash (<m>\</m>). The word <m>read</m> by itself puts up a standard Open Document dialog box and reads in any movie file you select. The <m>read</m> message will open at least 26 different types of files that can be opened by QuickTime, these include movie files such as MPEG, audio files including AIFF and MP3, and graphics files including GIF and JPEG.
			</description>
		</method>
		<method name="readany">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
			</arglist>
			<digest>
				Load a media file
			</digest>
			<description>
				The <m>readany</m> message opens any type of file, using QuickTime routines to try to interpret it as a movie or other supported media file.
			</description>
		</method>
		<method name="quality">
			<arglist>
				<arg name="interval" optional="0" type="int" units="ms" />
			</arglist>
			<digest>
				Set the minimum redraw interval
			</digest>
			<description>
				The word <m>quality</m>, followed by a number, sets the minimum interval, in milliseconds, between movie redraws. The default is 0 (i.e., no minimum).
			</description>
		</method>
		<method name="passive">
			<arglist>
				<arg name="flag" optional="0" type="int" />
			</arglist>
			<digest>
				Set passive mode flag
			</digest>
			<description>
				The word <m>passive</m>, followed by a non-zero number, sets the passive mode. In passive mode, starting a movie will not cause the frame to change unless a bang message is received. <m>passive</m>  <m>0</m> (the default) sets the movie object to respond to normal <m>start</m> messages.
			</description>
		</method>
		<method name="start">
			<arglist>
				<arg name="beginning-point" optional="0" type="int" />
			</arglist>
			<digest>
				Start playback from the beginning
			</digest>
			<description>
				Sets the movie's rate to 1 and begins playing from the beginning. If the word <m>start</m> is followed by the name of a specific loaded movie, that movie becomes the current movie before starting.
			</description>
		</method>
		<method name="startat">
			<arglist>
				<arg name="location" optional="0" type="list" />
			</arglist>
			<digest>
				Start playback from a specified location
			</digest>
			<description>
				The word <m>startat</m>, followed by a number, set the current time location of the movie and begins playing from that point.
			</description>
		</method>
		<method name="stop">
			<arglist />
			<digest>
				Stop movie playback
			</digest>
			<description>
				Stops the movie.
			</description>
		</method>
		<method name="rd">
			<arglist>
				<arg name="filename" optional="0" type="symbol" />
			</arglist>
			<digest>
				Load a movie
			</digest>
			<description>
				Same as <m>read</m>.
			</description>
		</method>
		<method name="rect">
			<arglist>
				<arg name="x" optional="0" type="int" units="pixels" />
				<arg name="y" optional="0" type="int" units="pixels" />
				<arg name="width" optional="0" type="int" units="pixels" />
				<arg name="height" optional="0" type="int" units="pixels" />
			</arglist>
			<digest>
				Specify the display rectangle
			</digest>
			<description>
				The word <m>rect</m>, followed by four numbers, specifies the size of the rectangle in which the movie is displayed within the movie window. The first two numbers specify the position of the rectangle within the movie window, in relative coordinates, and the second two numbers specify the width and height, in pixels, of the rectangle.
			</description>
		</method>
		<method name="resume">
			<arglist />
			<digest>
				Begin playback from the current location
			</digest>
			<description>
				Begins playing the movie from its current location, at the most recently specified rate.
			</description>
		</method>
		<method name="switch">
			<arglist>
				<arg name="filename" optional="0" type="symbol" />
			</arglist>
			<digest>
				Activate a new movie
			</digest>
			<description>
				The word <m>switch</m>, followed by a symbol, makes the named movie the active one without changing the transport state (See the <m>start</m> message).
			</description>
		</method>
		<method name="reload">
			<arglist />
			<digest>
				Reload a movie file
			</digest>
			<description>
				The word <m>reload</m> will reload the current movie into memory (can be used to refresh; for example, if a movie is playing and the <m>stop</m> message is sent followed by <m>reload</m>, the movie will reload into memory and be set to play from the beginning as a newly loaded movie).
			</description>
		</method>
		<method name="time">
			<arglist>
				<arg name="frame" optional="1" type="int" />
			</arglist>
			<digest>
				Move to a specific frame
			</digest>
			<description>
				The word <m>time</m>, followed by a number that specifies a QuickTime frame number, goes to the time location specified by the number. When no argument is present, the <m>time</m> message's functionality is equivalent to the <m>gettime</m> message.
			</description>
		</method>
		<method name="timescale">
			<arglist />
			<digest>
				Output the movie timescale
			</digest>
			<description>
				Reports the timescale of the movie (the number of QuickTime Time Units per second) from the left outlet.
			</description>
		</method>
		<method name="vol">
			<arglist>
				<arg name="volume" optional="0" type="number" />
			</arglist>
			<digest>
				Set movie audio volume
			</digest>
			<description>
				The word <m>vol</m>, followed by a number in the range 1-255, sets the movie's sound volume. Optionally, the volume can be set by using the word <m>vol</m>, followed by a floating-point value in the range 0. - 1.0.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="autofit" get="1" set="1" type="int" size="1">
			<digest>
				Fit movie to window size
			</digest>
			<description>
				Sets the movie to fit automatically within the size of the <o>imovie</o> window.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Scale Movie to Box" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="border" get="1" set="1" type="int" size="1">
			<digest>
				Draw a border around the object
			</digest>
			<description>
				Toggles the drawing of border around the <o>imovie</o> object. The default is 1 (draw border).
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="symbol" size="1" value="Appearance" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Border" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="moviedim" get="1" set="0" type="int" size="2">
			<digest>
				Original Dimensions
			</digest>
			<description>
				Displays the original dimensions of the movie in pixels.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="symbol" size="1" value="Value" />
				<attribute name="label" get="1" set="0" type="symbol" size="1" value="Original Dimensions" />
			</attributelist>
		</attribute>
		<attribute name="name" get="1" set="1" type="symbol" size="1">
			<digest>
				Movie file name
			</digest>
			<description>
				Specifies the name of the file that the <o>imovie</o> object will display. The symbol used as a filename must either be the name of a file in Max's current search path, or an absolute pathname for the file (e.g. <m>&quot;MyDisk:/Documents/movies/krakatoa.mov&quot;</m>). The file name can be specified using the object's Inspector. The word <m>name</m> by itself puts up a standard Open Document dialog box.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Value" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Movie File" />
				<attribute name="paint" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="file" />
			</attributelist>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="imovie.png" caption="A movie can be displayed within a patch, and mouse motion can be detected within it" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="lcd" />
		<seealso name="movie" />
		<seealso name="playbar" />
		<seealso module="max" name="basicchapter12" type="tutorial" />
	</seealsolist>
	<misc name="Output">
		<entry name="int">
			<description>
				Out left outlet: The end time of the movie is sent out in response to the <m>length</m> message; the current time in the movie is sent out in response to the <m>time</m> message; 0 is sent out in response to the <m>start</m> message.
				<br />
				<br />
				Out middle outlet: The horizontal position of the mouse, relative to the left edge of the movie, is sent out when the mouse is clicked or dragged inside the movie.
				<br />
				<br />
				Out right outlet: The vertical position of the mouse, relative to the top edge of the movie, is sent out when the mouse is clicked or dragged inside the movie.
			</description>
		</entry>
	</misc>
</c74object>
