ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) (01/24/91)
I was watching the "Sound" control panel with MacsBug the other evening, trying to figure out how it could get and set the default sound input device. I found a couple of new Sound Input Manager calls that it uses. Here are the interfaces for them, in Metrowerks Modula-2 (hopefully that should be equally annoying to both Pascal and C users...). The names of the routines are, of course, my own. The "get default device" call is the really useful one; you shouldn't go about changing the default device without the user's permission. CONST siToolNum = 20; (* tool number of Sound Input Manager *) siGetDefaultDevice = (2 * 256) + 80; siSetDefaultDevice = (2 * 256) + 84; PROCEDURE SPBGetDefaultDevice ( VAR deviceName : Str255 ) : OSErr; (* gets the name of the default sound input device from the in-memory setting. *) CODE 0203CH, siGetDefaultDevice, siToolNum, (* move.l #$02500014, d0 *) 0A800H; (* _SndDispatch *) PROCEDURE SPBSetDefaultDevice ( VAR deviceName : Str255 ) : OSErr; (* sets a new default input device. Note that this only changes the in-memory setting (which is lost when the machine shuts down); for a more permanent change, also save the name of the new default device in the STRing resource with ID -16456 in the System file. *) CODE 0203CH, siSetDefaultDevice, siToolNum, (* move.l #$02540014, d0 *) 0A800H; (* _SndDispatch *) Lawrence D'Oliveiro fone: +64-71-562-889 Computer Services Dept fax: +64-71-384-066 University of Waikato electric mail: ldo@waikato.ac.nz Hamilton, New Zealand 37^ 47' 26" S, 175^ 19' 7" E, GMT+13:00