sound.datatype Reference¶
BOOPSI datatype class reference for sound.datatype, synthesised from the AmigaOS NDK 3.2 Release 4 (Autodocs/sound).
Class properties¶
| Property | Value |
|---|---|
| Display name | sound.datatype |
| Group ID | GID_SOUND = MAKE_ID('s','o','u','n') (sound) |
| Superclass | (root) |
| File format | root sound class |
| Methods declared | 13 |
Description¶
The sound.datatype is the super-class for any sound related classes.
Methods¶
Each method is declared in the autodoc METHODS block. Method implementations are inherited from the superclass unless noted otherwise in the parent's autodoc.
| Method | Purpose |
|---|---|
OM_NEW |
Create a new sound object. |
OM_GET |
Obtain the value of an attribute. |
OM_SET |
Set the values of multiple attributes. |
OM_UPDATE |
Update the values of multiple attributes. |
OM_DISPOSE |
Dispose of a sound object. |
GM_LAYOUT |
Layout the object and notify the application of the title and size. |
GM_HITTEST |
Determine if the object has been hit with the mouse. |
GM_GOACTIVE |
Tell the object to go active. On SELECTDOWN, the sound will start playing. |
GM_HANDLEINPUT |
Handle input. Currently input (other than SELECTDOWN) doesn't affect the sound. |
GM_RENDER |
Cause the graphic to render. Currently the graphic for the sound is just a static icon. |
DTM_TRIGGER |
Cause an event to occur. Currently the only trigger event is STM_PLAY, which will cause the sound to start playing. NOTE: Subclasses which support streaming data access may support more than just the STM_PLAY event. |
DTM_COPY |
Copy the entire sound to the clipboard as 8SVX NOTE: Up to and including V40 sound.datatype never stored a valid VoiceHeader with the file. This was fixed in V44. Subclasses which support streaming data access may not support this method. |
DTM_WRITE |
Write the entire sound to a file as 8SVX NOTE: Up to and including V40 sound.datatype never stored a valid VoiceHeader with the file. This was fixed in V44. Subclasses which support streaming data access may not support this method. |
Release history (NDK 3.2 R4)¶
Excerpted from ReleaseNotes/sound-dt-RelNotes in the NDK 3.2 R4 distribution.
-------------------- AmigaOS 3.1.4(.1) project -----------------------
Changes for release 45.1 (14.7.2018)
- Recompiled from 44.20 for 3.1.4.
Changes for release 45.2 (14.8.2018)
- A couple of minor optimizations.
- Fixed a race condition in library
handling.
Changes for release 45.3 (8.9.2018)
- The "creative" inter-process communication between
the data types client and the sound daemon required
to disable some optimizations. With a properly placed
"volatile", the compiler can be made happy and requested
to re-read the necessary pointers.
- Removed a lot of code duplications and simplified the code
considerably.
- The check whether the audio samples were in chip memory
were testing for MEMF_FAST instead, and hence may have
failed for memory that is neither CHIP nor FAST. There
is probably no such thing, but better be safe than sorry.
Changes for release 45.4 (10.9.2018)
- Fixed another race condition in LibOpen.
Changes for release 45.5 (18.9.2018)
- One of the IORequests was assigned to the wrong channel.
- If now one of the IORequests returns, both are aborted
to avoid the risk of a potential deadlock.
----------------------- AmigaOS 3.2 project --------------------------
Changes for release 47.1 (25.5.2020):
- Added SDTA_BitsPerSample tag.
Changes for release 47.2 (26.7.2020):
- Fix seamless playback of streaming audio.
- Removed some code duplication
Changes for release 47.3 (27.7.2020):
- Fix seamless playback of streaming stereo.
- Send mono sounds to both left and right
Changes for release 47.4 (09.sep.2020):
- Improvements for seamless playback
Changes for release 47.5 (26.9.2020):
- Fixed corrupt saving of 16- and 32-bit samples.
Changes for release 47.6 (14.11.2020):
- Fix restarting after running on empty. Now we no longer restarts immidiately
As that would just cause us to keep running into empty over and over again.
Instead we halve the empty sample length so we may have to play empty twice
but possibly we can get running again faster.
Cross-references¶
datatypes.libraryReference — DataType API,NewDTObjectA(),DisposeDTObject(),DTA_*tagsiffparse.libraryReference — IFF file format primitives (FORM/LIST/PROP/CAT chunks)
Source: AmigaOS NDK 3.2 Release 4, Autodocs/sound_dtc.doc, Include_H/datatypes/datatypes.h, ReleaseNotes/sound-dt-RelNotes.