|
@@ -395,6 +395,10 @@ static int qjack_client_init(QJackClient *c)
|
|
|
char client_name[jack_client_name_size()];
|
|
|
jack_options_t options = JackNullOption;
|
|
|
|
|
|
+ if (c->state == QJACK_STATE_RUNNING) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
c->connect_ports = true;
|
|
|
|
|
|
snprintf(client_name, sizeof(client_name), "%s-%s",
|
|
@@ -485,9 +489,7 @@ static int qjack_init_out(HWVoiceOut *hw, struct audsettings *as,
|
|
|
QJackOut *jo = (QJackOut *)hw;
|
|
|
Audiodev *dev = (Audiodev *)drv_opaque;
|
|
|
|
|
|
- if (jo->c.state != QJACK_STATE_DISCONNECTED) {
|
|
|
- return 0;
|
|
|
- }
|
|
|
+ qjack_client_fini(&jo->c);
|
|
|
|
|
|
jo->c.out = true;
|
|
|
jo->c.enabled = false;
|
|
@@ -523,9 +525,7 @@ static int qjack_init_in(HWVoiceIn *hw, struct audsettings *as,
|
|
|
QJackIn *ji = (QJackIn *)hw;
|
|
|
Audiodev *dev = (Audiodev *)drv_opaque;
|
|
|
|
|
|
- if (ji->c.state != QJACK_STATE_DISCONNECTED) {
|
|
|
- return 0;
|
|
|
- }
|
|
|
+ qjack_client_fini(&ji->c);
|
|
|
|
|
|
ji->c.out = false;
|
|
|
ji->c.enabled = false;
|