[etoys-dev] Etoys: ScratchConnect-Richo.2.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Mar 12 00:51:05 EDT 2012
Ricardo Moran uploaded a new version of ScratchConnect to project Etoys:
http://source.squeak.org/etoys/ScratchConnect-Richo.2.mcz
==================== Summary ====================
Name: ScratchConnect-Richo.2
Author: Richo
Time: 12 March 2012, 1:51:13 am
UUID: d8023660-e3f6-2e4c-8229-6a4ff1e157fe
Ancestors: ScratchConnect-Richo.1
Fixed a couple of potential issues detected after a more detailed code review:
* Disconnect the socket when deleting the morph.
* Changed a couple of sends in Player from "costume" to "costume renderedMorph", otherwise they would fail if the ScratchClientMorph is rotated.
* Changed #stepTime to only return 0 if the morph is connected, otherwise send "super stepTime".
* Changed to avoid connecting if another instance is already connected to the same host and port.
=============== Diff against ScratchConnect-Richo.1 ===============
Item was changed:
----- Method: Player>>broadcast: (in category '*scratchconnect') -----
broadcast: aString
+ self costume renderedMorph broadcast: aString!
- self costume broadcast: aString!
Item was changed:
----- Method: Player>>receiveMessages (in category '*scratchconnect') -----
receiveMessages
+ self costume renderedMorph receiveMessages!
- self costume receiveMessages!
Item was changed:
----- Method: Player>>sendSensorUpdateNamed:value: (in category '*scratchconnect') -----
sendSensorUpdateNamed: aName value: aValue
+ self costume renderedMorph sendSensorUpdateNamed: aName value: aValue!
- self costume sendSensorUpdateNamed: aName value: aValue!
Item was changed:
----- Method: Player>>sendValues (in category '*scratchconnect') -----
sendValues
| updateParameters |
updateParameters := Dictionary new.
self slotNames
do: [:slt | updateParameters
at: slt
put: (self
perform: (Utilities getterSelectorFor: slt))].
+ self costume renderedMorph sendSensorUpdate: updateParameters!
- self costume sendSensorUpdate: updateParameters!
Item was changed:
----- Method: Player>>sensorUpdate: (in category '*scratchconnect') -----
sensorUpdate: aString
+ self costume renderedMorph sendScratchCommand: 'sensor-update'
- self costume sendScratchCommand: 'sensor-update'
, (aString convertToEncoding: 'UTF8')!
Item was added:
+ ----- Method: ScratchClientMorph>>delete (in category 'initialization') -----
+ delete
+ super delete.
+ self closeConnectionToScratch!
Item was added:
+ ----- Method: ScratchClientMorph>>isOtherInstanceConnectedTo:port: (in category 'private') -----
+ isOtherInstanceConnectedTo: host port: port
+ self class allInstancesDo: [:each |
+ (each isConnectedToScratch
+ and: [each scratchHost = host
+ and: [each scratchPort = port]])
+ ifTrue: [^ true]].
+ ^ false!
Item was changed:
----- Method: ScratchClientMorph>>openConnectionToScratch (in category 'private') -----
openConnectionToScratch
self isConnectedToScratch
ifTrue: [^ self].
(self scratchHost isNil
or: [self scratchPort isNil])
ifTrue: [^ self].
+ (self isOtherInstanceConnectedTo: self scratchHost port: self scratchPort)
+ ifTrue: [self error].
scratchSocket
ifNotNil: [[scratchSocket close]
ensure: [scratchSocket := nil]].
scratchSocket := SocketStream openConnectionToHostNamed: self scratchHost port: self scratchPort.
scratchSocket binary.
scratchSocket buffered: false.
self updateIndicator.
self isConnectedToScratch
ifTrue: [self addLog: 'open connection: ' , self scratchHost , ':' , self scratchPort printString.
self sayBalloon: 'open connection: ' , self scratchHost , ':' , self scratchPort printString.
self isVerbose
ifTrue: [self beep: 'meow']]!
Item was changed:
----- Method: ScratchClientMorph>>step (in category 'stepping and presenter') -----
step
self isConnectedToScratch
ifTrue: [self receiveMessages].
+ self updateIndicator!
- self updateIndicator.
- super step!
Item was changed:
+ ----- Method: ScratchClientMorph>>stepTime (in category 'stepping and presenter') -----
- ----- Method: ScratchClientMorph>>stepTime (in category 'testing') -----
stepTime
+ ^ self isConnectedToScratch
+ ifTrue: [0]
+ ifFalse: [super stepTime]!
- ^ 0!
More information about the etoys-dev
mailing list