[comp.sys.mac.programmer] Undocumented sound input calls

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