Commit Graph

28 Commits

Author SHA1 Message Date
Alexandre Ratchov e55971c61e Add "maxval" attribute to sioctl_desc structure.
As control may have different max values, make sndioctl
expose floats in the [0:1] range.
2020-02-22 14:52:20 +01:00
Alexandre Ratchov 0ac817ab82 Rename node->str to node->name3 2020-01-23 07:38:14 +01:00
Alexandre Ratchov f51534ae26 Rename sioctl_chan to sioctl_node 2020-01-23 07:16:27 +01:00
Alexandre Ratchov 74ae9cda72 Make the control group a simple string.
To handle nested devices, just prefix the group with the "dev."
prefix. To avoid namespace conflicts, put program controls in a
new "app" group.

The "master.level" control is renamed to "output.level" to match the
hardware name. This way snd/0 and rsnd/0 end-up with the same control
name.
2020-01-13 09:27:06 +01:00
Alexandre Ratchov 6e83bb6a4f Rename siomix -> sioctl, stop using "mixer" word. 2020-01-03 15:19:25 +01:00
Alexandre Ratchov 939300b1bb Merge branch 'master' into mixer 2019-07-12 08:31:01 +02:00
Alexandre Ratchov 285eafeec0 Add affinity between the program and its mixer control.
Currently, if there are two instances of the same program, sndiod will
allocate one volume control to each. If both programs disconnect and
reconnect, the information of which control is assigned to which
program is lost. This makes difficult to run two instances of a player
and crossfade between each other with a MIDI controller.

To address this, the program chooses a 32-bit "id" (for now the
process pid) and sends it to the server. The server records the id in
the client's slot structure.  When the server accepts a new
connection, it uses the id to identify the slot the client used during
the previous connection; if it was not recycled yet, it's assigned to
the program.
2019-07-12 08:31:01 +02:00
Alexandre Ratchov 6d55c0b59f Merge branch 'master' into mixer 2018-07-27 16:30:57 +02:00
Alexandre Ratchov 6443e1dee1 sndiod: rename /tmp/aucat/aucatN -> /tmp/sndio/sockN 2018-07-27 15:42:51 +02:00
Alexandre Ratchov 7178903317 mixer: use (name, unit) couple for groups as well 2017-08-03 01:53:40 +02:00
Alexandre Ratchov 50e5b13815 rename namespace -> group (it's c++ keyword) 2016-05-15 14:45:32 +02:00
Alexandre Ratchov 5a63dff869 intruduce namespaces 2016-01-28 19:17:11 +01:00
Alexandre Ratchov 5dc67b663e merge head 2016-01-26 10:23:38 +01:00
Alexandre Ratchov 99cfc04004 fit code in 80 columns, remove traing spaces 2016-01-08 21:51:12 +01:00
Alexandre Ratchov 353176f99a merge PATH_MAX changes from HEAD 2015-10-02 14:40:00 +02:00
Alexandre Ratchov 5d431d3616 Replace hard-coded strings with macros, replace PATH_MAX with actual
string length, validate audio and midi device numbers
2015-10-02 14:28:17 +02:00
Alexandre Ratchov ba4929bdb9 Terminate mixer description dump with a MIXSYNC message. Fix
server-side "desc" temporary buffer size.
2015-09-05 16:10:03 +02:00
Alexandre Ratchov 043bb0950a remove labels, use the stream name instead. Disallow digits in
stream names and use the "unit" integer instead.
2015-09-04 17:08:12 +02:00
Alexandre Ratchov e8007feb00 move the mixer api to a dedicated "mixer" branch 2015-08-28 08:57:47 +02:00
Alexandre Ratchov 8468b9f0a0 rename grp->func 2015-06-04 06:12:38 +02:00
Alexandre Ratchov 905c319315 use strings rather than channel numbers 2015-03-05 10:12:34 +01:00
Alexandre Ratchov da8108f09a add initial support for audio mixers, disabled by default
ok armani@
2014-07-16 12:05:01 +02:00
Alexandre Ratchov a3a868da74 prime buffers with silence; make flow control start with zero
maxwrite
2012-11-07 08:48:35 +01:00
Alexandre Ratchov ea0d66a62d add explicit flow control in the protocol and use it for both midi and audio 2012-10-24 12:45:13 +02:00
Alexandre Ratchov e4ef0dc8d9 switch to type@hostname,unit/num.opt device names 2011-11-01 13:02:13 +01:00
Alexandre Ratchov 8c514d82b6 remove midicat 2011-10-18 00:29:58 +02:00
Alexandre Ratchov cc099911f6 sort macros 2011-04-28 00:57:59 +02:00
Alexandre Ratchov 5fdf55ede7 move amsg.h on libsndio side 2011-04-28 00:25:20 +02:00