Summary of SoundSprocket
Constants
Component Types and Subtypes
enum {
   kSoundEffectsType                   = 'snfx'
};
enum {
   kReverbSubType                      = 'revb',
   kSSpLocalizationSubType             = 'snd3'
};
Sound Channel Information Selectors
enum {
   siPreMixerSoundComponent            = 'prmx',
   siSSpCPULoadLimit                   = '3dll',
   siSSpSetup                          = '3dst',
   siSSpLocalization                   = '3dif',
   siSSpFilterVersion                  = '3dfv'
};
Speaker Types
enum {
   kSSpSpeakerKind_Stereo              = 0,
   kSSpSpeakerKind_Mono                = 1,
   kSSpSpeakerKind_Headphones          = 2
};
Sound Media
enum {
   kSSpMedium_Air                      = 0,
   kSSpMedium_Water                    = 1
};
Source Modes
enum {
   kSSpSourceMode_Unfiltered           = 0,
   kSSpSourceMode_Localized            = 1,
   kSSpSourceMode_Ambient              = 2,
   kSSpSourceMode_Binaural             = 3
};
Data Types
typedef struct SSpSourcePrivate        *SSpSourceReference;
typedef struct SSpListenerPrivate      *SSpListenerReference;
Filter Version Structure
typedef struct SSpFilterVersionData {
   OSType                     manufacturer;
   NumVersion                 version;
   UInt32                     reserved;
} SSpFilterVersionData;
Sound Component Link Structure
struct SoundComponentLink {
   ComponentDescription       description;
   SoundSource                mixerID;
   SoundSource *              linkID;
};
typedef struct SoundComponentLink SoundComponentLink;
typedef SoundComponentLink *SoundComponentLinkPtr;
3D Sound Setup Structure
typedef struct SSpSetupData {
   UInt32                     speakerKind;
   float                      speakerAngle;
   UInt32                     reserved0;
   UInt32                     reserved1;
} SSpSetupData;
Source Location Structure
typedef struct SSpLocationData {
   float                      elevation;
   float                      azimuth;
   float                      distance;
   float                      projectionAngle;
   float                      sourceVelocity;
   float                      listenerVelocity
} SSpLocationData;
Virtual Source Structure
typedef struct SSpVirtualSourceData {
   float                      attenuation;
   SSpLocationData            location;
} SSpVirtualSourceData;
3D Sound Information Structure
typedef struct SSpLocalizationData {
   UInt32                     cpuLoad;
   UInt32                     medium;
   float                      humidity;
   float                      roomSize;
   float                      roomReflectivity;
   float                      reverbAttenuation;
   UInt32                     sourceMode;
   float                      referenceDistance;
   float                      coneAngleCos;
   float                      coneAttenuation;
   SSpLocationData            currentLocation;
   UInt32                     reserved0;
   UInt32                     reserved1;
   UInt32                     reserved2;
   UInt32                     reserved3;
   UInt32                     virtualSourceCount;
   SSpVirtualSourceData       virtualSource[4];
} SSpLocalizationData;
typedef Boolean (*SSpEventProcPtr) (EventRecord* InEvent);
SoundSprocket Functions
Controlling Sound Output Devices
OSStatus SSpConfigureSetup(SSpEventProcPtr inEventProcPtr);
Creating and Managing Listeners
OSStatus SSpListener_New(SSpListenerReference *outListenerReference);
OSStatus SSpListener_Dispose(SSpListenerReference inListenerReference);
OSStatus SSpListener_GetTransform(SSpListenerReference inListenerReference, 
TQ3Matrix4x4 *outTransform);
OSStatus SSpListener_SetTransform(SSpListenerReference inListenerReference, 
const TQ3Matrix4x4 *inTransform);
OSStatus SSpListener_GetPosition(SSpListenerReference inListenerReference, 
TQ3Point3D *outPosition);
OSStatus SSpListener_SetPosition(SSpListenerReference inListenerReference, 
const TQ3Point3D *inPosition);
OSStatus SSpListener_GetOrientation (
SSpListenerReference inListenerReference, 
TQ3Vector3D *outOrientation);
OSStatus SSpListener_SetOrientation (
SSpListenerReference inListenerReference, 
const TQ3Vector3D *inOrientation);
OSStatus SSpListener_GetUpVector(SSpListenerReference inListenerReference, 
TQ3Vector3D *outUpVector);
OSStatus SSpListener_SetUpVector(SSpListenerReference inListenerReference, 
const TQ3Vector3D *inUpVector);
OSStatus SSpListener_GetCameraPlacement (
SSpListenerReference inListenerReference, 
TQ3CameraPlacement *outCameraPlacement);
OSStatus SSpListener_SetCameraPlacement (
SSpListenerReference inListenerReference, 
const TQ3CameraPlacement *inCameraPlacement);
OSStatus SSpListener_GetVelocity(SSpListenerReference inListenerReference, 
TQ3Vector3D *outVelocity);
OSStatus SSpListener_SetVelocity(SSpListenerReference inListenerReference, 
const TQ3Vector3D *inVelocity);
OSStatus SSpListener_GetActualVelocity (
SSpListenerReference inListenerReference, 
TQ3Vector3D *outVelocity);
OSStatus SSpListener_GetMedium(SSpListenerReference inListenerReference, 
UInt32 *outMedium, 
float *outHumidity);
OSStatus SSpListener_SetMedium(SSpListenerReference inListenerReference, 
UInt32 inMedium, 
float inHumidity);
OSStatus SSpListener_GetReverb(SSpListenerReference inListenerReference, 
float *outRoomSize, 
float *outRoomReflectivity, 
float *outReverbAttenuation);
OSStatus SSpListener_SetReverb(SSpListenerReference inListenerReference, 
float inRoomSize, 
float inRoomReflectivity, 
float inReverbAttenuation);
OSStatus SSpListener_GetMetersPerUnit (
SSpListenerReference inListenerReference, 
float *outMetersPerUnit);
OSStatus SSpListener_SetMetersPerUnit (
SSpListenerReference inListenerReference, 
float inMetersPerUnit);
Creating and Managing 3D Sound Sources
OSStatus SSpSource_New(SSpSourceReference *outSourceReference);
OSStatus SSpSource_Dispose(SSpSourceReference inSourceReference);
OSStatus SSpSource_CalcLocalization (
SSpSourceReference inSourceReference, 
SSpListenerReference inListenerReference, 
SSpLocalizationData *outLocalization);
OSStatus SSpSource_GetTransform(SSpSourceReference inSourceReference, 
TQ3Matrix4x4 *outTransform);
OSStatus SSpSource_SetTransform(SSpSourceReference inSourceReference, 
const TQ3Matrix4x4 *inTransform);
OSStatus SSpSource_GetPosition(SSpSourceReference inSourceReference, 
TQ3Point3D *outPosition);
OSStatus SSpSource_SetPosition(SSpSourceReference inSourceReference, 
const TQ3Point3D *inPosition);
OSStatus SSpSource_GetOrientation(SSpSourceReference inSourceReference, 
TQ3Vector3D *outOrientation);
OSStatus SSpSource_SetOrientation(SSpSourceReference inSourceReference, 
const TQ3Vector3D *inOrientation);
OSStatus SSpSource_GetUpVector(SSpSourceReference inSourceReference, 
TQ3Vector3D *outUpVector);
OSStatus SSpSource_SetUpVector(SSpSourceReference inSourceReference, 
const TQ3Vector3D *inUpVector);
OSStatus SSpSource_GetCameraPlacement (
SSpSourceReference inSourceReference, 
TQ3CameraPlacement *outCameraPlacement);
OSStatus SSpSource_SetCameraPlacement (
SSpSourceReference inSourceReference, 
const TQ3CameraPlacement *inCameraPlacement);
OSStatus SSpSource_GetVelocity(SSpSourceReference inSourceReference, 
TQ3Vector3D *outVelocity);
OSStatus SSpSource_SetVelocity(SSpSourceReference inSourceReference, 
const TQ3Vector3D *inVelocity);
OSStatus SSpSource_GetActualVelocity (
SSpSourceReference inSourceReference, 
TQ3Vector3D *outVelocity);
OSStatus SSpGetCPULoadLimit(UInt32 *outCPULoadLimit);
OSStatus SSpSource_GetCPULoad(SSpSourceReference inSourceReference, 
UInt32 *outCPULoad);
OSStatus SSpSource_SetCPULoad(SSpSourceReference inSourceReference, 
UInt32 inCPULoad);
OSStatus SSpSource_GetMode(SSpSourceReference inSourceReference, 
UInt32 *outMode);
OSStatus SSpSource_SetMode(SSpSourceReference inSourceReference,
UInt32 inMode);
OSStatus SSpSource_GetReferenceDistance (
SSpSourceReference inSourceReference, 
float *outReferenceDistance);
OSStatus SSpSource_SetReferenceDistance (
SSpSourceReference inSourceReference, 
float inReferenceDistance);
OSStatus SSpSource_GetSize(SSpSourceReference inSourceReference, 
float *outLength, 
float *outWidth, 
float *outHeight);
OSStatus SSpSource_SetSize(SSpSourceReference inSourceReference, 
float inLength, 
float inWidth, 
float inHeight);
OSStatus SSpSource_GetAngularAttenuation (
SSpSourceReference inSourceReference, 
float *outConeAngle, 
float *outConeAttenuation);
OSStatus SSpSource_SetAngularAttenuation (
SSpSourceReference inSourceReference, 
float inConeAngle, 
float inConeAttenuation);
Sound Manager Functions
Getting and Setting Sound Channel Information
pascal OSStatus SndGetInfo(SndChannelPtr chan, OSType selector, void *infoPtr);
pascal OSStatus SndSetInfo(SndChannelPtr chan, OSType selector, void *infoPtr);
Result Codes
paramErr | -50 | Parameter type error or out of range error | 
memFullErr | -108 | Unable to allocate memory required for task | 
kSSpInternalErr | -30340 | Corrupted SoundSprocket or other error | 
kSSpVersionErr | -30341 | Sound Manager 3.2.1 or later not installed | 
kSSpCantInstallErr | -30342 | Filter installation failure | 
kSSpParallelUpVectorErr | -30343 | Orientation and up vector are parallel | 
kSSpScaleToZeroErr | -30344 | Transformation matrix has a vector of 0 | 
 
Subtopics
- Constants
 - 
 - Component Types and Subtypes
 - 
 - Sound Channel Information Selectors
 - 
 - Speaker Types
 - 
 - Sound Media
 - 
 - Source Modes
 - 
 - Data Types
 - 
 - Filter Version Structure
 - 
 - Sound Component Link Structure
 - 
 - 3D Sound Setup Structure
 - 
 - Source Location Structure
 - 
 - Virtual Source Structure
 - 
 - 3D Sound Information Structure
 - 
 - SoundSprocket Functions
 - 
 - Controlling Sound Output Devices
 - 
 - Creating and Managing Listeners
 - 
 - Creating and Managing 3D Sound Sources
 - 
 - Sound Manager Functions
 - 
 - Getting and Setting Sound Channel Information
 - 
 - Result Codes
 -