Alexandre Ratchov
e453b782d1
Merge branch 'master' of ssh://moule/~alex/git/sndio
2019-09-05 09:05:37 +02:00
Alexandre Ratchov
6918eaa94e
Remove unused #include <sys/signal>
2019-09-05 09:05:33 +02:00
Alexandre Ratchov
5bc17e6cea
Allow switching between devices without disconnecting clients.
...
The new -F option allows alternate device to be specified. If the
device is disconnected, the one given with the last -f or -F options
will be used.
2019-08-29 14:24:05 +02:00
Alexandre Ratchov
58f116481d
Split dev_close() routine in two parts.
...
The first part disconnects clients, the other closes the device
and frees audio buffers. No behavior change.
2019-08-29 09:36:57 +02:00
Alexandre Ratchov
803cf23380
Split dev_open() in two parts.
...
The first part resets audio parameters to the prefered ones, the
second part opens the device and allocates the audio buffers. No
behavior change.
2019-08-29 09:25:59 +02:00
Alexandre Ratchov
6a68d29389
Add missing prototypes.
2019-08-29 09:18:24 +02:00
Alexandre Ratchov
eee6a97114
Tweak debug printf in port_open()
2019-08-29 09:14:27 +02:00
Alexandre Ratchov
6ee8e730f4
Move code to disconnect all MIDI clients to its own routine.
2019-08-27 15:06:18 +02:00
Alexandre Ratchov
db1e20ae8f
Fix comment about midi port hold flag.
2019-08-27 14:10:28 +02:00
Alexandre Ratchov
7933511f57
Move code to disconnect all clients to its own routine.
2019-08-27 10:21:12 +02:00
Alexandre Ratchov
9f85e83893
Uniformize device-specific debug printfs.
2019-08-27 10:19:23 +02:00
Alexandre Ratchov
436f0dbfff
Fix builds with no DEBUG defined.
2019-07-28 11:26:51 +02:00
Alexandre Ratchov
50ccf31dd8
Crank max number of channels to 64.
2019-07-28 11:23:56 +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
93ffa39ea2
Remove few level 3 debug printfs related to slot allocation.
2019-07-11 12:55:18 +02:00
Alexandre Ratchov
d2985fff2b
Replace the "umap" bitmap by a simple table of slot pointers.
...
Makes the code simpler at virtually no cost since we need 8 entries
only. No behavior change.
2019-07-11 12:54:38 +02:00
Alexandre Ratchov
e6579625a0
Swap "if" and "else" code blocks in slot_new() to improve readability.
...
No behavior change.
2019-07-11 12:54:26 +02:00
Alexandre Ratchov
e21b26a56f
Slot name can't be empty. So, no need to check if it empty.
2019-07-11 12:54:05 +02:00
Alexandre Ratchov
505722ac5d
Use NULL instead of 0 where a pointer is expected.
2019-07-11 12:53:46 +02:00
Alexandre Ratchov
7e15b80ed3
Add forgottend copyright notice.
2019-07-06 00:34:06 +02:00
Alexandre Ratchov
c5f6aacfcb
Use 4 spaces for indentation after "if".
2019-07-05 09:37:31 +02:00
Alexandre Ratchov
98d4c00b6a
Fix comments and few debug printfs in utils.c.
2019-07-02 08:09:31 +02:00
Alexandre Ratchov
cbdd29c403
alsa: use (blksz - round) as start threshold.
...
The threshold making poll() return POLLOUT is one block (according to
alsa library sources). If a poll-based program writes blksz - 1
samples, playback never starts but poll won't return POLLOUT either.
In turn the program deadlocks. The problem could be observed in the
sio_alsa_xrun() routine.
2019-07-01 17:12:00 +02:00
Alexandre Ratchov
f9c0bed6d9
Check return values of syscalls against -1 in OSS code
2019-07-01 17:10:55 +02:00
Alexandre Ratchov
42a25f2ca4
Factor audio buffer allocation into a dedicated allocbuf routine.
2019-07-01 09:20:33 +02:00
Alexandre Ratchov
934e1611e8
Check return values of syscalls against -1, from deraadt@.
2019-07-01 09:20:22 +02:00
Alexandre Ratchov
74abe4dcc7
Ignore sub-frames component in MMC relocate message.
2019-06-16 15:37:15 +02:00
Alexandre Ratchov
e6587d3b97
Fix integer multiplication overflow in block size calculation.
2019-05-17 07:25:16 +02:00
Alexandre Ratchov
a1774cc9e0
Revert "Use the correct length for MIDI common messages."
2019-05-10 07:00:52 +02:00
Alexandre Ratchov
efc963bb57
Use the correct length for MIDI common messages.
2019-05-10 06:40:33 +02:00
Alexandre Ratchov
6ac10f167b
Wait until the server disconnects before closing the socket.
...
When the socket is closed, the last bytes written may be lost.
2019-03-28 08:13:59 +01:00
Alexandre Ratchov
c75f08ec81
Don't send MIDI flow control messages too often.
2019-03-28 08:13:23 +01:00
Alexandre Ratchov
2c97522b5a
Sync midicat(1) manual to OpenBSD.
2019-02-21 07:44:07 +01:00
Alexandre Ratchov
00910bf6fa
mio_open.3: "a" MIDI, not "an"; from jmc@
2019-02-21 07:43:36 +01:00
Alexandre Ratchov
d428027573
Tweak a space to reduce diff with OpenBSD.
2019-02-21 07:42:20 +01:00
Alexandre Ratchov
16ae676f9e
Say that using sio_getcap() to negociate parameters is not recomended.
...
From Paul Swanson <psw at protonmail.com>, ok jmc
2019-02-21 07:39:56 +01:00
Alexandre Ratchov
d9c44b2c2d
Remove guards for a zero length read or write requests. From miko@.
2019-02-21 07:37:37 +01:00
Alexandre Ratchov
10777e2260
Revert "midicat: Move midi write its own routine."
...
This reverts commit ea55b2c67d
.
2018-11-08 11:25:39 +01:00
Alexandre Ratchov
2799f8975e
aucat: Fix clipping during float to integer conversions.
...
From Jari Vetoniemi <mailroxas at gmail.com>. Thanks!
2018-11-07 22:23:18 +01:00
Alexandre Ratchov
d7a55c76ee
No need to include sys/stat.h. From miko@.
2018-09-26 13:52:53 +02:00
Alexandre Ratchov
dc31dcd99e
Fix message to reflect "rmidi" is the expected string. From miko@.
2018-09-26 13:52:50 +02:00
Alexandre Ratchov
d4048a3a19
Use _sndio_parsenum() to parse device numbers. From miko@.
2018-09-26 13:45:23 +02:00
Alexandre Ratchov
471495bd21
Clear resamp state array with memset. From miko@.
2018-09-26 13:36:42 +02:00
Alexandre Ratchov
6443e1dee1
sndiod: rename /tmp/aucat/aucatN -> /tmp/sndio/sockN
2018-07-27 15:42:51 +02:00
Alexandre Ratchov
8018db24a0
libsndio: move ~/.aucat_cookie to ~/.sndio/cookie
2018-07-27 15:41:04 +02:00
Alexandre Ratchov
ea55b2c67d
midicat: Move midi write its own routine.
2018-06-19 12:30:06 +02:00
Alexandre Ratchov
c9a6bf3db6
sndiod: Set slot state outside slot_attach() as we do in slot_detach().
2018-06-11 19:57:20 +02:00
Alexandre Ratchov
6bc6041b30
sndiod: Reset skip counter in slot_start().
2018-06-11 19:57:16 +02:00
Alexandre Ratchov
ed64776ceb
sndiod: Remove redundant slot->tstate variable.
...
It was used to determine whether the slot obeys MMC and is ready
to start. The stop->opt->mmc flag indicates if it obeys MMC and
the slot->pstate == SLOT_READY indicates if it's ready. So
slot->tstate can be safely removed.
2018-06-11 19:57:16 +02:00
Alexandre Ratchov
84ec0ebd8c
sndiod: Remove useless check of s->ops in slot_setvol().
2018-06-11 19:57:12 +02:00