home *** CD-ROM | disk | FTP | other *** search
-
- // This object manages multiple streams for sound output and
- // dynamically assigns a sound to one of the streams.
- //
- // This does not do preemption of currently playing sounds, thus
- // it will try to pick the best stream for the sound to play on;
- // if a stream is idling, it is used. If all streams are busy,
- // the stream which will finish next is chosen. When you init
- // the object, tell it how many streams it is to use.
- //
- // Note that a program may have multiple GKSoundStreams. Thus,
- // you can have several "groupings" of streams; one group to handle
- // certain types of sounds, etc. This allows you to have one stream
- // per sound, or several streams for an often played sound, or
- // one stream for a set of seldom-played sounds, or many streams for
- // a set of sounds that may overlap, but not necessarily. The
- // SoundPlayer object uses GKSoundStreams as part of it's guts.
-
- #import <appkit/appkit.h>
-
- @interface GKSoundStream:Object
- {
- id streamList, device, timeLeftList, currentTime;
- int tag; BOOL _initialized;
- }
-
- // Initialization:
- - init; // same as -initStreams:1
- - initStreams:(int)nstr; // preferred method
-
- - playSoundStruct:(SNDSoundStruct *)sound; // returns DAYTime which tells
- // when the sound will finish --
- // Do NOT free it; it's a private object!!!
-
- // for cleaning up; -free calls -freeObjects.
- - freeObjects;
- - free;
-
- // to get at the internal lists
- - streamList;
- - timeLeftList;
-
- @end
-