This goes against how all standard jack clients work, a new jack client
should not auto-connect at all unless explicitly configured to as if
there is an existing audio diagram configured (which is 99% of the time)
it will cause unexpected/undesired behavior.
Jack is not supposed to be an 'automatic' system, it's the
responsibility of the patch bay software to route connections.
The auto-connect feature exists to allow the jack audiodev to re-connect
a broken connection when the jack device restarts/reconnects.
On 2021-02-25 06:39, Christian Schoenebeck wrote:
On Mittwoch, 24. Februar 2021 20:19:27 CET José Pekkarinen wrote:
This patch provides a default value to connect
jack ports when the user don't specify connect-ports.
Buglink: https://bugs.launchpad.net/qemu/+bug/1908832
Signed-off-by: José Pekkarinen <koali...@gmail.com>
---
audio/jackaudio.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/audio/jackaudio.c b/audio/jackaudio.c
index 3031c4e29b..0a87d5e23a 100644
--- a/audio/jackaudio.c
+++ b/audio/jackaudio.c
@@ -369,14 +369,23 @@ static size_t qjack_read(HWVoiceIn *hw, void
*buf,
size_t len)
static void qjack_client_connect_ports(QJackClient *c)
{
- if (!c->connect_ports || !c->opt->connect_ports) {
+ if (!c->connect_ports) {
return;
}
c->connect_ports = false;
const char **ports;
- ports = jack_get_ports(c->client, c->opt->connect_ports, NULL,
- c->out ? JackPortIsInput : JackPortIsOutput);
+ if (c->out) {
+ ports = jack_get_ports(c->client,
+ c->opt->connect_ports ? c->opt->connect_ports
+ : "system:playback_.*",
+ NULL, JackPortIsInput);
+ } else {
+ ports = jack_get_ports(c->client,
+ c->opt->connect_ports ? c->opt->connect_ports
+ : "system:capture_.*",
+ NULL, JackPortIsOutput);
+ }
if (!ports) {
return;
Looks fine to me now.
Reviewed-by: Christian Schoenebeck <qemu_...@crudebyte.com>
Thanks José!
Best regards,
Christian Schoenebeck