aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALc.c
Commit message (Collapse)AuthorAgeFilesLines
* Use a C11-like mutex wrapper instead of CRITICAL_SECTIONsChris Robinson2014-04-161-8/+13
|
* Recognize NULL as an empty vector/stringChris Robinson2014-04-031-1/+1
|
* Use an al_string for the device nameChris Robinson2014-03-281-10/+9
|
* Add an al_string type and use it for the device listsChris Robinson2014-03-281-49/+28
|
* Wrap fopen calls under WindowsChris Robinson2014-03-281-1/+1
| | | | | | | The idea is that all filenames we deal with are encoded as UTF-8, but the Windows functions that take a char string interpret it using the ANSI codepage. So instead, we convert the UTF-8 string to a wchar string, and then use the wchar functions for proper extended character filename support.
* Add gain stepping to the send mixersChris Robinson2014-03-231-0/+7
|
* Remove the now-unneeded click removal buffers for the deviceChris Robinson2014-03-231-7/+0
| | | | | | They are still there for auxiliary sends. However, they should go away soon enough too, and then we won't have to mess around with calculating extra "predictive" samples in the mixer.
* Add a generic vector interface and use it for the active effect slotsChris Robinson2014-03-211-7/+14
|
* Use flexible array members to pad the device and context structsChris Robinson2014-03-201-4/+4
| | | | | This helps avoid the convoluted math otherwise required to ensure the default slot and listener, respectively, are aligned.
* Store some source mixing parameters in the active source structChris Robinson2014-03-191-2/+10
|
* Use a separate struct for tracking active sourcesChris Robinson2014-03-181-3/+10
|
* Store the old-style backend funcs in the wrapperChris Robinson2014-03-171-8/+4
|
* Return the original value from CompExchange*Chris Robinson2014-03-091-6/+6
|
* Add an extension to support MSADPCM buffer formatsChris Robinson2014-03-041-1/+3
|
* Add an extension to alter the block alignment for buffer unpack/pack opsChris Robinson2014-03-041-3/+5
| | | | | | | | | | | | | | | | This is for unpacking (reading, e.g. alBufferData) and packing (writing, e.g. alGetBufferSamplesSOFT) operations. The alignments are specified in sample frames, with 0 meaning the default (65 for IMA4, 1 otherwise). IMA4 alignment must be a multiple of 8, plus 1 (e.g. alignment = n*8 + 1), otherwise an error will occur during (un)packing. Chenging the block alignment does not affect already-loaded sample data, only future unpack/pack operations... so for example, this is perfectly valid: // Load mono IMA4 data with a block alignment of 1024 bytes, or 2041 sample // frames. alBufferi(buffer, AL_UNPACK_BLOCK_ALIGNMENT_SOFT, 2041); alBufferData(buffer, AL_FORMAT_MONO_IMA4, data, data_len, srate); alBufferi(buffer, AL_UNPACK_BLOCK_ALIGNMENT_SOFT, 0);
* Add a return value to FindHrtfFormatChris Robinson2014-02-231-6/+7
|
* Check the hrtf config option earlierChris Robinson2014-02-231-8/+8
| | | | | This is to make sure it tries to find an HRTF-compatible format before reseting the device, just like when using ALC_HRTF_SOFT.
* Avoid checking the hrtf config option twiceChris Robinson2014-02-231-2/+3
|
* Avoid duplicating code in alcGetIntegervChris Robinson2014-02-011-241/+152
|
* Add an alcGetInteger64vSOFT method and a way to get the device clockChris Robinson2014-02-011-2/+204
|
* Keep track of a device clock time, based on the number of samples processedChris Robinson2014-02-011-0/+24
|
* Implement dry and wet mixers for NeonChris Robinson2014-01-261-2/+4
| | | | Code provided by Philippe Simons <[email protected]>.
* Add a flag to specify the device being pausedChris Robinson2014-01-151-4/+11
| | | | | Used to prevent UpdateDeviceParams from restarting the device, if a new context is created while paused.
* Stop the device when updating parameters, don't close itChris Robinson2014-01-151-1/+1
|
* Add an extension to pause audio processingChris Robinson2014-01-151-1/+56
|
* Add a method to get soundfont samplesChris Robinson2014-01-131-0/+1
|
* Add methods to get and set modulator properties on fontsoundsChris Robinson2014-01-051-0/+2
|
* Move some soundfont methods to ALsoundfontChris Robinson2014-01-051-1/+1
|
* Allow "deleting" the default soundfontChris Robinson2014-01-041-48/+1
| | | | | The ID remains valid and the soundfont will be reloaded as needed, but this provides a way for the application to clear up the soundfont memory.
* Add storage for a default soundfont objectChris Robinson2014-01-031-0/+51
|
* Update soundfont selection functionsChris Robinson2013-12-291-1/+1
| | | | | A filename is no longer specified, and alMidiSoundfontsSOFT is renamed to alMidiSoundfontvSOFT.
* Add alLoadSoundfontSOFT to load a soundfont via callbackChris Robinson2013-12-281-0/+1
| | | | | | | | | | | | | | | | | | | | | Some hefty caveats: This function is not thread-safe. In particular, the current context affecting the thread must not be changed, and the provided soundfont must not be altered while the function is executing. Ideally, this will be fixed. Error handling is poor. Some RIFF structure errors may not be caught (e.g. sub- chunks with sizes greater than the parent chunk allows for), and generated AL errors are ignored, possibly leading to resource leaks in certain situations. These should be fixed in time. There is minimal error checking on the provided soundfont ID. It does not ensure a valid ID has been provided, nor does it ensure the provided soundfont can be modified. These short-comings should be fixed eventually. Proper cleanup is the responsibility of the caller. The caller must get the preset objects from the soundfont before deleting it, and the fontsound objects from each preset before deleting them, to make sure all resources are properly deleted.
* Add a method to set and get soundfontsChris Robinson2013-12-271-0/+1
| | | | | The main purpose of this is to select soundfonts for playback, eventually, instead of the existing method that takes a filename.
* Allow specifying key and velocity ranges on fontsoundsChris Robinson2013-12-261-0/+4
|
* Add methods to set and get sounds on a presetChris Robinson2013-12-251-0/+1
|
* Remove the zone, sample, and instrument object typesChris Robinson2013-12-251-13/+0
|
* Add a new fontsound object typeChris Robinson2013-12-251-0/+13
| | | | This is basically a combined preset and intrument zone with sample header.
* Add methods to get and set presets on a soundfontChris Robinson2013-12-231-0/+2
|
* Add methods to get and set a preset object's preset and bank numbersChris Robinson2013-12-231-0/+3
|
* Add functions to set a soundfont's sample dataChris Robinson2013-12-191-0/+3
|
* Allow creating instrument objectsChris Robinson2013-12-191-0/+13
|
* Add methods to create and destroy presetsChris Robinson2013-12-191-0/+13
|
* Properly initialize and cleanup the soundfont mapChris Robinson2013-12-181-0/+11
|
* Add a new ALsoundfont object typeChris Robinson2013-12-181-0/+2
| | | | | Includes a basic hierarchy for presets, instruments, samples, zones, generators, and modulators.
* Move the base MidiSynth to a separate fileChris Robinson2013-12-171-1/+1
|
* Add a alMidiResetSOFT method to reset the synthChris Robinson2013-12-131-0/+1
| | | | | Playback is stopped, the queue is flushed, the clock is reset to 0, and the MIDI system is reset to power-up status.
* Rename pthread wrappers used for Windows to althreadChris Robinson2013-12-061-15/+15
|
* Add methods to set and get the MIDI gainChris Robinson2013-11-301-0/+1
|
* Add a method to check if a file is a soundfontChris Robinson2013-11-301-0/+1
|
* Add a method to specifying MIDI SysEx messagesChris Robinson2013-11-291-0/+1
|