aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/mmdevapi.c
Commit message (Collapse)AuthorAgeFilesLines
* Simplify mmdevapi's device name searchChris Robinson2016-09-071-17/+33
| | | | | Avoids converting each enumerated devid from WSTR to UTF-8, and instead just converts the device name from UTF-8 to WSTR once if needed.
* mmdevapi: Allow specifying output device by it's audio endpoint GUID or by ↵Dmytry Lavrov2016-09-061-8/+45
| | | | the device id string (Oculus VR api requires you to play back on a specific device).
* Remove DevFmtBFormat3D, which is covered by DevFmtAmbi1Chris Robinson2016-07-311-2/+0
|
* Add a config to output first-, second-, or third-order ambisonicsChris Robinson2016-07-291-0/+6
| | | | | | | | | Currently incomplete, as second- and third-order output will not correctly handle B-Format input buffers. A standalone up-sampler will be needed, similar to the high-quality decoder. Also, output is ACN ordering with SN3D normalization. A config option will eventually be provided to change this if desired.
* Combine VECTOR_RESIZE and VECTOR_RESERVEChris Robinson2016-07-261-6/+2
|
* Change the backend getLatency method to return the clock time tooChris Robinson2016-05-281-4/+11
| | | | | | This will also allow backends to better synchronize the tracked clock time with the device output latency, without necessarily needing to lock if the backend API can allow for it.
* Properly pluralize some messagesChris Robinson2016-05-221-3/+4
|
* Shorten VECTOR_ITER_ macros to VECTOR_Chris Robinson2016-04-151-3/+3
|
* Replace some CreateEvent calls with CreateEventWChris Robinson2016-02-071-6/+6
|
* Reformat Windows device name dressingChris Robinson2015-12-041-12/+13
|
* Add another cast for MSVCChris Robinson2015-11-061-1/+1
|
* 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-101-4/+13
| | | | | Would be nicer to have a more backend-agnostic method of doing this, Perhaps even also only when the router is being used.
* 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.
* Set the WAVEFORMATEX cbSize field for mmdevapi captureChris Robinson2015-08-181-0/+1
|
* 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-181-12/+2
|
* 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
|
* 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-211-1/+1
|
* Support capture with mmdevapiChris Robinson2014-12-191-1/+551
|
* 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
|
* Support B-Format output with the wave file writerChris Robinson2014-11-251-0/+3
|
* Fix 5.1 surround soundChris Robinson2014-11-071-8/+8
| | | | | | | | | | | | | Apparently, 5.1 surround sound is supposed to use the "side" channels, not the back channels, and we've been wrong this whole time. That means the "5.1 Side" is actually the correct 5.1 setup, and using the back channels is anomalous. Additionally, this means the 5.1 buffer format should also use the the side channels instead of the back channels. A final note: the 5.1 mixing coefficients are changed so both use the original 5.1 surround sound set (with the surround channels at +/-110 degrees). So the only difference now between 5.1 "side" and 5.1 "back" is the channel labels.
* Check mmdevapi device ids to match the default deviceChris Robinson2014-08-281-19/+36
| | | | | Seems Windows can return different IMMDevice object pointers for the same endpoint.
* Update COPYING to the latest ↵François Cami2014-08-181-2/+2
| | | | https://www.gnu.org/licenses/old-licenses/lgpl-2.0.txt to fix the FSF' address Fix the FSF' address in the source
* Don't require pre-declaring vector typesChris Robinson2014-07-061-1/+1
|
* Iniitialize some mmdevapi backend fields in the constructorChris Robinson2014-05-021-0/+23
|
* Add a helper VECTOR_FOR_EACH macroChris Robinson2014-04-301-10/+8
|
* Convert the mmdevapi backend to the new backend APIChris Robinson2014-04-251-393/+509
|
* Use a vector for mmdevapi device listsChris Robinson2014-04-241-93/+77
|
* Use a helper to return mmdevapi message thread responsesChris Robinson2014-04-221-16/+15
|
* Rename SetThreadName to althrd_setnameChris Robinson2014-04-171-1/+1
|
* Implement a C11-like thread wrapper and use it in mmdevapi and pulseaudioChris Robinson2014-04-161-8/+8
|
* Use an al_string for the device nameChris Robinson2014-03-281-7/+2
|
* Use al_string to handle mmdevapi and dsound device namesChris Robinson2014-03-281-29/+23
|
* Reactivate the mmdevapi audio client and set the event handle on resetChris Robinson2014-03-271-10/+26
|
* Don't assume the default mmdevapi device is in the collectionChris Robinson2014-03-171-2/+2
|
* Fix a race condition in the mmdevapi message queue threadChris Robinson2014-02-091-0/+6
|
* Add some extra traces to the mmdevapi backendChris Robinson2014-02-091-0/+8
| | | | Trying to track down the cause of some reported errors.
* Add a macro for GCC to ensure stack alignmentChris Robinson2013-11-251-1/+1
|
* Remove the Lock and Unlock methods from BackendFuncsChris Robinson2013-11-041-2/+0
| | | | | All backends that still use the old interface use the default locking methods, which is also used by the ALCbackend base.