Chris Robinson
33d91ceeec
Avoid repeating string literals
2020-09-11 01:40:36 -07:00
Chris Robinson
73f5331305
Use an RAII wrapper to manage COM object references
2020-09-05 12:32:41 -07:00
Chris Robinson
88f7617807
Avoid duplicate WASAPI devices by matching GUIDs
2020-09-04 18:32:06 -07:00
Chris Robinson
b12cd77d32
Use a wait predicate instead of a while loop
2020-08-12 10:00:43 -07:00
Chris Robinson
e8b3e82f96
Change a couple functions into member functions
2020-08-07 06:22:39 -07:00
Chris Robinson
bd0144065a
Set channel labels from WFX channel masks
2020-06-15 20:21:54 -07:00
Chris Robinson
6ce9bf6c94
Move a couple related functions to the backend base
2020-06-12 12:53:47 -07:00
Chris Robinson
4094135ed7
Don't return a bool from the backend start method
2020-04-28 19:25:58 -07:00
Chris Robinson
02d7fbfa0c
Use standard attribute declarations
2020-04-13 23:27:56 -07:00
Chris Robinson
d67cba99bd
Clean up some more unnecessary uses of AL types
2020-04-08 10:15:43 -07:00
Chris Robinson
662d77159b
Get rid of a redundant enum
2020-03-30 16:00:02 -07:00
Chris Robinson
f2ddf971df
Return the enumerated device names from the backend
...
Rather than using an out parameter.
2020-03-30 15:37:41 -07:00
Chris Robinson
9b237790b2
Remove the mutex from the backend base
2020-03-29 23:57:37 -07:00
Chris Robinson
cc27bbb680
Clear the WASAPI device list when enumerating
2020-03-24 11:48:25 -07:00
Chris Robinson
62f17d8763
Don't send close messages for unopened WASAPI devices
2020-03-24 11:40:34 -07:00
Chris Robinson
9ce182228d
Avoid some pre-C++14 workarounds
2020-03-22 08:51:06 -07:00
Chris Robinson
eb49290dab
Remove unnecessary locks now that the mixer doesn't require one
2020-02-26 04:58:02 -08:00
Chris Robinson
e6e2f509f8
Make CreateRingBuffer a static RingBuffer method
2020-01-10 07:56:43 -08:00
Chris Robinson
16220be86e
Make a duration type to handle WASAPI reference times
2019-12-22 22:05:47 -08:00
Chris Robinson
8807d373b0
Print the unhandled subformat
2019-12-22 16:38:52 -08:00
Chris Robinson
a671c02b0b
Try harder to find a matching WASAPI configuration
...
As long as the lowest channel bits match the enabled bits for a given
configuration, higher bits from any extra channels can be ignored since they
can be skipped.
2019-12-22 02:52:50 -08:00
Chris Robinson
2e6a55a87c
Handle padding between device sample frames
...
The padding must be constant and sample type aligned (e.g. some fixed multiple
of two bytes between the start of two consecutive frames for 16-bit output).
The intent is to always have the ability for stereo output with WASAPI even if
the device has some other unsupported configuration, as long as front-left and
front-right exist.
2019-12-21 20:43:46 -08:00
Chris Robinson
963580c2d5
Never return null from CreateRingBuffer
...
Allocation failure would already throw a bad_alloc anyway, now a size overflow
throws an exception too.
2019-10-08 21:55:03 -07:00
Chris Robinson
7726a06d26
Clean up some exception messages and avoid duplicate log messages
2019-10-08 05:44:38 -07:00
Chris Robinson
52a003e9bb
Avoid raw lock/unlock calls
2019-10-07 23:22:06 -07:00
Chris Robinson
02d80cd74d
Use exceptions for backend open failures
2019-10-07 21:37:56 -07:00
Chris Robinson
2d2e5539c0
Use FastBSinc24 for WASAPI and CoreAudio capture
...
Given a fixed rate, there's no downside to the fast version.
2019-09-28 03:44:13 -07:00
Chris Robinson
24db8a3f4b
Make the resampler type an enum class
2019-09-22 21:19:19 -07:00
Chris Robinson
a092624ed3
Fix some Windows warnings
2019-09-18 18:20:11 -07:00
Chris Robinson
c5a3c52822
Return and pass more appropriate types for backends
2019-09-15 09:50:28 -07:00
Chris Robinson
4b8f78a8d6
Fix a few more GCC warnings
2019-09-14 19:42:54 -07:00
Chris Robinson
532197a650
Clean up (most) implicit conversions in the backends
2019-09-14 12:44:35 -07:00
Chris Robinson
a250b6a986
Return unsigned values from the FromDevFmt functions
2019-09-13 14:29:25 -07:00
Chris Robinson
a895709b6f
Fix function declaration
2019-09-11 06:58:27 -07:00
Chris Robinson
be0442c620
Avoid C-style casts in C++
2019-09-11 06:47:56 -07:00
Chris Robinson
65374dc5d0
Avoid dynamically allocating ChannelConverter
2019-09-10 23:01:33 -07:00
Chris Robinson
ce76cc1441
Use unsigned for the sample and channel converters
2019-08-20 07:57:37 -07:00
Chris Robinson
e200569cd3
Move the wstr converters to a separate header
2019-08-11 18:50:07 -07:00
Chris Robinson
cb3e96e756
Rename Alc to alc
2019-07-28 18:56:04 -07:00