ftp.nice.ch/pub/next/developer/resources/libraries/gamekit_proj.NI.sa.tar.gz#/gamekit_proj/Headers/gamekit/GKSoundStream.h

This is GKSoundStream.h in view mode; [Download] [Up]

// 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

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.