[etoys-dev] Etoys: Movies-kfr.3.mcz

commits at source.squeak.org commits at source.squeak.org
Fri May 27 09:07:21 EDT 2011


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

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

Name: Movies-kfr.3
Author: kfr
Time: 27 May 2011, 3:07:03 pm
UUID: 6e866d96-bfa6-644d-a4f6-b6c37739c4b1
Ancestors: Movies-kfr.2

Fix to keep reference to external video file over project saves

=============== Diff against Movies-kfr.2 ===============

Item was changed:
  ----- Method: MPEGDisplayMorph>>closeFile (in category 'file open/close') -----
  closeFile
  	"Close my MPEG file, if any."
  
  	mpegFile isNil
  		ifFalse: [
+ 			[mpegFile closeFile] ifError:[ nil].
- 			mpegFile closeFile.
  			mpegFile := nil.
  			frameBuffer := nil].
  
  	subtitles := nil.
  	self changed.
  !

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: ["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!
- 	"Answer true if I have an open, valid MPEG file handle. If the handle is not valid, try to re-open the file."
- 
- 	mpegFile ifNil: [^ false].
- 	mpegFile fileHandle ifNil: [
- 		"try to reopen the file, which may have been saved in a snapshot"
- 		mpegFile openFile: mpegFile fileName.
- 		mpegFile fileHandle ifNil: [mpegFile _ nil]].
- 	^ mpegFile notNil
- !

Item was changed:
  ----- Method: MPEGDisplayMorph>>startPlaying (in category 'commands') -----
  startPlaying
  	"Start playing the movie at the current position."
  
  	| frameIndex |
  	self stopPlaying.
  	stopFrame _ nil.
  	self mpegFileIsOpen ifFalse: [^ self].
  
- 	(FileStream isAFileNamed: mpegFile fileName) ifFalse: [
- 		self inform: 'Path changed. Enter new one for: ' translated, (FileDirectory localNameFor: mpegFile fileName).
- 		self openMPEGFile.
- 		(self openFileNamed: (mpegFile fileName)) ifFalse:[ ^self inform:'No valid file selected' translated]
- 		].
  	
+ 	
  	mpegFile hasAudio
  		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!



More information about the etoys-dev mailing list