diff --git a/profiles/audio/a2dp.c b/profiles/audio/a2dp.c
index e52bb35..145b1aa 100644
--- a/profiles/audio/a2dp.c
+++ b/profiles/audio/a2dp.c
#include "a2dp.h"
#include "a2dp-codecs.h"
#include "sdpd.h"
-#include "../src/manager.h"
-#include "../src/device.h"
/* The duration that streams without users are allowed to stay in
* STREAMING state. */
static struct audio_device *a2dp_get_dev(struct avdtp *session)
{
- struct btd_adapter *adapter = avdtp_get_adapter(session);
- struct btd_device *device = avdtp_get_device(session);
-
- return manager_get_device(adapter_get_address(adapter),
- device_get_address(device), FALSE);
+ return manager_get_audio_device(avdtp_get_device(session), FALSE);
}
static struct a2dp_setup *setup_new(struct avdtp *session)
diff --git a/profiles/audio/avctp.c b/profiles/audio/avctp.c
index e56885a..8ffbf43 100644
--- a/profiles/audio/avctp.c
+++ b/profiles/audio/avctp.c
struct audio_device *dev;
avctp_state_t old_state = session->state;
- dev = manager_get_device(adapter_get_address(session->server->adapter),
- device_get_address(session->device),
- FALSE);
+ dev = manager_get_audio_device(session->device, FALSE);
if (dev == NULL) {
error("%s(): No matching audio device", __func__);
return;
struct audio_device *dev;
char address[18], name[248 + 1];
- dev = manager_get_device(adapter_get_address(session->server->adapter),
- device_get_address(session->device),
- FALSE);
+ dev = manager_get_audio_device(session->device, FALSE);
device_get_name(dev->btd_dev, name, sizeof(name));
if (g_str_equal(name, "Nokia CK-20W")) {
}
ba2str(device_get_address(session->device), address);
-
session->uinput = uinput_create(address);
if (session->uinput < 0)
error("AVRCP: failed to init uinput for %s", address);
if (session == NULL)
return;
- dev = manager_get_device(&src, device_get_address(device), FALSE);
+ dev = manager_get_audio_device(device, FALSE);
if (!dev) {
- dev = manager_get_device(&src, device_get_address(device),
- TRUE);
+ dev = manager_get_audio_device(device, TRUE);
if (!dev) {
error("Unable to get audio device object for %s",
address);
diff --git a/profiles/audio/avdtp.c b/profiles/audio/avdtp.c
index 690294c..aca7e62 100644
--- a/profiles/audio/avdtp.c
+++ b/profiles/audio/avdtp.c
GSList *l;
struct audio_device *dev;
avdtp_session_state_t old_state = session->state;
- struct btd_adapter *adapter = avdtp_get_adapter(session);
- struct btd_device *device = avdtp_get_device(session);
session->state = new_state;
- dev = manager_get_device(adapter_get_address(adapter),
- device_get_address(device), FALSE);
+ dev = manager_get_audio_device(avdtp_get_device(session), FALSE);
if (dev == NULL) {
error("%s(): No matching audio device", __func__);
return;
stream_setup = session->stream_setup;
session->stream_setup = FALSE;
- dev = manager_get_device(adapter_get_address(session->server->adapter),
- device_get_address(session->device),
- FALSE);
+ dev = manager_get_audio_device(session->device, FALSE);
if (dev && dev->sink && stream_setup)
sink_setup_stream(dev->sink, session);
uint8_t err, category = 0x00;
struct audio_device *dev;
GSList *l;
- struct btd_adapter *adapter = avdtp_get_adapter(session);
- struct btd_device *device = avdtp_get_device(session);
if (size < sizeof(struct setconf_req)) {
error("Too short getcap request");
goto failed;
}
- dev = manager_get_device(adapter_get_address(adapter),
- device_get_address(device), FALSE);
+ dev = manager_get_audio_device(avdtp_get_device(session), FALSE);
if (!dev) {
error("Unable to get a audio device object");
err = AVDTP_BAD_STATE;
goto drop;
}
- dev = manager_get_device(&src, &dst, FALSE);
+ dev = manager_get_audio_device(device, FALSE);
if (!dev) {
- dev = manager_get_device(&src, &dst, TRUE);
+ dev = manager_get_audio_device(device, TRUE);
if (!dev) {
error("Unable to get audio device object for %s",
address);
diff --git a/profiles/audio/manager.c b/profiles/audio/manager.c
index 3b1370c..178b6f9 100644
--- a/profiles/audio/manager.c
+++ b/profiles/audio/manager.c
static struct audio_device *get_audio_dev(struct btd_device *device)
{
- struct btd_adapter *adapter = device_get_adapter(device);
-
- return manager_get_device(adapter_get_address(adapter),
- device_get_address(device), TRUE);
+ return manager_get_audio_device(device, TRUE);
}
static GSList *manager_find_devices(const char *path,
btd_unregister_adapter_driver(&media_driver);
}
-struct audio_device *manager_get_device(const bdaddr_t *src,
- const bdaddr_t *dst,
- gboolean create)
+struct audio_device *manager_get_audio_device(struct btd_device *device,
+ gboolean create)
{
struct audio_device *dev;
- struct btd_adapter *adapter;
- struct btd_device *device;
- char addr[18];
+ struct btd_adapter *adapter = device_get_adapter(device);
- dev = manager_find_device(NULL, src, dst, NULL, FALSE);
+ dev = manager_find_device(NULL, adapter_get_address(adapter),
+ device_get_address(device), NULL,
+ FALSE);
if (dev)
return dev;
if (!create)
return NULL;
- ba2str(src, addr);
-
- adapter = manager_find_adapter(src);
- if (!adapter) {
- error("Unable to get a btd_adapter object for %s",
- addr);
- return NULL;
- }
-
- ba2str(dst, addr);
-
- device = adapter_get_device(adapter, addr, BDADDR_BREDR);
- if (!device) {
- error("Unable to get btd_device object for %s", addr);
- return NULL;
- }
-
dev = audio_device_register(device);
if (!dev)
return NULL;
diff --git a/profiles/audio/manager.h b/profiles/audio/manager.h
index 6d36ebe..9e5ac94 100644
--- a/profiles/audio/manager.h
+++ b/profiles/audio/manager.h
int audio_manager_init(GKeyFile *config);
void audio_manager_exit(void);
-struct audio_device *manager_get_device(const bdaddr_t *src,
- const bdaddr_t *dst,
- gboolean create);
+struct audio_device *manager_get_audio_device(struct btd_device *device,
+ gboolean create);
/* TRUE to enable fast connectable and FALSE to disable fast connectable for all
* audio adapters. */