1004 Commits

Author SHA1 Message Date
Chris Robinson
e70f3e97b3 Remove the last external uses of GetConfigValue 2021-10-21 05:54:03 -07:00
Devin Braune
0e9ce1aa83
Fix cone angle calculation (#605) 2021-10-14 11:18:54 -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
e3b8f8fe27 Make a construct_at method amd use it 2021-10-08 11:05:36 -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
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
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
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
Chris Robinson
486eca8ce6 Remove an unused variable 2021-07-30 06:26:53 -07:00
Chris Robinson
3b3df06195 Be more robust with unexpected channel counts 2021-07-30 06:13:54 -07:00
Chris Robinson
1fd4c865fc Use non-block mode for sndio capture 2021-07-30 04:15:00 -07:00
Chris Robinson
620836f173 Simplify channel handling in the sndio backend 2021-07-29 23:23:03 -07:00
Chris Robinson
d766c59d4d Simplify connecting JACK ports 2021-07-25 00:10:15 -07:00
Chris Robinson
02a985e70a Set the CoreAudio stream according to the device channel format 2021-07-24 22:01:53 -07:00
Chris Robinson
510e5fc197 Remove a redundant buffer clear 2021-07-24 19:02:49 -07:00
Chris Robinson
d662cd8761 Don't assume more than stereo for unrequested ALSA channels
If setting the requested format channel count fails, getting anything with 2 or
more channels assumes the first two channels are stereo, leaving the rest
silent.
2021-07-24 18:58:48 -07:00
Chris Robinson
df71e42877 Fix the device sample type in the SDL2 backend 2021-07-24 18:57:18 -07:00
Chris Robinson
fb1ad483d3 Ensure unused output channels are cleared when rendering 2021-07-24 18:15:02 -07:00
Chris Robinson
d998c03a27 Add a UHJ-specific coefficient scaling array 2021-07-13 06:31:13 -07:00
Chris Robinson
fb2cb2bd06 Attempt to support capture enumeration with CoreAudio 2021-07-10 00:34:00 -07:00
Chris Robinson
10d782502a Use variables and types when they're defined 2021-07-09 21:25:13 -07:00
Chris Robinson
c8cfdf6ddf Don't define enumeration functions when they're not used 2021-07-09 18:54:23 -07:00
Chris Robinson
d38c8419c7 Update the 5.1+center decoder and use it by default
The itu5.1-nocenter preset is the same as the previous default, so it can still
be used for people that prefer it. But this new one purportedly has better
panning and positioning responses in listening tests, which initial impressions
concur with.
2021-06-30 15:53:15 -07:00
Chris Robinson
c09c94de25 Allow decoders to specify the coefficient scaling 2021-06-25 08:10:41 -07:00
Chris Robinson
41add63728 Don't attenuate spatialized multichannel sources
It's inconsistent behavior with spatialized B-Format sources, and causes a very
apparent gain disparity between such a source on the listener compared to just
barely off-origin. It's also not something an app can easy correct for if it
doesn't want that behavior, since the source gain clamps to 1 by default. In
contrast, an app can attenuate sources as they want with little issue.
2021-06-24 08:21:25 -07:00