Wim Taymans
77bd687bac
acp: fix size of array
2020-08-04 12:05:56 +02:00
Wim Taymans
9943733b8c
acp: pass all properties when creating a card
...
They might contain other info like prefered card name etc.
2020-08-03 18:15:04 +02:00
Wim Taymans
7f7a8ccc88
acp: use some existing keys and add some new ones
2020-08-03 17:08:46 +02:00
Wim Taymans
a655e8f6df
alsa-util: fix check for digit
...
Fix the check for a digit by checking if the value is between the
*character* '0' (not *value* 0) and '9'.
2020-08-03 10:10:04 +02:00
Wim Taymans
d2452e1340
acp-device: remove sources when destroyed
...
Or we end up polling wrong fds in an infinite loop.
2020-07-29 12:19:33 +02:00
Wim Taymans
1d7ca5bdae
add udev rules so we don't rely on pulseaudio
2020-07-28 13:11:17 +02:00
Wim Taymans
eaf7606e3f
acp: pass udev PROFILE_SETS to acp device
2020-07-28 13:00:45 +02:00
Wim Taymans
e478ba7e34
alsa: be safer when parsing device string
2020-07-28 12:51:33 +02:00
Wim Taymans
154f981f97
Add mixer paths and profile-sets as well
...
So we don't have to rely on pulseaudio installed ones
2020-07-28 12:30:32 +02:00
Wim Taymans
3f33c9c81d
acp: sync with latest
2020-07-28 10:16:47 +02:00
Wim Taymans
ca5836cdf4
alsa: fix delay parameter
...
We need to keep twice the delay of samples around. Fixes capture
with resampling.
2020-07-27 16:22:17 +02:00
Wim Taymans
8f3771a56c
alsa-pcm: also follow resampler insize when resampling
...
Use the input size of the resampler as the amount of samples to
read when we are resampling.
2020-07-27 15:57:27 +02:00
Wim Taymans
875236631f
acp: don't ignore return value
2020-07-21 15:42:04 +02:00
Wim Taymans
a459c1f226
acp: sync with master
2020-07-13 14:39:27 +02:00
Wim Taymans
ee59bcd632
acp: emit volume/mute changes on change
2020-07-08 17:24:23 +02:00
Wim Taymans
b896d65723
acp: emit param change when port changed
2020-07-08 16:16:43 +02:00
Wim Taymans
e030445e49
acp: add volume base and step
...
Add a READONLY property flag to makr properties READONLY
Set the base_volume and volume_step in the acp device
Send the base volume and step as REAONLY properties. Use these
in pulse layer.
2020-07-07 13:12:57 +02:00
Wim Taymans
cf8db93cd4
pod: add HARDWARE flag to spa_pod_prop
...
Add HARDWARE flag to mark a property that does some hardware control.
Mark the device volume/mute property as HARDWARE or not.
Use the HARDWARE property in pulse to set the right flags.
2020-07-06 17:46:32 +02:00
Wim Taymans
b9d412e618
monitor: add device event
...
Add device events and signal soft volume with an object config
event.
2020-07-06 17:25:05 +02:00
Wim Taymans
d80d593271
acp: add support for soft volume
...
Add a set_soft_volume/mute event.
If we can't configure the hardware volume completely, notify
the remainder with the soft_volume/mute events.
2020-07-06 17:22:42 +02:00
Wim Taymans
ea6dfe204c
acp: don't install library for now
2020-07-06 12:58:33 +02:00
Wim Taymans
1612f5e4d2
alsa-acp: Add libacp based card device
...
libacp is a port and wrapper around the pulseaudio card profile code.
It uses a set of templates for construct a card profile and mixer port
settings. It also has support for UCM when available for the hardware.
2020-07-06 12:20:09 +02:00
Wim Taymans
698509ef55
alsa: set classes in the profile
...
parse classes in the pulse layer
2020-07-01 13:39:10 +02:00
Wim Taymans
1ee8944a2a
alsa: improve debug
2020-07-01 13:16:37 +02:00
Wim Taymans
8168dfdbc1
alsa-pcm: allow setting number of channels
...
Allow passing the number of channels when creating a device to
restrict the negotiated channels.
2020-07-01 12:54:27 +02:00
Wim Taymans
267eabaf69
alsa: add default channel map when not given
2020-07-01 12:46:03 +02:00
Wim Taymans
f65d71dd5b
alsa: support planar formats
2020-07-01 11:43:25 +02:00
Wim Taymans
7d88c37e5b
alsa-seq: clear the midi event queue on close to avoid leak
2020-06-02 17:13:53 +02:00
Wim Taymans
d2bd076a97
alsa: close output handler to avoid a leak
2020-06-02 17:13:26 +02:00
Wim Taymans
a19bab4b16
avoid following NULL pointers
2020-05-20 15:24:25 +02:00
Wim Taymans
8dcd6c4417
improve debug
2020-05-09 19:21:55 +02:00
Wim Taymans
1ca7713057
implement NEAREST flag
...
when the NEAREST flag is set and the param could not be completely
set, set_param should return 1 to indicate this.
2020-05-08 17:52:30 +02:00
Wim Taymans
b53cc6feb8
improve debug
...
Log device name and stream direction
Don't log xrun errors in alsa, we signal the xrun signal, which should
take care of logging if any.
Log quantum in xrun.
ratelimit xrun messages.
2020-05-08 12:13:59 +02:00
Wim Taymans
995fafa5be
alsa-seq: remove the queue for system announce port
...
The announce messages are not put in a queue so we don't need
to allocate one (and a timer). Without the timer, we avoid wakeups
and consume less power.
See #225
2020-05-06 11:19:46 +02:00
Wim Taymans
aafd1e7298
improve debug
...
Improve log so that debug level 3 gives a reasonably readable overview
of what is going on.
2020-04-22 12:47:18 +02:00
Wim Taymans
74665de68e
alsa-seq: keep track of last port
...
Keep track of the last port and only iterate until that port.
2020-03-31 17:52:22 +02:00
Wim Taymans
e6675ff2a8
alsa-seq: unsubscribe when paused/suspended
...
When we are suspended or paused, unsubscribe from the ports so that
we don't block the hardware devices.
See #225
2020-03-31 12:14:52 +02:00
Wim Taymans
a1846c9780
udev: don't loop forever on errors
...
When we can't find the v4l2 device id, unref the device and continue
instead of looping forever and consuming all memory.
Fixes #219
2020-03-24 15:54:58 +01:00
Wim Taymans
441fdb2333
alsa: fix buffer recycle
...
We only set the OUT flag when we put the buffer on an io area and
might need to recycle later.
Before placing the output buffer into the io area, recycle any
buffer that might be left in there.
Only emit the ready callback when we have some data queued.
2020-03-19 13:12:49 +01:00
Wim Taymans
949dba7bfc
fmt-ops: flesh out avx optimizations
2020-03-17 17:27:47 +01:00
Wim Taymans
72d70b0f48
Add and fix some more warnings
...
Fixes #216
2020-03-17 11:37:56 +01:00
Wim Taymans
cb7bfdf98a
sprinkly SPA_LIKELY/UNLIKELY around
2020-03-16 12:52:28 +01:00
Wim Taymans
9613f16caf
alsa-pcm: ignore error after recover
...
If we get an error after receovering, ignore it and assume we filled
the buffer completely. We need to do this or otherwise we stop the
timer and audio stops.
2020-03-12 10:52:52 +01:00
Wim Taymans
d8bac82e72
improve logging
...
Remove some harmless warnings from the log
Remove some excessive info logging
2020-02-21 11:09:34 +01:00
Wim Taymans
a528189d26
slave -> follower
...
We use master/follower terminology everywhere.
2020-02-21 10:47:32 +01:00
Wim Taymans
ea911f2e3f
tweak buffers a little
...
JACK can handle 2 buffers at most, make the default buffer allocator
allocate 2 buffers when no params are given.
Prefer 2 buffers, it allows some form of async fill/consume
2020-02-19 10:17:00 +01:00
Philipp Zabel
cb1071bce7
alsa-seq: fix seq_open error path
...
If snd_seq_open fails, do not call snd_seq_close(NULL).
2020-02-07 19:07:14 +01:00
Wim Taymans
1404cb4182
alsa-pcm: add device to object path
...
Use card id and device in the object path.
2020-02-04 18:01:48 +01:00
Wim Taymans
50ce87df32
node: we are supposed to produce data when != HAVE_DATA
...
We can produce data whenever the io area status != HAVE_DATA. We
don't need to look for NEED_DATA.
Also recycling buffer happens whenever the status != HAVE_DATA.
2020-02-04 12:59:16 +01:00
Wim Taymans
e7b5bd5e5b
alsa: actually place the delay in clock.delay
2020-01-30 19:32:19 +01:00