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
-