fntSpeedyThread and fnwpSpeedyObject
for details about how this is implemented using MMOS/2.
Unfortunately, nowhere is documented how to access and modify the
system sounds that appear in the "Sound" object. I have accidently
discovered that
this is actually fairly easy: these are stored in MMPM.INI in the
MMOS/2 directory. Each sound has an index in that file, which I have
declared in common.h (those MMSOUND_* #define's).
These should be the
same on every system. The INI data then contains a
"<soundfile>#<description>#<volume>" string.
Sound data manipulation has been moved into a separate file with V0.9.0:
check /helpers/syssound.c for details. This now also supports
sound scheme manipulation.
To make sure that the actual sound playing (which requires MMPM/2) also works on systems where MMPM/2 is not installed, XWorkplace dynamically imports the functions from the MMPM/2 DLLs. See src\media\* for details.