Copyright ©1995 by NeXT Computer, Inc.  All Rights Reserved.




Types and Constants



Defined Types


NXSoundDeviceError

typedef enum _NXSoundDeviceError {
NX_SoundDeviceErrorNone = 0,
NX_SoundDeviceErrorKernel = NX_SOUNDDEVICE_ERROR_MIN,
NX_SoundDeviceErrorTimeout,
NX_SoundDeviceErrorLookUp,
NX_SoundDeviceErrorHost,
NX_SoundDeviceErrorNoDevice,
NX_SoundDeviceErrorNotActive,
NX_SoundDeviceErrorTag,
NX_SoundDeviceErrorMax = NX_SOUNDDEVICE_ERROR_MAX
} NXSoundDeviceError



NXSoundStatus

typedef enum {
NX_SoundStopped,
NX_SoundRecording,
NX_SoundPlaying,
NX_SoundInitialized,
NX_SoundRecordingPaused,
NX_SoundPlayingPaused,
NX_SoundRecordingPending,
NX_SoundPlayingPending,
NX_SoundFreed = 1,
} NXSoundStatus;



NXSoundStreamTime

typedef struct timeval NXSoundStreamTime;



SNDCompressionSubheader

typedef struct {
int originalSize
int method;
int numDropped;
int encodeLength;
} SNDCompressionSubheader;



SNDError

typedef enum {
SND_ERR_NONE,
SND_ERR_NOT_SOUND,
SND_ERR_BAD_FORMAT,
SND_ERR_BAD_RATE
SND_ERR_BAD_CHANNEL,
SND_ERR_BAD_SIZE
SND_ERR_BAD_FILENAME,
SND_ERR_CANNOT_OPEN,
SND_ERR_CANNOT_WRITE,
SND_ERR_CANNOT_READ,
SND_ERR_CANNOT_ALLOC,
SND_ERR_CANNOT_FREE,
SND_ERR_CANNOT_COPY,
SND_ERR_CANNOT_RESERVE,
SND_ERR_NOT_RESERVED,
SND_ERR_CANNOT_RECORD,
SND_ERR_ALREADY_RECORDING,
SND_ERR_NOT_RECORDING,
SND_ERR_CANNOT_PLAY,
SND_ERR_ALREADY_PLAYING,
SND_ERR_NOT_IMPLEMENTED,
SND_ERR_NOT_PLAYING,
SND_ERR_CANNOT_FIND,
SND_ERR_CANNOT_EDIT,
SND_ERR_BAD_SPACE
SND_ERR_KERNEL,
SND_ERR_BAD_CONFIGURATION,
SND_ERR_CANNOT_CONFIGURE,
SND_ERR_UNDERRUN,
SND_ERR_ABORTED,
SND_ERR_BAD_TAG,
SND_ERR_CANNOT_ACCESS,
SND_ERR_TIMEOUT,
SND_ERR_BUSY,
SND_ERR_CANNOT_ABORT,
SND_ERR_INFO_TOO_BIG,
SND_ERR_UNKNOWN,
} SNDError;



SNDNotificationFun

typedef int (*SNDNotificationFun)
(SNDSoundStruct *s,
int tag,
int err);



SNDSoundStruct

typedef struct {
int magic;
int dataLocation;
int dataSize;
int dataFormat;
int samplingRate;
int channelCount;
char info[4];
} SNDSoundStruct;



snddriver_handlers

typedef struct snddriver_handlers {
void *arg;
int timeout;
sndreply_tagged_t started;
sndreply_tagged_t completed;
sndreply_tagged_t aborted;
sndreply_tagged_t paused;
sndreply_tagged_t resumed;
sndreply_tagged_t overflow;
sndreply_recorded_data_t recorded_data;
sndreply_dsp_cond_true_t condition_true;
sndreply_dsp_msg_t dsp_message;
sndreply_dsp_msg_t dsp_error;
} snddriver_handlers_t;



sndreply_dsp_cond_true_t

typedef void (*sndreply_dsp_cond_true_t)
(void *arg,
unsigned int mask,
unsigned int flags,
unsigned int regs);



sndreply_dsp_msg_t

typedef void (*sndreply_dsp_msg_t)
(void *arg,
int data,
int size);



sndreply_recorded_data_t

