Etoys: Movies-kfr.4.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Etoys: Movies-kfr.4.mcz

commits-2
Karl Ramberg uploaded a new version of Movies to project Etoys:
http://source.squeak.org/etoys/Movies-kfr.4.mcz

==================== Summary ====================

Name: Movies-kfr.4
Author: kfr
Time: 2 June 2011, 1:21:04 pm
UUID: 964a20be-32ec-6047-9114-ee4e9bffa31a
Ancestors: Movies-kfr.3

Try to play example videos across project saves and moves

=============== Diff against Movies-kfr.3 ===============

Item was changed:
  ----- Method: MPEGDisplayMorph>>mpegFileIsOpen (in category 'file open/close') -----
  mpegFileIsOpen
- "Answer true if I have an open, valid MPEG file handle. If the
- handle is not valid, try to re-open the file."
- | fileName |
  mpegFile
  ifNil: [^ false].
  mpegFile fileHandle
+ ifNil: [^ false].
- ifNil: ["try to reopen the file, which may have been saved in a
- snapshot "
- fileName := mpegFile fileName.
- self openFileNamed: mpegFile fileName.
- mpegFile
- ifNil: [self inform: 'Path changed. Enter new one for: ' translated
- , fileName.
- self openMPEGFile. mpegFile ifNil:[^false]].
- mpegFile fileHandle
- ifNil: [mpegFile := nil]].
  ^ mpegFile notNil!

Item was added:
+ ----- Method: MPEGDisplayMorph>>openExampleEtoysFile (in category 'file open/close') -----
+ openExampleEtoysFile
+
+ | fullFileName fileName slash newFullFileName |
+ fullFileName := mpegFile fileName.
+ (fullFileName occurrencesOf: $/) > (fullFileName occurrencesOf: $\)
+                                  ifTrue:[ slash := $/]
+ ifFalse:[ slash := $\].
+ fileName := mpegFile fileName copyAfterLast: slash.
+ newFullFileName := Smalltalk imagePath, FileDirectory slash, 'ExampleEtoys', FileDirectory slash, fileName.
+ self openFileNamed: newFullFileName
+ !

Item was changed:
  ----- Method: MPEGDisplayMorph>>startPlaying (in category 'commands') -----
  startPlaying
+ | frameIndex fileName |
+ fileName := mpegFile fileName.
- "Start playing the movie at the current position."
-
- | frameIndex |
  self stopPlaying.
+ stopFrame := nil.
+ self mpegFileIsOpen
+ ifFalse: [self openFileNamed: mpegFile fileName.
+ mpegFile
+ ifNil: [self inform: 'Path changed. Enter new one for: ' translated , fileName.
+ self openMPEGFile.
+ mpegFile
+ ifNil: [^ self]].
+ mpegFile fileHandle
+ ifNil: [mpegFile := nil]].
- stopFrame _ nil.
- self mpegFileIsOpen ifFalse: [^ self].
-
-
-
  mpegFile hasAudio
+ ifTrue: [mpegFile hasVideo
+ ifTrue: [soundTrack reset.
+ soundTrack soundPosition: (mpegFile videoGetFrame: 0) asFloat
+ / (mpegFile videoFrames: 0).
+ frameIndex := soundTrack millisecondsSinceStart * desiredFrameRate // 1000.
+ frameIndex := (frameIndex max: 0)
+ min: (mpegFile videoFrames: 0)
+ - 3.
+ mpegFile videoSetFrame: frameIndex stream: 0].
- ifTrue:
- [mpegFile hasVideo ifTrue:
- ["set movie frame position from soundTrack position"
- soundTrack reset.  "ensure file is open before positioning"
- soundTrack soundPosition: (mpegFile videoGetFrame: 0) asFloat / (mpegFile videoFrames: 0).
- "now set frame index from the soundtrack position for best sync"
- frameIndex _ ((soundTrack millisecondsSinceStart * desiredFrameRate) // 1000).
- frameIndex _ (frameIndex max: 0) min: ((mpegFile videoFrames: 0) - 3).
- mpegFile videoSetFrame: frameIndex stream: 0].
-
  SoundPlayer stopReverb.
  soundTrack volume: volume.
  soundTrack repeat: repeat.
  soundTrack resumePlaying.
+ startFrame := startMSecs := 0]
+ ifFalse: [soundTrack := nil.
+ startFrame := mpegFile videoGetFrame: 0.
+ startMSecs := Time millisecondClockValue].
+ running := true!
- startFrame _ startMSecs _ 0]
- ifFalse:
- [soundTrack _ nil.
- startFrame _ mpegFile videoGetFrame: 0.
- startMSecs _ Time millisecondClockValue].
- running _  true!

Item was added:
+ ----- Method: MPEGDisplayMorph>>startPlayingEtoysExample (in category 'commands') -----
+ startPlayingEtoysExample
+ self openExampleEtoysFile.
+ self startPlaying
+ !

_______________________________________________
etoys-dev mailing list
[hidden email]
http://lists.squeakland.org/mailman/listinfo/etoys-dev