gwe@cbdkc1.UUCP ( George Erhart x4021 CB 3D288 WDS ) (11/03/85)
[ here little buggie ... <crunch> ] I was playing with the macintalk speech stuff this weekend and discovered a bug in the megamax C implementations of SetSoundVol() and GetSoundVol(). (This was using version 2.1b!) I don't have the sources for syslib, however I attempted to crank the volume before starting the speech. A call to SetSoundVol(7) resulted in no change. So i disassembled the library file sound.o and took a look. What I found did not make a lot of sense compared to what IM said. So, I wrote two replacement routines SetSoundLevel() and GetSoundLevel(), and they work. So here they are: #include <os.h> int getsoundlevel() { syspptr stuff; int retval; stuff = getsyspptr(); retval = stuff->volclik & 0x0700; return(retval>>8 ); } setsoundlevel(level) int level; { syspptr stuff; int current,ret; stuff = getsyspptr(); current = stuff->volclik; current = current & 0xf8ff; level = ((level&7)<<8); stuff->volclik = current | level; ret = writeparam(); } -- George Erhart at AT&T Bell Laboratories Columbus, Ohio 614-860-4021 {ihnp4,cbosgd}!cbdkc1!gwe