- #ifndef S3_SOUND_H 
- #define S3_SOUND_H 
-   
- // External typedefs 
-   
- typedef float tF32; 
- typedef struct tS3_sound_source tS3_sound_source; 
- typedef tS3_sound_source* tS3_sound_source_ptr; 
- typedef int tS3_sound_tag; 
- typedef int tS3_sound_id; 
- typedef int tS3_type; 
- typedef int tS3_repeats; 
- typedef int tS3_volume; 
- typedef int tS3_effect_tag; 
- typedef long tS3_priority; 
- typedef long tS3_pitch; 
- typedef long tS3_speed; 
- typedef struct tS3_outlet tS3_outlet; 
- typedef tS3_outlet* tS3_outlet_ptr; 
-   
- typedef void tS3_sample_filter(tS3_effect_tag, tS3_sound_tag); 
-   
- typedef struct tS3_vector3 { 
-     tF32 x; 
-     tF32 y; 
-     tF32 z; 
- } tS3_vector3; 
-   
- int S3Init(char* path, int low_memory_mode); 
- void S3Shutdown(void); 
-   
- void S3Disable(void); 
- void S3Enable(void); 
-   
- void S3Set3DSoundEnvironment(float a1, float a2, float a3); 
- int S3BindAmbientSoundToOutlet(tS3_outlet_ptr pOutlet, int pSound, tS3_sound_source* source, float pMax_distance, int pPeriod, int pRepeats, int pVolume, int pPitch, int pSpeed); 
-   
- tS3_sound_tag S3StartSound3D(tS3_outlet_ptr pOutlet, tS3_sound_id pSound, tS3_vector3* pInitial_position, tS3_vector3* pInitial_velocity, tS3_repeats pRepeats, tS3_volume pVolume, tS3_pitch pPitch, tS3_speed pSpeed); 
-   
- tS3_outlet_ptr S3CreateOutlet(int unk1, int pChannel_count); 
- void S3ReleaseOutlet(tS3_outlet_ptr outlet); 
- int S3ReleaseSound(tS3_sound_id id); 
- int S3ReleaseSoundSource(tS3_sound_source_ptr src); 
-   
- int S3ChangeVolume(tS3_sound_tag pTag, tS3_volume pVolume); 
-   
- void S3Service(int inside_cockpit, int unk1); 
-   
- int S3LoadSample(tS3_sound_id id); 
- tS3_sound_tag S3StartSound(tS3_outlet_ptr pOutlet, tS3_sound_id pSound); 
- tS3_sound_tag S3StartSound2(tS3_outlet_ptr pOutlet, tS3_sound_id pSound, tS3_repeats pRepeats, tS3_volume pLVolume, tS3_volume pRVolume, tS3_pitch pPitch, tS3_speed pSpeed); 
- void S3StopAllOutletSounds(void); 
- int S3SoundStillPlaying(tS3_sound_tag pSound); 
- int S3ChangePitchSpeed(tS3_sound_tag pTag, tS3_pitch pNew_pitch); 
- int S3StopSound(tS3_sound_tag pSound_tag); 
- int S3StopOutletSound(tS3_outlet_ptr pOutlet); 
- int S3SetOutletVolume(tS3_outlet_ptr pOutlet, tS3_volume pVolume); 
- void S3UpdateSoundSource(tS3_outlet_ptr outlet, tS3_sound_tag tag, tS3_sound_source_ptr src, float pMax_distance_squared, int pPeriod, tS3_repeats pAmbient_repeats, tS3_volume pVolume, int pPitch, tS3_speed pSpeed); 
-   
- int S3IsCDAPlaying2(void); 
-   
- int S3SetEffects(tS3_sample_filter* filter1, tS3_sample_filter* filter2); 
-   
- #endif 
-