typedef void (*sndreply_recorded_data_t)
(void *arg,
int tag,
void *data,
int size);



sndreply_tagged_t

typedef void (*sndreply_tagged_t)
(void *arg,
int tag);



Symbolic Constants


ATC Frame Size

ATC_FRAME_SIZE



Compression Formats

SND_CFORMAT_BITS_DROPPED
SND_CFORMAT_BIT_FAITHFUL
SND_CFORMAT_ATC



DSP Host Commands

SNDDRIVER_DSP_HC_HOST_RD
SNDDRIVER_DSP_HC_HOST_WD
SNDDRIVER_DSP_HC_SYS_CALL



DSP Protocol Options

SNDDRIVER_DSP_PROTO_DSPERR
SNDDRIVER_DSP_PROTO_C_DMA
SNDDRIVER_DSP_PROTO_S_DMA
SNDDRIVER_DSP_PROTO_HFABORT
SNDDRIVER_DSP_PROTO_DSPMSG
SNDDRIVER_DSP_PROTO_RAW



Executable File Segment Name

NX_SOUND_SEGMENT_NAME



Null Notification Function

SND_NULL_FUN


Sound Devices Devices
SND_ACCESS_IN Sound-in
SND_ACCESS_DSP DSP
SND_ACCESS_OUT Sound-out
Sampling Rates Rates
SND_RATE_CODEC 8012.8210513 Hz
SND_RATE_LOW 22050.0 Hz
SND_RATE_HIGH 44100.0 Hz


Sound Device Timeout Limit

NX_SOUNDDEVICE_TIMEOUT_MAX



Sound Device Error Code Limits

NX_SOUNDDEVICE_ERROR_MIN
NX_SOUNDDEVICE_ERROR_MAX



Sound Stream Control Codes

SNDDRIVER_AWAIT_STREAM
SNDDRIVER_ABORT_STREAM
SNDDRIVER_PAUSE_STREAM
SNDDRIVER_RESUME_STREAM



Sound Stream Null Time

NXSOUNDSTREAM_TIME_NULL



Sound Stream Path Codes

SNDDRIVER_STREAM_FROM_SNDIN
SNDDRIVER_STREAM_TO_SNDOUT_22
SNDDRIVER_STREAM_TO_SNDOUT_44
SNDDRIVER_STREAM_FROM_DSP
SNDDRIVER_STREAM_TO_DSP
SNDDRIVER_STREAM_DSP_TO_SNDOUT_22
SNDDRIVER_STREAM_DSP_TO_SNDOUT_44
SNDDRIVER_STREAM_THROUGH_DSP_TO_SNDOUT_22
SNDDRIVER_STREAM_THROUGH_DSP_TO_SNDOUT_44
SNDDRIVER_DMA_STREAM_TO_DSP
SNDDRIVER_DMA_STREAM_FROM_DSP
SNDDRIVER_DMA_STREAM_THROUGH_DSP_TO_SNDOUT_22
SNDDRIVER_DMA_STREAM_THROUGH_DSP_TO_SNDOUT_44



Sound Structure Formats

SND_FORMAT_UNSPECIFIED
SND_FORMAT_MULAW_8
SND_FORMAT_LINEAR_8
SND_FORMAT_LINEAR_16
SND_FORMAT_LINEAR_24
SND_FORMAT_LINEAR_32
SND_FORMAT_FLOAT
SND_FORMAT_DOUBLE
SND_FORMAT_INDIRECT
SND_FORMAT_DSP_CORE
SND_FORMAT_DSP_DATA_8
SND_FORMAT_DSP_DATA_16
SND_FORMAT_DSP_DATA_24
SND_FORMAT_DSP_DATA_32
SND_FORMAT_DISPLAY
SND_FORMAT_MULAW_SQUELCH
SND_FORMAT_EMPHASIZED
SND_FORMAT_COMPRESSED
SND_FORMAT_COMPRESSED_EMPHASIZED
SND_FORMAT_DSP_COMMANDS



Sound Structure Magic Number

SND_MAGIC



SoundView Display Modes

NX_SOUNDVIEW_MINMAX
NX_SOUNDVIEW_WAVE



Global Variables


NXSoundPboardType

extern NXAtom NXSoundPboardType;