Chris Robinson
f963a2c543
Remove some lingering mentions of surround51rear
2021-10-21 07:38:57 -07:00
Chris Robinson
15827b2887
Don't declare functions outside of where they're used
2021-10-21 06:03:37 -07:00
Chris Robinson
e70f3e97b3
Remove the last external uses of GetConfigValue
2021-10-21 05:54:03 -07:00
Chris Robinson
ed3e40c22d
Add more noexcept
2021-10-14 12:44:05 -07:00
Chris Robinson
8305973e7a
Properly noexcept the destroy methods
2021-10-14 12:44:05 -07:00
Devin Braune
0e9ce1aa83
Fix cone angle calculation ( #605 )
2021-10-14 11:18:54 -07:00
Chris Robinson
6a3c4c09f8
Explicitly declare optional_storage's default constructor
...
This should help MSVC
2021-10-10 05:12:24 -07:00
Chris Robinson
92b65fa15f
Avoid manually prefixing EventType_ enums
...
And use a better fitting type that matches how it's used
2021-10-10 05:07:31 -07:00
Chris Robinson
87e88e97e2
Try again to satisfy MSVC
2021-10-09 08:41:08 -07:00
Chris Robinson
85d98e32ed
Explicitly initialize the first union member
2021-10-09 05:56:39 -07:00
Chris Robinson
2d3b501fd8
Add more noexcept when possible
...
And try to fix MSVC missing a constructor
2021-10-09 05:30:16 -07:00
Chris Robinson
c893ca0491
Always define optional::operator=.
...
MSVC doesn't seem to like using enable_if for special member functions.
2021-10-09 03:39:33 -07:00
Chris Robinson
720bedb455
Make optional more trivial when possible
2021-10-08 18:08:48 -07:00
Chris Robinson
e3b8f8fe27
Make a construct_at method amd use it
2021-10-08 11:05:36 -07:00
Chris Robinson
8da4eaff29
Add the gnu::malloc attribute to al_malloc and al_calloc
...
This helps the compiler know the returned pointer won't alias another pointer
or existing object, since it's a fresh allocation, and is unlikely to return
nullptr.
2021-10-07 13:37:47 -07:00
Chris Robinson
c3e2fbef49
Avoid double indirection to access spa_data::datas
2021-10-07 13:36:33 -07:00
Chris Robinson
86abe8dca2
Fix the render step value for WinMM
2021-10-05 03:02:45 -07:00
Chris Robinson
90cfd090d6
Fix inverted macro check
2021-10-04 00:08:39 -07:00
Chris Robinson
1a0287e2a0
Don't call OutputDebugStringW in Release builds
2021-10-03 23:49:06 -07:00
Chris Robinson
f92cc479d8
Silence some static analysis warnings
2021-10-03 08:02:57 -07:00
Chris Robinson
53d9033ec7
Remove a couple unnecessary variables
2021-10-03 06:48:00 -07:00
Chris Robinson
38d3ea3501
Make simpler likely/unlikely functions and use them in some places
2021-10-03 06:41:14 -07:00
Chris Robinson
c66e4f5bd4
Use a constexpr char array instead of duplicating strings
2021-09-19 17:02:10 -07:00
Chris Robinson
52bfe430a3
Replace a hardcoded offset value
2021-09-14 15:09:58 -07:00
Chris Robinson
302d662c0a
Wait for the pipewire capture stream to start before returning
2021-09-13 14:30:38 -07:00
Chris Robinson
9c136bb3b4
Track whether nodes are marked as headphones
...
Newer versions of PipeWire copy the PW_KEY_DEVICE_FORM_FACTOR property to the
sink node, so this should work to detect whether the device should be treated
as headphones or not.
2021-09-12 03:04:46 -07:00
Chris Robinson
c40e7db82a
Use a constexpr char array for a reused prefix string
2021-09-12 02:19:38 -07:00
Chris Robinson
2df78e49b1
Use a local unique_ptr array instead of a struct member
...
For the sndio poll fds.
2021-09-01 20:10:30 -07:00
Chris Robinson
d97ff8f1c4
Remove a leftover debug trace
2021-09-01 20:06:24 -07:00
Chris Robinson
325523b06a
Fix when a PipeWire metadata property is being cleared
2021-09-01 20:06:24 -07:00
Andrew Krasavin
a4b0a3d7b3
Fix crashes in SndioCapture::recordProc ( #594 )
...
* Fix crashes while capturing audio using openal with sndio backend.
* Proper function for mFds preallocation.
Now it is checked whether the returned value of the sin_nfds() function is not a negative number.
2021-09-01 19:58:12 -07:00
Chris Robinson
602b33fede
Always define NOMINMAX on Windows
...
Clang needs it too, not just MSVC, and it doesn't seem to hurt MinGW.
2021-08-23 11:08:58 -07:00
Chris Robinson
b841ce5e17
Properly check the channel count for WASAPI capture
2021-08-23 00:04:43 -07:00
Chris Robinson
4800dfafce
Properly limit the name header comparison length
2021-08-22 19:42:05 -07:00
Chris Robinson
643c1648fb
Don't store "OpenAL Soft on " in WASAPI device names
...
It's still prepended for enumeration, just not part of the name in the DevMap.
2021-08-22 19:26:09 -07:00
Chris Robinson
365ff8302e
Add PipeWire capture support
2021-08-21 13:27:14 -07:00
Chris Robinson
b1031459c9
Don't try to get the stream time if there's no stream
2021-08-19 11:55:39 -07:00
Chris Robinson
4b030b7e95
Simplify pwire_load
2021-08-19 06:11:30 -07:00
Chris Robinson
ca2e0e4b2b
Track default devices with PipeWire
2021-08-18 18:35:53 -07:00
Chris Robinson
04372b3f48
Support getting device latency with PipeWire
2021-08-18 13:01:42 -07:00
Chris Robinson
e197b52564
Track the actual update size used for PipeWire updates
2021-08-18 05:04:07 -07:00
Chris Robinson
c62425fe74
Minor naming and comment typo fix
2021-08-15 07:47:31 -07:00
Chris Robinson
3154684f97
Reduce the JACK and ALSA backend priority
...
With the increased use of PipeWire, which offers JACK compatibility, the JACK
backend has a higher potential to be auto-selected for users. However, due to
the backend's inability to auto-configure output to the device format, this
creates a less optimal out-of-the-box experience.
Unfortunately this also means the JACK backend won't be used automatically when
a real JACK server is running along with PulseAudio. While not ideal, this is
probably the better of the two options, to have the user explicitly configure
the library to use JACK when they really want to use it, instead of unwantingly
selecting JACK because of PipeWire.
2021-08-14 20:14:12 -07:00
Chris Robinson
4800749c8e
Add enumeration support to the PipeWire backend
...
This does not currently track the default devices, and simply gives which came
up first. More work is needed to find the default source/sink node IDs.
2021-08-14 08:34:58 -07:00
Chris Robinson
dc9b39f419
Implement PipeWire playback
...
Not yet an auto-selected backend. This doesn't yet support enumeration, or
matching the AL device format to the output.
2021-08-06 21:38:23 -07:00
Chris Robinson
4cc820bb5c
Start a PipeWire backend
...
It's just a copy of the Null backend to start with
2021-08-02 21:03:18 -07:00
Chris Robinson
0a0849db99
Use an optional bool instead of two tri-state enums
2021-07-31 14:24:49 -07:00
Chris Robinson
440b59704c
Fix al::optional operator*
2021-07-31 14:21:46 -07:00
Chris Robinson
47c20b283e
Use a higher quality all-pass for the UHJ utils
2021-07-30 08:08:16 -07:00
Chris Robinson
29fba79cd5
Avoid 5.1Rear as its own channel configuration
...
It messes with 5.1 sources using direct channels, and the surround channels are
supposed to map to the side labels. Individual backends can deal with the
channel order/label differences, as they already do to a degree.
2021-07-30 07:38:26 -07:00