From 3ce7fc7f6ab489fba4084e6d47099acd0d60f663 Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Fri, 14 Nov 2008 21:43:33 +0000 Subject: [PATCH] More prepatory renaming and refactoring. Nothing of interest. git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@705 ed5b42cb-e716-0410-a449-f6a68f950b19 --- src/as/com/threerings/flash/MediaContainer.as | 4 +- .../threerings/flash/media/FlvVideoPlayer.as | 28 +++--- .../com/threerings/flash/media/MediaPlayer.as | 93 +++++++++++++++++++ ...ideoPlayerCodes.as => MediaPlayerCodes.as} | 3 +- .../flash/media/SimpleVideoDisplay.as | 26 +++--- .../com/threerings/flash/media/VideoPlayer.as | 86 +---------------- 6 files changed, 127 insertions(+), 113 deletions(-) create mode 100644 src/as/com/threerings/flash/media/MediaPlayer.as rename src/as/com/threerings/flash/media/{VideoPlayerCodes.as => MediaPlayerCodes.as} (89%) diff --git a/src/as/com/threerings/flash/MediaContainer.as b/src/as/com/threerings/flash/MediaContainer.as index db4ff971..fd0db95f 100644 --- a/src/as/com/threerings/flash/MediaContainer.as +++ b/src/as/com/threerings/flash/MediaContainer.as @@ -63,9 +63,9 @@ import com.threerings.util.ValueEvent; import com.threerings.util.Util; import com.threerings.flash.media.FlvVideoPlayer; +import com.threerings.flash.media.MediaPlayerCodes; import com.threerings.flash.media.SimpleVideoDisplay; import com.threerings.flash.media.VideoPlayer; -import com.threerings.flash.media.VideoPlayerCodes; /** * Dispatched when the size of the media being loaded is known. @@ -751,7 +751,7 @@ public class MediaContainer extends Sprite } else if (_media is SimpleVideoDisplay) { var vid :SimpleVideoDisplay = SimpleVideoDisplay(_media); -// vid.removeEventListener(VideoPlayerCodes.SIZE, handleVideoSizeKnown); +// vid.removeEventListener(MediaPlayerCodes.SIZE, handleVideoSizeKnown); vid.unload(); } } diff --git a/src/as/com/threerings/flash/media/FlvVideoPlayer.as b/src/as/com/threerings/flash/media/FlvVideoPlayer.as index b03ec708..80ba6b52 100644 --- a/src/as/com/threerings/flash/media/FlvVideoPlayer.as +++ b/src/as/com/threerings/flash/media/FlvVideoPlayer.as @@ -68,11 +68,11 @@ public class FlvVideoPlayer extends EventDispatcher _netStream.play(url); if (_autoPlay) { - updateState(VideoPlayerCodes.STATE_PLAYING); + updateState(MediaPlayerCodes.STATE_PLAYING); } else { _netStream.pause(); - updateState(VideoPlayerCodes.STATE_READY); + updateState(MediaPlayerCodes.STATE_READY); } } @@ -99,7 +99,7 @@ public class FlvVideoPlayer extends EventDispatcher { if (_netStream != null) { _netStream.resume(); - updateState(VideoPlayerCodes.STATE_PLAYING); + updateState(MediaPlayerCodes.STATE_PLAYING); } // TODO: throw an error if _netStream == null?? } @@ -109,7 +109,7 @@ public class FlvVideoPlayer extends EventDispatcher { if (_netStream != null) { _netStream.pause(); - updateState(VideoPlayerCodes.STATE_PAUSED); + updateState(MediaPlayerCodes.STATE_PAUSED); } } @@ -190,12 +190,12 @@ public class FlvVideoPlayer extends EventDispatcher _vid.width = _size.x; _vid.height = _size.y; - dispatchEvent(new ValueEvent(VideoPlayerCodes.SIZE, _size.clone())); + dispatchEvent(new ValueEvent(MediaPlayerCodes.SIZE, _size.clone())); } protected function handlePositionCheck (event :TimerEvent) :void { - dispatchEvent(new ValueEvent(VideoPlayerCodes.POSITION, getPosition())); + dispatchEvent(new ValueEvent(MediaPlayerCodes.POSITION, getPosition())); } protected function handleNetStatus (event :NetStatusEvent) :void @@ -203,7 +203,7 @@ public class FlvVideoPlayer extends EventDispatcher var info :Object = event.info; if ("error" == info.level) { log.warning("NetStatus error: " + info.code); - dispatchEvent(new ValueEvent(VideoPlayerCodes.ERROR, info.code)); + dispatchEvent(new ValueEvent(MediaPlayerCodes.ERROR, info.code)); return; } // else info.level == "status" @@ -228,7 +228,7 @@ public class FlvVideoPlayer extends EventDispatcher // rewind to the beginning _netStream.seek(0); _netStream.pause(); - updateState(VideoPlayerCodes.STATE_PAUSED); + updateState(MediaPlayerCodes.STATE_PAUSED); break; case "NetStream.Seek.Notify": @@ -258,7 +258,7 @@ public class FlvVideoPlayer extends EventDispatcher protected function redispatchError (event :ErrorEvent) :void { log.warning("got video error: " + event); - dispatchEvent(new ValueEvent(VideoPlayerCodes.ERROR, event.text)); + dispatchEvent(new ValueEvent(MediaPlayerCodes.ERROR, event.text)); } /** @@ -274,7 +274,7 @@ public class FlvVideoPlayer extends EventDispatcher if ("duration" in info) { _duration = Number(info.duration); if (!isNaN(_duration)) { - dispatchEvent(new ValueEvent(VideoPlayerCodes.DURATION, _duration)); + dispatchEvent(new ValueEvent(MediaPlayerCodes.DURATION, _duration)); } } } @@ -284,14 +284,14 @@ public class FlvVideoPlayer extends EventDispatcher const oldState :int = _state; _state = newState; - dispatchEvent(new ValueEvent(VideoPlayerCodes.STATE, newState)); + dispatchEvent(new ValueEvent(MediaPlayerCodes.STATE, newState)); - if (_state == VideoPlayerCodes.STATE_PLAYING) { + if (_state == MediaPlayerCodes.STATE_PLAYING) { _positionChecker.start(); } else { _positionChecker.reset(); - if (oldState == VideoPlayerCodes.STATE_PLAYING) { + if (oldState == MediaPlayerCodes.STATE_PLAYING) { handlePositionCheck(null); } } @@ -307,7 +307,7 @@ public class FlvVideoPlayer extends EventDispatcher protected var _netStream :NetStream; - protected var _state :int = VideoPlayerCodes.STATE_UNREADY; + protected var _state :int = MediaPlayerCodes.STATE_UNREADY; /** Our size, null until known. */ protected var _size :Point; diff --git a/src/as/com/threerings/flash/media/MediaPlayer.as b/src/as/com/threerings/flash/media/MediaPlayer.as new file mode 100644 index 00000000..1781475e --- /dev/null +++ b/src/as/com/threerings/flash/media/MediaPlayer.as @@ -0,0 +1,93 @@ +// +// $Id$ + +package com.threerings.flash.media { + +import flash.events.IEventDispatcher; + +import com.threerings.util.ValueEvent; + +/** + * Dispatched when the state of the mediaplayer changes, usually in response to commands + * such as play/pause, etc. + * value: an int state. @see MediaPlayerCodes + * + * @eventType com.threerings.flash.media.MediaPlayerCodes.STATE + */ +[Event(name="state", type="com.threerings.util.ValueEvent")] + +/** + * Dispatched when the total duration of the media is known. + * value: a Number expressing the duration in seconds. + * + * @eventType com.threerings.flash.media.MediaPlayerCodes.DURATION + */ +[Event(name="duration", type="com.threerings.util.ValueEvent")] + +/** + * Dispatched periodically as the position is updated, during playback. + * value: a Number expressing the position in seconds. + * + * @eventType com.threerings.flash.media.MediaPlayerCodes.POSITION + */ +[Event(name="position", type="com.threerings.util.ValueEvent")] + +/** + * Dispatched when there's a problem. + * value: a String error code/message. + * + * @eventType com.threerings.flash.media.MediaPlayerCodes.ERROR + */ +[Event(name="error", type="com.threerings.util.ValueEvent")] + +/** + * Implemented by media-playing backends. + */ +public interface MediaPlayer extends IEventDispatcher +{ + /** + * @return a MediaPlayerCodes state constant. + */ + function getState () :int; + + /** + * Play the media, if not already. + */ + function play () :void; + + /** + * Pause the media, if not already. + */ + function pause () :void; + + /** + * Get the duration of the media, in seconds, or NaN if not yet known. + */ + function getDuration () :Number; + + /** + * Get the position of the media, in seconds, or NaN if not yet ready. + */ + function getPosition () :Number; + + /** + * Seek to the specified position. + */ + function seek (position :Number) :void; + + /** + * Set the volume, between 0-1. + */ + function setVolume (volume :Number) :void; + + /** + * Get the volume, from 0 to 1. + */ + function getVolume () :Number; + + /** + * Unload the media. + */ + function unload () :void; +} +} diff --git a/src/as/com/threerings/flash/media/VideoPlayerCodes.as b/src/as/com/threerings/flash/media/MediaPlayerCodes.as similarity index 89% rename from src/as/com/threerings/flash/media/VideoPlayerCodes.as rename to src/as/com/threerings/flash/media/MediaPlayerCodes.as index 199cb967..84533dec 100644 --- a/src/as/com/threerings/flash/media/VideoPlayerCodes.as +++ b/src/as/com/threerings/flash/media/MediaPlayerCodes.as @@ -3,7 +3,7 @@ package com.threerings.flash.media { -public class VideoPlayerCodes +public class MediaPlayerCodes { public static const STATE :String = "state"; @@ -11,6 +11,7 @@ public class VideoPlayerCodes public static const POSITION :String = "position"; + /** Only applicable for VideoPlayer. */ public static const SIZE :String = "size"; public static const ERROR :String = "error"; diff --git a/src/as/com/threerings/flash/media/SimpleVideoDisplay.as b/src/as/com/threerings/flash/media/SimpleVideoDisplay.as index a158437f..5357d437 100644 --- a/src/as/com/threerings/flash/media/SimpleVideoDisplay.as +++ b/src/as/com/threerings/flash/media/SimpleVideoDisplay.as @@ -19,7 +19,7 @@ import com.threerings.util.ValueEvent; /** * - * @eventType com.threerings.flash.video.VideoPlayerCodes.SIZE + * @eventType com.threerings.flash.video.MediaPlayerCodes.SIZE */ [Event(name="size", type="com.threerings.util.ValueEvent")] @@ -38,11 +38,11 @@ public class SimpleVideoDisplay extends Sprite public function SimpleVideoDisplay (player :VideoPlayer) { _player = player; - _player.addEventListener(VideoPlayerCodes.STATE, handlePlayerState); - _player.addEventListener(VideoPlayerCodes.SIZE, handlePlayerSize); - _player.addEventListener(VideoPlayerCodes.DURATION, handlePlayerDuration); - _player.addEventListener(VideoPlayerCodes.POSITION, handlePlayerPosition); - _player.addEventListener(VideoPlayerCodes.ERROR, handlePlayerError); + _player.addEventListener(MediaPlayerCodes.STATE, handlePlayerState); + _player.addEventListener(MediaPlayerCodes.SIZE, handlePlayerSize); + _player.addEventListener(MediaPlayerCodes.DURATION, handlePlayerDuration); + _player.addEventListener(MediaPlayerCodes.POSITION, handlePlayerPosition); + _player.addEventListener(MediaPlayerCodes.ERROR, handlePlayerError); addChild(_player.getDisplay()); @@ -132,12 +132,12 @@ public class SimpleVideoDisplay extends Sprite event.stopImmediatePropagation(); switch (_player.getState()) { - case VideoPlayerCodes.STATE_READY: - case VideoPlayerCodes.STATE_PAUSED: + case MediaPlayerCodes.STATE_READY: + case MediaPlayerCodes.STATE_PAUSED: _player.play(); break; - case VideoPlayerCodes.STATE_PLAYING: + case MediaPlayerCodes.STATE_PLAYING: _player.pause(); break; @@ -261,9 +261,9 @@ public class SimpleVideoDisplay extends Sprite const g :Graphics = _hud.graphics; g.clear(); - if ((state != VideoPlayerCodes.STATE_READY) && - (state != VideoPlayerCodes.STATE_PLAYING) && - (state != VideoPlayerCodes.STATE_PAUSED)) { + if ((state != MediaPlayerCodes.STATE_READY) && + (state != MediaPlayerCodes.STATE_PLAYING) && + (state != MediaPlayerCodes.STATE_PAUSED)) { // draw something loading-like // TODO animated swf g.beginFill(0x000033); @@ -282,7 +282,7 @@ public class SimpleVideoDisplay extends Sprite g.lineStyle(2, 0xFFFFFF); g.drawCircle(0, 0, 20); - if (state == VideoPlayerCodes.STATE_PLAYING) { + if (state == MediaPlayerCodes.STATE_PLAYING) { g.lineStyle(2, 0x00FF00); g.moveTo(-4, -10); g.lineTo(-4, 10); diff --git a/src/as/com/threerings/flash/media/VideoPlayer.as b/src/as/com/threerings/flash/media/VideoPlayer.as index 1db40cdc..3ff7f892 100644 --- a/src/as/com/threerings/flash/media/VideoPlayer.as +++ b/src/as/com/threerings/flash/media/VideoPlayer.as @@ -5,111 +5,31 @@ package com.threerings.flash.media { import flash.display.DisplayObject; -import flash.events.IEventDispatcher; - import flash.geom.Point; import com.threerings.util.ValueEvent; -/** - * Dispatched when the state of the videoplayer changes, usually in response to commands - * such as play/pause, etc. - * value: an int state. @see VideoPlayerCodes - * - * @eventType com.threerings.flash.video.VideoPlayerCodes.STATE - */ -[Event(name="state", type="com.threerings.util.ValueEvent")] - -/** - * Dispatched when the total duration of the video is known. - * value: a Number expressing the duration in seconds. - * - * @eventType com.threerings.flash.video.VideoPlayerCodes.DURATION - */ -[Event(name="duration", type="com.threerings.util.ValueEvent")] - -/** - * Dispatched periodically as the position is updated, during playback. - * value: a Number expressing the position in seconds. - * - * @eventType com.threerings.flash.video.VideoPlayerCodes.POSITION - */ -[Event(name="position", type="com.threerings.util.ValueEvent")] - /** * Disptached when the size of the video is known. * value: a Point expressing the width/height. * - * @eventType com.threerings.flash.video.VideoPlayerCodes.SIZE + * @eventType com.threerings.flash.media.MediaPlayerCodes.SIZE */ [Event(name="size", type="com.threerings.util.ValueEvent")] /** - * Dispatched when there's a problem. - * value: a String error code/message. - * - * @eventType com.threerings.flash.video.VideoPlayerCodes.ERROR + * Implemented by video-playing backends. */ -[Event(name="error", type="com.threerings.util.ValueEvent")] - -/** - * Implemented by video playing backends. - */ -public interface VideoPlayer extends IEventDispatcher +public interface VideoPlayer extends MediaPlayer { /** * Get the actual visualization of the video. */ function getDisplay () :DisplayObject; - /** - * @return a VideoPlayerCodes state constant. - */ - function getState () :int; - /** * Get the size of the video, or null if not yet known. */ function getSize () :Point; - - /** - * Play the video, if not already. - */ - function play () :void; - - /** - * Pause the video, if not already. - */ - function pause () :void; - - /** - * Get the duration of the video, in seconds, or NaN if not yet known. - */ - function getDuration () :Number; - - /** - * Get the position of the video, in seconds, or NaN if not yet ready. - */ - function getPosition () :Number; - - /** - * Seek to the specified position. - */ - function seek (position :Number) :void; - - /** - * Set the volume, between 0-1. - */ - function setVolume (volume :Number) :void; - - /** - * Get the volume, from 0 to 1. - */ - function getVolume () :Number; - - /** - * Unload the video. - */ - function unload () :void; } }