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

Source: AmigaOS NDK 3.2 Release 4, Autodocs/sound_dtc.doc, Include_H/datatypes/datatypes.h, ReleaseNotes/sound-dt-RelNotes.