Eliot Miranda uploaded a new version of Sound to project The Trunk:
http://source.squeak.org/trunk/Sound-eem.90.mcz
==================== Summary ====================
Name: Sound-eem.90
Author: eem
Time: 27 July 2022, 11:04:08.439551 am
UUID: d2a3fba6-3061-4ffc-bfcf-125f6bfdbafc
Ancestors: Sound-mt.89
Add interfaces for enumerating the sound player and recorder devices and setting the current device.
=============== Diff against Sound-mt.89 ===============
Item was added:
+ ----- Method: SoundPlayer class>>defaultPlayer (in category 'accessing') -----
+ defaultPlayer
+ "Answer the deviceName of the default device to be used as the next player (output) device to be opened."
+ ^self primDefaultPlayer!
Item was added:
+ ----- Method: SoundPlayer class>>defaultPlayer: (in category 'accessing') -----
+ defaultPlayer: deviceName
+ self primDefaultPlayer: deviceName!
Item was added:
+ ----- Method: SoundPlayer class>>numberOfPlayerDevices (in category 'accessing') -----
+ numberOfPlayerDevices
+ "Answer the number of player (output) devices. See #playerDeviceNameOf:."
+ <primitive: 'primitiveGetNumberOfSoundPlayerDevices' module: 'SoundPlugin'>
+ ^self primitiveFailed!
Item was added:
+ ----- Method: SoundPlayer class>>playerDeviceNameOfIndex: (in category 'private') -----
+ playerDeviceNameOfIndex: deviceNumber
+ "Answer the name of the nth player (output) device, or nil.
+ The device number must range from 1 to the #numberOfPlayerDevices."
+ <primitive: 'primitiveGetSoundPlayerDeviceName' module: 'SoundPlugin'>
+ ^self primitiveFailed!
Item was added:
+ ----- Method: SoundPlayer class>>playerDevices (in category 'accessing') -----
+ playerDevices
+ "Answer a sortable collection of available values for use with #defaultPlayer:."
+ ^(1 to: self numberOfPlayerDevices) collect:
+ [:index | self playerDeviceNameOfIndex: index]!
Item was added:
+ ----- Method: SoundPlayer class>>primDefaultPlayer (in category 'private') -----
+ primDefaultPlayer
+ "Answer the deviceName of the default device to be used as the next player (output) device to be opened."
+ <primitive: 'primitiveGetDefaultSoundPlayer' module: 'SoundPlugin'>
+ ^self primitiveFailed!
Item was added:
+ ----- Method: SoundPlayer class>>primDefaultPlayer: (in category 'private') -----
+ primDefaultPlayer: deviceName
+ "Set deviceName as the default device to be used as the next player (output) device to be opened."
+ <primitive: 'primitiveSetDefaultSoundPlayer' module: 'SoundPlugin'>
+ ^self primitiveFailed!
Item was added:
+ ----- Method: SoundRecorder class>>defaultRecorder (in category 'accessing') -----
+ defaultRecorder
+ "Get deviceName of the default device to be used as the next recorder (input) device to be opened."
+ ^self primDefaultRecorder!
Item was added:
+ ----- Method: SoundRecorder class>>defaultRecorder: (in category 'accessing') -----
+ defaultRecorder: deviceName
+ "Set deviceName as the default device to be used as the next recorder (input) device to be opened.
+ The initial listing setup (self recorderDevices) should be called prior to doing this;
+ if it returns NULL, then no devices are to be considered."
+ self primDefaultRecorder: deviceName!
Item was added:
+ ----- Method: SoundRecorder class>>numberOfRecorderDevices (in category 'accessing') -----
+ numberOfRecorderDevices
+ "Answer the number of recorder (input) devices. See #recorderDeviceNameOf:."
+ <primitive: 'primitiveGetNumberOfSoundRecorderDevices' module: 'SoundPlugin'>
+ ^self primitiveFailed!
Item was added:
+ ----- Method: SoundRecorder class>>primDefaultRecorder (in category 'private') -----
+ primDefaultRecorder
+ "Get deviceName of the default device to be used as the next recorder (input) device to be opened."
+ <primitive: 'primitiveGetDefaultSoundRecorder' module: 'SoundPlugin'>
+ ^self primitiveFailed!
Item was added:
+ ----- Method: SoundRecorder class>>primDefaultRecorder: (in category 'private') -----
+ primDefaultRecorder: deviceName
+ "Set deviceName as the default device to be used as the next recorder (input) device to be opened."
+ <primitive: 'primitiveSetDefaultSoundRecorder' module: 'SoundPlugin'>
+ ^self primitiveFailed!
Item was added:
+ ----- Method: SoundRecorder class>>recorderDeviceNameOfIndex: (in category 'private') -----
+ recorderDeviceNameOfIndex: deviceNumber
+ "Answer the name of the nth recorder (input) device, or nil.
+ The device number must range from 1 to the #numberOfRecorderDevices."
+ <primitive: 'primitiveGetSoundRecorderDeviceName' module: 'SoundPlugin'>
+ ^self primitiveFailed!
Item was added:
+ ----- Method: SoundRecorder class>>recorderDevices (in category 'accessing') -----
+ recorderDevices
+ "Answer a sortable collection of available values for use with #defaultRecorder:."
+ ^(1 to: self numberOfRecorderDevices) collect:
+ [:index | self recorderDeviceNameOfIndex: index]!
Eliot Miranda uploaded a new version of FFI-Kernel to project FFI:
http://source.squeak.org/FFI/FFI-Kernel-eem.226.mcz
==================== Summary ====================
Name: FFI-Kernel-eem.226
Author: eem
Time: 27 July 2022, 10:21:22.93735 am
UUID: 5c47c335-b61d-40a2-befc-64f62f2f1d34
Ancestors: FFI-Kernel-mt.225
Robustness in the type framework. In at least one case of loading old code an ExternalUnknownType was created whose referentClass is a class, not a class name symbol.
=============== Diff against FFI-Kernel-mt.225 ===============
Item was changed:
----- Method: ExternalUnknownType>>typeName (in category 'accessing') -----
typeName
+ referentClass isBehavior ifTrue:
+ [^referentClass name].
-
self assert: [referentClass isSymbol].
^ referentClass "Usually just the name of the class."!
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.1488.mcz
==================== Summary ====================
Name: Kernel-eem.1488
Author: eem
Time: 26 July 2022, 11:59:44.968962 am
UUID: fb63409e-0be1-4ab5-a3e6-98d7313bc5d7
Ancestors: Kernel-ct.1487
Fix the formatting of BlockClosure>>forkAt:named:
=============== Diff against Kernel-ct.1487 ===============
Item was changed:
----- Method: BlockClosure>>forkAt:named: (in category 'scheduling') -----
forkAt: priority named: name
-
"Create and schedule a Process running the code in the receiver at the
+ given priority and having the given name. Answer the newly created
+ process. was svp 6/23/2003 10:59"
- given priority and having the given name. Answer the newly created
-
- process."
-
-
-
| forkedProcess |
-
forkedProcess := self newProcess.
-
forkedProcess priority: priority.
-
forkedProcess name: name.
-
^ forkedProcess resume!
Eliot Miranda uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-eem.529.mcz
==================== Summary ====================
Name: Graphics-eem.529
Author: eem
Time: 26 July 2022, 11:58:24.028857 am
UUID: e9d779b9-578e-4eea-9d2a-b68fffc5c366
Ancestors: Graphics-mt.528
Add the new primitivePixelValueAtPut primitive, which is included in 6.x VMs.
=============== Diff against Graphics-mt.528 ===============
Item was added:
+ ----- Method: Form>>primPixelValueAtX:y:put: (in category 'pixel access') -----
+ primPixelValueAtX: x y: y put: pixelValue
+ "Set the raw pixel value at the given point. Answer the previous value of the pixel.
+ This pixel value depends on the receiver's depth. Typical clients use colorAt: to get a Color. Make sure the colorMap is nil for ColorForms "
+
+ <primitive: 'primitivePixelValueAtPut' module:'BitBltPlugin' error: ec>
+ | oldValue |
+ oldValue := self primPixelValueAtX: x y: y.
+ (BitBlt bitPokerToForm: self) pixelAt: x@y put: pixelValue.
+ ^oldValue!
Christoph Thiede uploaded a new version of Kernel to project The Treated Inbox:
http://source.squeak.org/treated/Kernel-ct.1407.mcz
==================== Summary ====================
Name: Kernel-ct.1407
Author: ct
Time: 16 May 2021, 7:06:28.57708 pm
UUID: 8efbcb28-1774-174b-9fe0-17609ca53503
Ancestors: Kernel-nice.1402
Fixes #isPrimFailToken: for objects that do not implement #isArray in a conventional way, or that do not implement it all. The following should be debuggable without any problems, but currently is not due to a regression in Kernel-eem.1366.
Fur more information, see: http://forum.world.st/The-Trunk-Kernel-eem-1366-mcz-td5126558.html
=============== Diff against Kernel-nice.1402 ===============
Item was changed:
----- Method: Context>>isPrimFailToken: (in category 'private') -----
isPrimFailToken: contextOrPrimFailToken
"Answer if contextOrPrimFailToken, which will either be a Context object or
a primitive fail token (a tuple of the PrimitiveFailToken unique object and
a primitive failure code), is the latter. This should only be used with the
(possibly indirect) results of Context>>doPrimitive:method:receiver:args:"
+ ^ (self objectClass: contextOrPrimFailToken) == Array
- ^contextOrPrimFailToken isArray
and: [contextOrPrimFailToken size = 2
and: [(contextOrPrimFailToken at: 1) == PrimitiveFailToken]]!