Important: Inside Macintosh: Sound is deprecated as of Mac OS X v10.5. For new audio development in Mac OS X, use Core Audio. See the Audio page in the ADC Reference Library.
Exp1to3
You can use theExp1to3
procedure to expand a buffer of sound samples you previously have compressed with theComp3to1
procedure.
PROCEDURE Exp1to3 (inBuffer: Ptr; outBuffer: Ptr; cnt: LongInt; inState: Ptr; outState: Ptr; numChannels: LongInt; whichChannel: LongInt);
inBuffer
- A pointer to a buffer of packets to be expanded.
outBuffer
- A pointer to a buffer where the expanded samples will be written.
cnt
- The number of packets to expand.
inState
- A pointer to a 128-byte buffer from which the input state of the algorithm is read, or
NIL
. To initialize the algorithm, this buffer should be filled with zeros.outState
- A pointer to a 128-byte buffer to which the output state of the algorithm is written, or
NIL
. This buffer might be the same as that specified by theinState
parameter.numChannels
- The number of channels in the buffer pointed to by the
inBuffer
parameter.whichChannel
- The channel to expand, when
numChannels
is greater than 1. This parameter must be in the range of 1 tonumChannels
.DESCRIPTION
TheExp1to3
procedure expandscnt
packets of sound stored in the buffer specified byinBuffer
and places the result in the buffer specified byoutBuffer
, whose size must be at leastcnt
packets * 2 bytes per packet * 3, orcnt * 6
bytes. IfnumChannels
is greater than 1, then the compressed sound must be stored in interleaved format on a packet basis.If you expand compressed sound data that includes multiple sound channels, you retain only one channel of sound, which you specify in the
whichChannel
parameter. Thus, if you use theExp1to3
procedure to expand three-channel sound, the output buffer will be the same size as the input buffer since only one channel is retained. To retain multiple channels of sound after expansion, you must call theExp1to3
procedure for each channel to be expanded and then interleave the expanded sound data on a sample basis.The
Exp1to3
procedure expands every packet of sampled-sound data to exactly 6 bytes.You can use the
inState
andoutState
parameters to allow the MACE compression routines to preserve information about algorithms across calls. Alternatively, you may passNIL
state buffers and let the Sound Manager allocate the buffers internally.SPECIAL CONSIDERATIONS
Because theExp1to3
procedure might allocate memory, you should not call it at interrupt time.ASSEMBLY-LANGUAGE INFORMATION
The trap macro and routine selector for theExp1to3
procedure are
Trap macro Selector _SoundDispatch $00080010