aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends
Commit message (Collapse)AuthorAgeFilesLines
* Disable mmdevapi capture and update changelogChris Robinson2015-09-181-1/+6
| | | | | | | Unfortunately mmdevapi does not do channel remixing or resampling, even for capture, so the device can only be opened in the mode it's configured for. For now, fallback to dsound or winmm to get the conversion until we can do it ourselves.
* Append "on OpenAL Soft" to mmdevapi, dsound, and winmm device namesChris Robinson2015-09-103-32/+46
| | | | | Would be nicer to have a more backend-agnostic method of doing this, Perhaps even also only when the router is being used.
* Specify the pa_channel_map directly instead of through a stringChris Robinson2015-09-041-30/+43
|
* Use the correct device name for PulseAudio tooChris Robinson2015-09-031-10/+24
| | | | | Like mmdevapi. duplicate device names will have a '#2' or such appended, so the device's reported name may be incorrect.
* Replace another vector loop with VECTOR_FIND_IFChris Robinson2015-09-031-14/+11
|
* Use the correct device name when opening a device by nameChris Robinson2015-09-031-2/+8
| | | | | Duplicate device names will have a '#2' or such appended, so the device's reported name may be incorrect.
* Allow for device-specific config valuesChris Robinson2015-08-287-22/+22
|
* Set the WAVEFORMATEX cbSize field for mmdevapi captureChris Robinson2015-08-181-0/+1
|
* Fix handling of PulseAudio devices that have the same descriptionChris Robinson2015-08-141-10/+44
|
* Wait for the OpenSL buffer queue to empty when stoppingChris Robinson2015-08-131-1/+10
|
* Check for duplicate device names in the mmdevapi backendChris Robinson2015-06-301-1/+27
|
* Use the lockless ringbuffer for mmdevapi captureChris Robinson2015-06-301-8/+9
| | | | | The backend's capture funcs are already called while under a lock, so multiple threads shouldn't be able to read from it at once.
* Double check the mmdevapi capture formatChris Robinson2015-06-071-1/+23
| | | | | This isn't a real solution, but it should get IAudioClient_IsFormatSupported to stop failing.
* Add a macro to simplify allocating and constructing an objectChris Robinson2015-05-1811-117/+17
|
* Convert the solaris backend to the new APIChris Robinson2015-05-172-77/+134
|
* Add a note to the JACK backend about a (minor) race conditionChris Robinson2015-02-071-0/+14
|
* Clean up another vector iterator loopChris Robinson2015-02-071-12/+12
|
* Signal the mixer thread outside of the mutex lockChris Robinson2015-02-031-1/+5
|
* Don't try to spawn a JACK server by defaultChris Robinson2015-02-031-6/+6
| | | | And don't print an error if one couldn't be started when not requested.
* Always use the JACK server buffer size as the update sizeChris Robinson2015-02-031-12/+15
| | | | | The buffer-size config option now only specifies an additional mix ahead to keep ready for audio requests, rather than a pretend period size.
* Ensure PulseAudio's mixing loop is signaled when stoppingChris Robinson2015-01-211-0/+8
|
* Remove a couple unused variablesChris Robinson2015-01-201-3/+0
|
* Fix X7DOT1_NARROW name to X7DOT1_WIDEChris Robinson2015-01-151-3/+3
|
* Accept a "narrow" layout for 7.1 with mmdevapiChris Robinson2015-01-151-2/+3
|
* Fix the flags typeChris Robinson2015-01-111-1/+2
|
* Update a commentChris Robinson2014-12-241-2/+2
|
* Don't update the channel format if all JACK ports were allocatedChris Robinson2014-12-231-9/+11
|
* Try the device-specified channel configuration firstChris Robinson2014-12-231-3/+15
| | | | | This does basically no checking that the channel config is correct, but should be good enough for when non-stereo modes are requested.
* Use the custom ringbuffer instead of JACK'sChris Robinson2014-12-231-41/+20
|
* Don't set unused pointers to NULL, don't try to write 0 samplesChris Robinson2014-12-231-7/+8
|
* At least measure the ringbuffer size for JACK's latencyChris Robinson2014-12-231-1/+17
| | | | | | We should also add the port latency, but there's currently no way to ensure it's synchronized with the ringbuffer (the ringbuffer will update before the port latency gets updated).
* Add an option to prevent spawning a JACK serverChris Robinson2014-12-221-2/+6
|
* Add an option for an increased ringbuffer size with JACKChris Robinson2014-12-221-2/+10
|
* Fill out the JACK playback backendChris Robinson2014-12-221-15/+326
| | | | | | | | | | | | | | | | | | | | | | | | A few notes about it: The OpenAL device's requested buffer metrics are ignored, and instead the device will keep one JACK-sized buffer's worth of audio prepared for JACK's next process request. Output is restricted to 32-bit float stereo. Part of this is because JACK requires a buffer size that's a power of 2 (measured in samples), and the ringbuffer requires a buffer size that's a power of 2 (measured in bytes). A channel count of 6 (5.1) or 7 (6.1) will not work without causing a sample to split over the edge of the ringbuffer. Additioanlly, JACK doesn't provide information about what channel configuration a device or set of ports has, so there's no way to know what ports 3 and up map to (even the first two ports are unknown, but assuming stereo seems to work well enough). There is no device latency measurement (for AL_SOFT_source_latency) due to the non-atomicity between the ringbuffer's read size and port latency. A method is needed to ensure the ringbuffer's read size and port latency can both be measured between the end of a JACK update cycle (when the port latency has been updated with the newly-retrieved audio) and the following ringbuffer read update.
* Add a skeleton backend for JACKChris Robinson2014-12-212-0/+262
|
* Trace lparam and wparam message valuesChris Robinson2014-12-211-1/+1
|
* Check the PROPVARIANT type before useChris Robinson2014-12-211-2/+8
|
* Use VECTOR_FOR_EACH instead of a manual loopChris Robinson2014-12-211-9/+7
|
* Use a macro for the record thread nameChris Robinson2014-12-213-3/+3
|
* Support capture with mmdevapiChris Robinson2014-12-191-1/+551
|
* Set a couple pulse callbacks to NULL during reset, and minor cleanupsChris Robinson2014-12-171-9/+9
|
* Don't kill pulseaudio's mixer thread if it's already killedChris Robinson2014-12-171-1/+1
|
* Check mmdevice endpoint for being headphonesChris Robinson2014-11-271-1/+31
|
* Avoid unnecessary uses of ALCdevice_Lock and ALCdevice_UnlockChris Robinson2014-11-271-8/+8
|
* Set headphones when dsound reports headphonesChris Robinson2014-11-271-1/+3
|
* Support B-Format output with the wave file writerChris Robinson2014-11-257-1/+33
|
* Require at least pulse client 0.9.16Chris Robinson2014-11-241-48/+8
|
* Trace PulseAudio's active portChris Robinson2014-11-241-2/+5
|
* Set headphones when pulse reports using the headphones portChris Robinson2014-11-231-0/+3
|
* Don't force UpdateSize to a multiple of 4 after buffer metrics were setChris Robinson2014-11-171-2/+0
|