--- Plays the specified sound. If sound is a file name (without extension) then type must be specified. -- @cstyle int PlaySound(string sound, [string type,] int volume -1, int fade_time = 0, bool looping = false, point/object source, int loud_distance). -- @param sound string; either a sound file name or a sound bank. -- @param type string; sound type. used if sound is a file name. if sound is a sound bank it can be omitted. -- @param volume int; specifying the volume of the sound between 0 and const.MaxVolume (default is used the sound bank volume). -- @param fade_time int; the cross-fade time if changing the sound state. -- @param looping bool; specifies if the sound should be looping. (Use the sound bank flag by default). -- @param source point/object; specifies the sound source (if any) which can be a point or an object. -- @param loud_distance int; if playing a file name with source specifies the radius where the sound is at maximum volume. -- @return handle, err. function PlaySound(sound, _type, volume, fade_time, looping, point_or_object, loud_distance, time_offset, loop_start, loop_end) end --- Stops a sound. -- @cstyle void StopSound(int handle) -- @param handle; handle of the sound. -- @return void. function StopSound(handle) end --- Returns true if a sound is valid and playing. -- @cstyle bool IsSoundPlaying(int handle) -- @param handle; handle of the sound. -- @return bool. function IsSoundPlaying(handle) end --- Returns true if a sound, a sound bank or an object sound is looping. -- @cstyle bool IsSoundLooping(int handle/object/sound-bank) -- @param handle; handle of the sound. -- @return bool. function IsSoundLooping(handle_obj_bank) end --- Returns the duration of a sound handle, sound sample, sound bank or an object sound. -- @cstyle int GetSoundDuration(int handle/sample/sound-bank/object) -- @param handle; handle of the sound. -- @return int. function GetSoundDuration(handle_sample_obj) end --- Changes the volume of a sound. -- @cstyle void SetSoundVolume(int handle, int volume, int time = 0). -- @param handle; handle of the sound. -- @param volume int; volume between -1 and 1000. -1 means destroy. -- @param time int; interpolation time, 0 by default. -- @return void. function SetSoundVolume(handle, volume, time) end --- Returns the current volume of a sound handle from 0 to 1000. -- @cstyle int GetSoundVolume(int handle, int volume, int time = 0). -- @param handle; handle of the sound. -- @return int. function GetSoundVolume(handle) end -- XAudio params: https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2fx_reverb_parameters(v=vs.85).aspx --- Sets the sound reverberation parameters to be interpolated. -- Supported parameters: -- DryLevel: Mix level of dry signal in output in mB. Ranges from -10000 to 0. Default is 0. -- Room: Room effect level at low frequencies in mB. Ranges from -10000 to 0. Default is 0. -- RoomHF: Room effect high-frequency level re. low frequency level in mB. Ranges from -10000 to 0. Default is 0. -- RoomRolloffFactor: Like DS3D flRolloffFactor but for room effect. Ranges from 0 to 1000. Default is 1000 -- DecayTime: Reverberation decay time at low-frequencies in milliseconds. Ranges from 100 to 20000. Default is 1000. -- DecayHFRatio : High-frequency to low-frequency decay time ratio. Ranges from 10 to 200. Default is 50. -- ReflectionsLevel : Early reflections level relative to room effect in mB. Ranges from -10000 to 1000. Default is -10000. -- ReflectionsDelay : Delay time of first reflection in milliseconds. Ranges from 0 to 300. Default is 20. -- ReverbLevel: Late reverberation level relative to room effect in mB. Ranges from -10000 to 2000. Default is 0. -- ReverbDelay: Late reverberation delay time relative to first reflection in milliseconds. Ranges from 0 to 100. Default is 40. -- Diffusion: Reverberation diffusion (echo density) in percent. Ranges from 0 to 100. Default is 100. -- Density: Reverberation density (modal density) in percent. Ranges from 0 to 100. Default is 100. -- HFReference: Reference high frequency in Hz. Ranges from 20 to 20000. Default is 5000. -- RoomLF: Room effect low-frequency level in mB. Ranges from -10000 to 0. Default is 0. -- LFReference: Reference low-frequency in Hz. Ranges from 20 to 1000. Default is 250. -- @cstyle void SetReverbParameters(table params, int time) -- @param params; A string=int table with the above parameters. -- @param time; A time over which the parameters will be linearly interpolated from their current values to the ones specified, in ms. function SetReverbParameters(params, time) end --- Retrieves the sound reverberation parameters valid at the moment -- @cstyle table GetReverbParameters() -- @return table; a string=int table with the current reverb params - see SetReverbParameters for a list. function GetReverbParameters() end --- Append PCM samples to a stream, or create a new one if not existing -- @cstyle string, int AppendStream(int handle, pstr pstr, string sound_type = "", int samples_per_sec = 48000, int bits_per_sample = 16, int channels = 1, int max_silence = 0, int fade_time = 0, int volume = 1000). -- @param handle int; handle of the sound. -- @param pstr pstr; PCM samples in pstr format. -- @param sound_type string; sound type name. -- @param samples_per_sec int; samples per second (default 48000). -- @param bits_per_sample int; bits per sample (default 16). -- @param channels int; channels count (default 1). -- @param max_silence int; maximum silence time in ms before the sound is auto stoped (default 0, means "keep always alive"). -- @param fade_time int; time in ms to establish the specified volume (default 0). -- @param volume int; volume between 0 and 1000 (default 1000, means max volume). -- @return err string, handle int; error and sound handle function AppendStream(handle, pstr, sound_type, samples_per_sec, bits_per_sample, channels, max_silence, fade_time, volume) end