Subversion Repositories Games.Carmageddon

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef S3_SOUND_H
  2. #define S3_SOUND_H
  3.  
  4. // External typedefs
  5.  
  6. typedef float tF32;
  7. typedef struct tS3_sound_source tS3_sound_source;
  8. typedef tS3_sound_source* tS3_sound_source_ptr;
  9. typedef int tS3_sound_tag;
  10. typedef int tS3_sound_id;
  11. typedef int tS3_type;
  12. typedef int tS3_repeats;
  13. typedef int tS3_volume;
  14. typedef int tS3_effect_tag;
  15. typedef long tS3_priority;
  16. typedef long tS3_pitch;
  17. typedef long tS3_speed;
  18. typedef struct tS3_outlet tS3_outlet;
  19. typedef tS3_outlet* tS3_outlet_ptr;
  20.  
  21. typedef void tS3_sample_filter(tS3_effect_tag, tS3_sound_tag);
  22.  
  23. typedef struct tS3_vector3 {
  24.     tF32 x;
  25.     tF32 y;
  26.     tF32 z;
  27. } tS3_vector3;
  28.  
  29. int S3Init(char* path, int low_memory_mode);
  30. void S3Shutdown(void);
  31.  
  32. void S3Disable(void);
  33. void S3Enable(void);
  34.  
  35. void S3Set3DSoundEnvironment(float a1, float a2, float a3);
  36. 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);
  37.  
  38. 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);
  39.  
  40. tS3_outlet_ptr S3CreateOutlet(int unk1, int pChannel_count);
  41. void S3ReleaseOutlet(tS3_outlet_ptr outlet);
  42. int S3ReleaseSound(tS3_sound_id id);
  43. int S3ReleaseSoundSource(tS3_sound_source_ptr src);
  44.  
  45. int S3ChangeVolume(tS3_sound_tag pTag, tS3_volume pVolume);
  46.  
  47. void S3Service(int inside_cockpit, int unk1);
  48.  
  49. int S3LoadSample(tS3_sound_id id);
  50. tS3_sound_tag S3StartSound(tS3_outlet_ptr pOutlet, tS3_sound_id pSound);
  51. 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);
  52. void S3StopAllOutletSounds(void);
  53. int S3SoundStillPlaying(tS3_sound_tag pSound);
  54. int S3ChangePitchSpeed(tS3_sound_tag pTag, tS3_pitch pNew_pitch);
  55. int S3StopSound(tS3_sound_tag pSound_tag);
  56. int S3StopOutletSound(tS3_outlet_ptr pOutlet);
  57. int S3SetOutletVolume(tS3_outlet_ptr pOutlet, tS3_volume pVolume);
  58. 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);
  59.  
  60. int S3IsCDAPlaying2(void);
  61.  
  62. int S3SetEffects(tS3_sample_filter* filter1, tS3_sample_filter* filter2);
  63.  
  64. #endif
  65.