'From etoys2.3 of 28 November 2007 [latest update: #1877] on 25 January 2008 at 12:23:18 pm'! "Change Set: ResumeMidi-yo Date: 25 January 2008 Author: Yoshiki Ohshima Make resuming a .mid file or a file with audio/midi type from Journal work."! !ExternalDropHandler class methodsFor: 'class initialization' stamp: 'yo 1/25/2008 11:29'! initialize "ExternalDropHandler initialize" self resetRegisteredHandlers. self registerHandler: self defaultImageHandler; registerHandler: self defaultGZipHandler; registerHandler: self defaultProjectHandler; registerHandler: self defaultMidiHandler.! ! !ExternalDropHandler class methodsFor: 'private' stamp: 'yo 1/25/2008 11:40'! defaultMidiHandler ^ ExternalDropHandler type: 'audio/midi' extension: 'mid' action: [:stream | ScorePlayerMorph playMidiStream: stream]! ! !ScorePlayerMorph class methodsFor: 'class initialization' stamp: 'yo 1/25/2008 11:28'! playMidiStream: aStream "Read a MIDI file stream. Does nothing if called with nil name." | f score | Smalltalk at: #MIDIFileReader ifPresent: [:midiReader | f _ aStream binary. score _ (midiReader new readMIDIFrom: f) asScore. f close. self openOn: score title: aStream name] ! ! !ScorePlayerMorph class methodsFor: 'system hookup' stamp: 'yo 1/25/2008 12:21'! openOn: aScore title: aString | player m | player _ ScorePlayer onScore: aScore. m _ (self new onScorePlayer: player title: aString) openInWorld. m center: ActiveWorld center. player resumePlaying.! ! ExternalDropHandler initialize!