: Class MoviePresenter
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD
quicktime.app.players
Class MoviePresenter
java.lang.Object
|
+--quicktime.app.image.ImagePresenter
|
+--quicktime.app.players.MoviePresenter
All Implemented Interfaces: AudioSpec, Compositable, Drawable, DrawingNotifier, DynamicImage, ImageSettable, ImageSpec, Listener, MovieDrawingComplete, Playable, QTDrawable, Timeable, Transformable
public class MoviePresenterextends ImagePresenterimplements AudioSpec, Playable, DynamicImage, MovieDrawingComplete, DrawingNotifier
The MoviePresenter is used to present typically a movie
as a member of a SWCompositor. It will create an Invalidator to innvalidate its
TwoDSprite that is presenting the movie in the SWCompositor
when the movie redraws.
Outside of the use in the SWCompositor this Presenter also gives the ability
to apply a GraphicsMode to the overall output of a movie and can be used
also for easy manipulation and control of a movie's display characteristics,
location and transformations. For example if you are moving a movie around the
screen (for example bouncing it around) you will get better performance of the
visual output using a MoviePresenter than doing these kinds of activities
with a standard MoviePlayer presentation.
It uses the MovieDrawingComplete callback to either invalidate its presenting
TwoDSprite or to redraw itself to the destination QDGraphics.
See Also: quicktime.app.display.SWCompositor
Field Summary
protected TwoDSprite
spritePresenter
Fields inherited from interface quicktime.app.players.Playable
kDurationUnknown
Constructor Summary
MoviePresenter(Movie m)
Create a MoviePresenter with the supplied movie.
MoviePresenter(Movie m,
QDGraphics g)
Create a MoviePresenter with the supplied movie.
Method Summary
void
addDrawingListener(DrawingListener listener)
Registers an object as a listener of the MoviePlayer.
Invalidator
addedToCompositor(SWCompositor c,
TwoDSprite s)
Returns an object that invalidates a sprite.
int
execute(Movie m)
Implements the execute method on the MovieDrawingComplete interface.
int
getDuration()
Returns the duration of the media attached to the player.
Movie
getMovie()
Return the movie that is being presented.
QDGraphics
getOffscreenBuffer()
Returns the offscreen buffer that the movie of the MoviePresenter is drawing into.
float
getRate()
Returns the current rate of the Timeable object.
int
getScale()
Returns the time scale of the player - how many ticks per second.
int
getTime()
Returns the current time value of the object.
TimeBase
getTimeBase()
Returns the current time base that provides the time foundation
of this object.
float
getVolume()
Returns the volume setting (0 is silent, 1 is unity gain).
boolean
isMuted()
Returns the current mute status.
boolean
isPresenting()
Returns true if the MoviePresenter is presenting its movie to a destination
QDGraphics.
void
movieChanged()
If an application requires the MoviePresenter to explicitly
invalidate its TwoDSprite Presenter, or redraw its offscreen image
due to some change in the Movie (other than normal playback of the Movie)
then it should signify this by calling this method.
void
redraw(Region invalidRgn)
QTCanvas calls this method when the client should redraw itself.
void
removedFromCompositor(SWCompositor c)
When a dynamic image class is removed from a SWCompositor this
method is called to allow the class to cleanup any of the invalidation
processes it had established in the addedToCompositor call.
void
removeDrawingListener(DrawingListener listener)
Removes an object that is a listener of the MoviePlayer.
void
setGWorld(QDGraphics cgp)
QTCanvas calls this method to give the client the QDGraphics object it should
use to do its drawing.
void
setMuted(boolean flag)
Allows the muting of the specific channel.
void
setRate(float rate)
Sets the Timeable's playback rate.
void
setTime(int time)
Sets the player to the time specified.
void
setVolume(float val)
Sets the volume.
Methods inherited from class quicktime.app.image.ImagePresenter
addedTo, doDraw, fromFile, fromGraphicsImporter, fromGraphicsImporterDrawer, fromGWorld, fromGWorld, fromImageSequence, fromImageSpec, fromPict, fromQTImage, getClip, getDescription, getDisplayBounds, getDSequence, getGraphicsMode, getGWorld, getImage, getInitialSize, getMatrix, getOriginalSize, isRedrawOptimised, removedFrom, removeImageData, setClip, setDisplayBounds, setGraphicsMode, setImageData, setImageData, setLocation, setMatrix, setRedrawOptimised, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface quicktime.app.image.Compositable
getGraphicsMode, setGraphicsMode
Methods inherited from interface quicktime.app.image.ImageSpec
getDescription, getImage
Field Detail
spritePresenter
protected TwoDSprite spritePresenter
Constructor Detail
MoviePresenter
public MoviePresenter(Movie m)
throws QTException
Create a MoviePresenter with the supplied movie. The movie
will be rendered into a default offscreen QDGraphics and the
pixel data of the QDGraphics buffer becomes the image data
that this presenter presents.
Parameters:m - the movie that is rendered
MoviePresenter
public MoviePresenter(Movie m,
QDGraphics g)
throws QTException
Create a MoviePresenter with the supplied movie. The movie
will be rendered into the supplied offscreen QDGraphics and the
pixel data of the QDGraphics buffer becomes the image data
that this presenter presents.
Parameters:m - the movie that is renderedg - the offscreen QDGraphics that the effect is rendered into.
Method Detail
setGWorld
public void setGWorld(QDGraphics cgp)
throws QTException
QTCanvas calls this method to give the client the QDGraphics object it should
use to do its drawing. If the incoming QDGraphics is the QDGraphics.scratch then
the drawable will not be visible and can disable itself.
If a client is unable to set the graphics world it should throw an exception.
Overrides:setGWorld in class ImagePresenter
Parameters:cgp - a QDGraphics object
isPresenting
public boolean isPresenting()
Returns true if the MoviePresenter is presenting its movie to a destination
QDGraphics.
Returns:a boolean
execute
public int execute(Movie m)
Implements the execute method on the MovieDrawingComplete interface.
This method will set the movie changed state to true, so that a consequent
call to the TwoDSprite Invalidator will invalidate its presenting sprite.
If the MoviePresenter is presenting a movie to a destination QDGraphics
it will redraw the movie to that destination.
The callback will be triggered as a result of a call to Movie.task and
is fired whenever the Movie draws to its internal QDGraphics - the offscreen buffer
that the presenter presents.
Specified by: execute in interface MovieDrawingComplete
Parameters:m - the Movie that is presented by this presenterReturns:an error code or 0 if no error
getMovie
public Movie getMovie()
Return the movie that is being presented.
Returns:a movie
getOffscreenBuffer
public QDGraphics getOffscreenBuffer()
Returns the offscreen buffer that the movie of the MoviePresenter is drawing into.
Returns:a QDGraphics.
redraw
public void redraw(Region invalidRgn)
throws QTException
QTCanvas calls this method when the client should redraw itself.
If the canvas is able to discern that only a part of the client's
drawing area needs to be redrawn - then this area shall be passed in
using the invalidRgn. Otherwise this will be null in which case the
client should redraw itself entirely.
Overrides:redraw in class ImagePresenter
Parameters:invalidRgn - the invalidRgn that the client should redraw
getTimeBase
public TimeBase getTimeBase()
throws QTException
Returns the current time base that provides the time foundation
of this object.
Specified by: getTimeBase in interface Timeable
Returns:a TimeBase
setRate
public void setRate(float rate)
throws QTException
Sets the Timeable's playback rate. Typically a rate of zero will
mean that the player is stopped, a positive value that the player
is playing forwards, a negative value that the time values are decreasing.
Specified by: setRate in interface Timeable
Parameters:rate - the new playback rate.
getRate
public float getRate()
throws QTException
Returns the current rate of the Timeable object.
Specified by: getRate in interface Timeable
Returns:the playback rate
setTime
public void setTime(int time)
throws QTException
Sets the player to the time specified. This time value at this level
is a totally arbitrary value - what time that means in "real time" is
determined by the implementor of the interface, typically the scale value
will determine what a "real" time of 1 second is.
Specified by: setTime in interface Playable
Parameters:time - the new time value
getTime
public int getTime()
throws QTException
Returns the current time value of the object.
Specified by: getTime in interface Playable
Returns:the current time.
getDuration
public int getDuration()
throws QTException
Returns the duration of the media attached to the player. If
the player has no media, or does not know the duration of its media
it can return the constant kDurationUnknown.
Specified by: getDuration in interface Playable
Returns:the media duration.
getScale
public int getScale()
throws QTException
Returns the time scale of the player - how many ticks per second.
Specified by: getScale in interface Playable
Returns:the current scale.
getVolume
public float getVolume()
throws QTException
Returns the volume setting (0 is silent, 1 is unity gain).
Specified by: getVolume in interface AudioSpec
Returns:a float
setVolume
public void setVolume(float val)
throws QTException
Sets the volume.
Specified by: setVolume in interface AudioSpec
Parameters:val - the new volume
isMuted
public boolean isMuted()
throws QTException
Returns the current mute status.
Specified by: isMuted in interface AudioSpec
Returns:a boolean
setMuted
public void setMuted(boolean flag)
throws QTException
Allows the muting of the specific channel. When unmuted the AudioSpec object will return
to its current volume setting.
Specified by: setMuted in interface AudioSpec
Parameters:flag - turn muting on - true or off - false.
movieChanged
public void movieChanged()
If an application requires the MoviePresenter to explicitly
invalidate its TwoDSprite Presenter, or redraw its offscreen image
due to some change in the Movie (other than normal playback of the Movie)
then it should signify this by calling this method. Then in the normal
course of Invalidation or Redrawing the MoviePresenter will do the correct
thing. If the movie has a timeline and is playing this will be done automatically.
Thus a potential usage of this method is if the MoviePresenter is presenting a
QuickTime VR movie that has no real time line, and has programatically changed
some characteristic of the display of the Movie. In which case it needs to inform
the MoviePresenter that the Movie has changed and it should do the appropriate
invalidation or redraw.
addedToCompositor
public Invalidator addedToCompositor(SWCompositor c,
TwoDSprite s)
throws QTException
Returns an object that invalidates a sprite. When a DynamicImage
is a member of a SWompositor and the DynamicImage presents a
changing image (for example a movie), the TwoDSprite that presents
that image in the SWCompositor must be invalidated so that it will
redraw the Sprites image in the next composit cycle. The Invalidator
object is used to perform this function by the SWCompositor if the object
itself cannot perform the invalidation.
Can return null if the DynamicImage does not require the SWCompositor
to invalidate it (or the object is in a state where its image won't change).
The Invalidators provided with objects that implement the DynamicImage
interface will execute at the scale and period of the Compositor
when they are created.
Specified by: addedToCompositor in interface DynamicImage
Parameters:c - the Compositor in which the DynamicImage is a members - the TwoDSprite that is presenting the DynamicImage's image in
the Compositor. This is the sprite that must be invalidated.Returns:an Invalidator or null if invalidation is not requiredSee Also: quicktime.app.display.SWCompositor
removedFromCompositor
public void removedFromCompositor(SWCompositor c)
throws QTException
When a dynamic image class is removed from a SWCompositor this
method is called to allow the class to cleanup any of the invalidation
processes it had established in the addedToCompositor call.
Specified by: removedFromCompositor in interface DynamicImage
Parameters:c - the SWCompositor it is being removed from
addDrawingListener
public void addDrawingListener(DrawingListener listener)
Registers an object as a listener of the MoviePlayer. The object will receive notification when the MoviePlayer draws a frame
Specified by: addDrawingListener in interface DrawingNotifier
Following copied from interface: quicktime.app.display.DrawingNotifier
Parameters:source - the object that is to be the source of interest for the
the Listener object.
removeDrawingListener
public void removeDrawingListener(DrawingListener listener)
Removes an object that is a listener of the MoviePlayer. The object will no longer receive notification when the MoviePlayer draws a frame
Specified by: removeDrawingListener in interface DrawingNotifier
Following copied from interface: quicktime.app.display.DrawingNotifier
Parameters:source - the object that is to be the source of interest for the
the Listener object.
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD