Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10 5/3/83; site utcsrgv.UUCP
Path: utzoo!utcsrgv!info-mac
From: info-mac@utcsrgv.UUCP (info-mac)
Newsgroups: ont.micro.mac
Subject: Re:  StartSound
Message-ID: <4639@utcsrgv.UUCP>
Date: Tue, 26-Jun-84 01:44:51 EDT
Article-I.D.: utcsrgv.4639
Posted: Tue Jun 26 01:44:51 1984
Date-Received: Tue, 26-Jun-84 07:26:40 EDT
Sender: peterr@utcsrgv.UUCP
Organization: CSRI, University of Toronto
Lines: 32

Date: Mon, 25 Jun 84 11:24:09 pdt
From: Bill Croft 
To: pallas@Pescadero
Subject: Re:  StartSound
Cc: croft@SUMEX-AIM.ARPA, info-mac@sumex, sumacc@sumex

  Date: Mon, 25 Jun 84 09:15:25 pdt
  From: Joseph I. Pallas 
  Subject: StartSound
  To: croft@safe
  
  The assembly implementation of StartSound (both the Apple version and yours)
  has the ASYNC flag commented out.  The effect of this seems to be that calls
  to StartSound do not return until the specified duration has passed.  I
  assume that you were just translating what was there, but do you have any
  idea why the ASYNC was commented out?  Is there a known problem mentioned in
  some document, or should I try changing it and see what happens?
  
  joe

Usually when one does ASYNC IO, several buffers are used so that you can
be filling one while the OS empties the other.  Since there is only one
buffer declared in the StartSound assembly helper,  Apple probably wanted
to reduce confusion and made the Write call synchronous.  Otherwise they
probably would have had to have a "TestSoundDone" routine and/or a 
"WaitSoundDone", etc.

If you want to do ASYNC IO, then setup your own ParamBlocks and use the
PBWrite call directly.  There is probably an example of this in the
SoundLab sample program.