diff --git a/audio/gateway.c b/audio/gateway.c
index f3e6c6a..ca44576 100644
--- a/audio/gateway.c
+++ b/audio/gateway.c
dev->gateway->state == GATEWAY_STATE_CONNECTED);
}
+gboolean gateway_is_active(struct audio_device *dev)
+{
+ struct gateway *gw = dev->gateway;
+
+ if (gw->state != GATEWAY_STATE_DISCONNECTED)
+ return TRUE;
+
+ return FALSE;
+}
+
int gateway_connect_rfcomm(struct audio_device *dev, GIOChannel *io)
{
if (!io)
diff --git a/audio/gateway.h b/audio/gateway.h
index a8ed2f2..77f5787 100644
--- a/audio/gateway.h
+++ b/audio/gateway.h
void gateway_set_state(struct audio_device *dev, gateway_state_t new_state);
void gateway_unregister(struct audio_device *dev);
struct gateway *gateway_init(struct audio_device *device);
+gboolean gateway_is_active(struct audio_device *dev);
gboolean gateway_is_connected(struct audio_device *dev);
int gateway_connect_rfcomm(struct audio_device *dev, GIOChannel *io);
int gateway_connect_sco(struct audio_device *dev, GIOChannel *chan);
diff --git a/audio/manager.c b/audio/manager.c
index 053562e..06d3f0e 100644
--- a/audio/manager.c
+++ b/audio/manager.c
goto drop;
}
- if (gateway_is_connected(device)) {
+ if (gateway_is_active(device)) {
DBG("Refusing new connection since one already exists");
goto drop;
}