<?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="movie" module="max" category="U/I">
	<digest>
		Play a QuickTime movie in a window
	</digest>
	<description>
		Plays a movie in a separate window. All movie playback control is managed by messages to the object.
	</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>
		<inlet id="1" 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>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="filename" optional="1" type="symbol">
			<digest>
				Movie file name
			</digest>
			<description>
				Specifies the name of a QuickTime movie file to be read into <o>movie</o> automatically when the patch is loaded. The same effect can be achieved for <o>imovie</o> by selecting the object in an unlocked patcher and choosing Get Info... from the Object menu to select a movie file. Both objects retain the name(s) of the movie(s) they have loaded at the time that the patch is saved, and attempt to load the same movie(s) the next time the patch is opened.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Restart playback at 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
			</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 movie file
			</digest>
			<description>
				When a QuickTIme movie file is dragged from the Max File Browser to a <o>movie</o> object, the file will be loaded.
			</description>
		</method>
		<method name="active">
			<arglist>
				<arg name="flag" optional="0" type="int" />
			</arglist>
			<digest>
				Set the active flag
			</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="(mouse)">
			<digest>
				Activate the movie window
			</digest>
			<description>
				Double-clicking on the <o>movie</o> object will make the movie window active.
			</description>
		</method>
		<method name="dispose">
			<arglist>
				<arg name="filename" optional="0" type="symbol" />
			</arglist>
			<digest>
				Close window and remove movies
			</digest>
			<description>
				Closes the movie window if it is open, and removes all movies from the <o>movie</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>
				Close window and remove all movies
			</digest>
			<description>
				Has the same effect as <m>dispose</m> with no arguments.
			</description>
		</method>
		<method name="duration">
			<arglist />
			<digest>
				Report the movie duration
			</digest>
			<description>
				Reports the duration of the movie (in time units) out the left-most outlet.
			</description>
		</method>
		<method name="getduration">
			<arglist />
			<digest>
				Report 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>
				Report the current 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>
				Report the current time location
			</digest>
			<description>
				Reports the current time location of the movie.
			</description>
		</method>
		<method name="ff">
			<arglist />
			<digest>
				Fast-forward the movie
			</digest>
			<description>
				The word <m>ff</m> fast-forwards the movie.
			</description>
		</method>
		<method name="length">
			<arglist />
			<digest>
				Report the movie duration
			</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" optional="0" type="int" />
			</arglist>
			<digest>
				Load the 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 playback 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>
				Select previous movie for playback
			</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="matrix" optional="0" type="list" />
			</arglist>
			<digest>
				Perform a transform on the current movie
			</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>
				Turn off movie sound
			</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 playback 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="end" optional="0" type="int" />
			</arglist>
			<digest>
				Set the loop end point
			</digest>
			<description>
				The word <m>loopend</m>, followed by a number, sets the end point of a loop. The default value is corresponds to the end of the film.
			</description>
		</method>
		<method name="looppoints">
			<arglist>
				<arg name="beginning" 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="beginning" optional="0" type="int" />
				<arg name="end" optional="0" type="int" />
			</arglist>
			<digest>
				Set the loop points
			</digest>
			<description>
				The <m>loopset</m> message's functionality is equivalent to the <m>looppoints</m> message.
			</description>
		</method>
		<method name="loopstart">
			<arglist>
				<arg name="beginning" optional="0" type="int" />
			</arglist>
			<digest>
				Set the loop start point
			</digest>
			<description>
				The word <m>loopstart</m>, followed by a number, sets the beginning point of a loop. The default value is 0 (i.e., the start of the film).
			</description>
		</method>
		<method name="pause">
			<arglist />
			<digest>
				Pause movie playback
			</digest>
			<description>
				Stops the movie.
			</description>
		</method>
		<method name="pos">
			<arglist>
				<arg name="index" optional="0" type="float" />
			</arglist>
			<digest>
				Jump to a position within the movie
			</digest>
			<description>
				The word <m>pos</m> followed by a floating-point number which denotes a position-index within the movie will cause the playback-position to jump to the specified position in the movie.
			</description>
		</method>
		<method name="prev">
			<arglist>
				<arg name="time-units" optional="0" type="int" />
			</arglist>
			<digest>
				Move the playback 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="open">
			<arglist />
			<digest>
				Bring the movie window to the foreground
			</digest>
			<description>
				Brings the movie window to the foreground (applies only to <o>movie</o>, not <o>imovie</o>).
			</description>
		</method>
		<method name="palindrome">
			<arglist>
				<arg name="flag" optional="0" type="int" />
			</arglist>
			<digest>
				Set palindrome 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="rate">
			<arglist>
				<arg name="input" optional="0" type="list" />
			</arglist>
			<digest>
				Set playback rate
			</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="0" type="symbol" />
			</arglist>
			<digest>
				Open a movie file
			</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="0" type="symbol" />
			</arglist>
			<digest>
				Open any file as a movie
			</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" />
			</arglist>
			<digest>
				Set the movie 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="mode" optional="0" type="int" />
			</arglist>
			<digest>
				Set the passive mode
			</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="filename" optional="0" type="symbol" />
			</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 at a specific 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>
				Open a movie file
			</digest>
			<description>
				Same as <m>read</m>.
			</description>
		</method>
		<method name="rect">
			<arglist>
				<arg name="x-position-coordinate" optional="0" type="int" />
				<arg name="y-position-coordinate" optional="0" type="int" />
				<arg name="width (pixels)" optional="0" type="int" />
				<arg name="height (pixels)" optional="0" type="int" />
			</arglist>
			<digest>
				Set the movie location within the window
			</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>
				Restart playback at 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>
				Switch movie used for playback
			</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 the current movie
			</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="rw">
			<arglist />
			<digest>
				Rewind the movie
			</digest>
			<description>
				The word <m>rw</m> rewinds the movie.
			</description>
		</method>
		<method name="time">
			<arglist>
				<arg name="frame" optional="0" type="list" />
			</arglist>
			<digest>
				Set the movie location 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>
				Report the movie timescale
			</digest>
			<description>
				Reports the timescale of the movie out the left-most outlet.
			</description>
		</method>
		<method name="toggleplay">
			<arglist />
			<digest>
				Toggle movie playback
			</digest>
			<description>
				The word <m>toggleplay</m> activates or pauses playback of the movie.
			</description>
		</method>
		<method name="vol">
			<arglist>
				<arg name="volume" optional="0" type="int" />
			</arglist>
			<digest>
				Set movie sound 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>
		<method name="wclose">
			<arglist />
			<digest>
				Close the movie window
			</digest>
			<description>
				Closes the movie window.
			</description>
		</method>
		<method name="windowpos">
			<arglist>
				<arg name="left-coordinate" optional="0" type="int" />
				<arg name="top-coordinate" optional="0" type="int" />
				<arg name="right-coordinate" optional="0" type="int" />
				<arg name="bottom-coordinate" optional="0" type="int" />
			</arglist>
			<digest>
				Set the movie window location
			</digest>
			<description>
				The word <m>windowpos</m>, followed by four numbers, specifies the location and size of the movie window on the screen. The four numbers specify the left, top, right, and bottom of the movie window in global coordinates. This message is only supported by the <o>movie</o> object, not the <o>imovie</o> object.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="autofit" get="1" set="1" type="int" size="1">
			<digest>
				Movie auto-fit into window
			</digest>
			<description>
				Toggles scaling the movie to fit in the window currently displayed.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<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 Window" />
				<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>
				Movie border type
			</digest>
			<description>
				Toggles the movie’s border type. The message <m>border 1</m> (the default) uses the traditional Macintosh-style border for the movie window. The message <m>border 0</m> displays only the rectangle in which the movie plays.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="Plain">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="Document">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Window Style" />
				<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="enumindex" />
			</attributelist>
		</attribute>
		<attribute name="name" get="1" set="1" type="symbol" size="1">
			<digest>
				Movie file name
			</digest>
			<description>
				Name of the movie file loaded.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<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="movie.png" caption="Play a QuickTime movie, or move through it in a variety of ways... Hold multiple movies (which are stored in reverse order from the order received)" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="imovie" />
	</seealsolist>
	<discussion>
		Note: The <o>movie</o> object requires that QuickTime be installed on your system. If you are using Max on Windows, we recommend that you install QuickTime and choose a complete install of all optional components.The <o>movie</o> object plays a QuickTime movie in its own window, and the <o>imovie</o> object plays a QuickTime movie in a box inside a patcher window.
	</discussion>
	<misc name="Output">
		<entry name="int">
			<description>
				Out left outlet: The current time location, when a <m>time</m> message is received; the end time location when a <m>length</m> message is received.
				<br />
				<br />
				Out middle outlet: The horizontal position of the mouse, relative to the left side of the movie box or window, 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 of the movie box or window, when the mouse is clicked or dragged inside the movie.
				<br />
				<br />
				Also, in response to a <m>getrate</m> message, the current movie rate multiplied by 65536 is sent out the right outlet.
			</description>
		</entry>
	</misc>
</c74object>
