marvel@tut.cis.ohio-state.edu (Howard P. Marvel) (03/08/89)
The situation: I wish to offer students using some courseware that I am writing the opportunity to change the volume of the Macintosh speaker. I have followed the suggestion in Inside Mac that one should use SetSoundVol to choose a new speaker volume and have an XCmd that gets a student's choice and resets the speaker with this routine. I save the speaker volume setting on entry into hypercard, reset with the setting used in the last invocation of the courseware, and then reset to the initial setting on exit. Everything works fine, except that I also use Macintalk at some points in the stack. It appears that Macintalk does not follow the Inside Mac suggestion and instead resets the parameter RAM. Questions: 1. Does this diagnosis sound correct? The problem is that the speaker volume setting chosen by the student is not preserved when Macintalk is accessed. 2. Is there some way to prevent Macintalk from acting in this antisocial way? 3. Barring that, can someone send me a sample of how one resets the parameter RAM from THINK C? Or should I store and reset speaker volume in the XCmd that speaks a string? All in all, this seems pretty weird, but I tried invoking the Moose while using Hypercard, and sure enough, my internal speaker setting was trashed. Howard P. Marvel Professor of Economics marvel@cis.ohio-state.edu hmarvel@econ.ohio-state.edu