diff options
author | Lennart Poettering <lennart@poettering.net> | 2009-01-07 22:59:25 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2009-01-07 22:59:25 +0100 |
commit | 2f681a3d18cf403eb8c3a3d2352ab5bfc0264cfd (patch) | |
tree | 81a5c3b908f8919e593c3db957d23bd150ab5c82 | |
parent | 78e636e629518f67b667222bd92197f52c151b38 (diff) | |
parent | e7e6f86bbe0dda37e906ed31144b44a83327ee02 (diff) |
Merge commit 'vudentz/master'
-rw-r--r-- | src/modules/bluetooth/module-bluetooth-device.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c index 5974d485..cb4746a4 100644 --- a/src/modules/bluetooth/module-bluetooth-device.c +++ b/src/modules/bluetooth/module-bluetooth-device.c @@ -123,11 +123,13 @@ static const char* const valid_modargs[] = { static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) { int e; const char *type, *name; + uint16_t length; + length = msg->length ? msg->length : BT_SUGGESTED_BUFFER_SIZE; type = bt_audio_strtype(msg->type); name = bt_audio_strname(msg->name); pa_log_debug("sending: %s -> %s", type, name); - if (send(sk, msg, BT_SUGGESTED_BUFFER_SIZE, 0) > 0) + if (send(sk, msg, length, 0) > 0) e = 0; else { e = -errno; @@ -139,9 +141,12 @@ static int bt_audioservice_send(int sk, const bt_audio_msg_header_t *msg) { static int bt_audioservice_recv(int sk, bt_audio_msg_header_t *inmsg, uint16_t expected_length) { int e; const char *type, *name; + uint16_t length; + + length = expected_length ? expected_length : BT_SUGGESTED_BUFFER_SIZE; pa_log_debug("trying to receive msg from audio service..."); - if (recv(sk, inmsg, expected_length ? : BT_SUGGESTED_BUFFER_SIZE, 0) > 0) { + if (recv(sk, inmsg, length, 0) > 0) { type = bt_audio_strtype(inmsg->type); name = bt_audio_strname(inmsg->name); if (type && name) { @@ -453,9 +458,12 @@ static int bt_setconf(struct userdata *u) { strncpy(msg.setconf_req.device, u->addr, 18); msg.setconf_req.codec.transport = u->transport; - if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP) + if (u->transport == BT_CAPABILITIES_TRANSPORT_A2DP) { memcpy(&msg.setconf_req.codec, &u->a2dp.sbc_capabilities, sizeof(u->a2dp.sbc_capabilities)); + msg.setconf_req.h.length += msg.setconf_req.codec.length + - sizeof(msg.setconf_req.codec); + } msg.setconf_req.access_mode = BT_CAPABILITIES_ACCESS_MODE_WRITE; e = bt_audioservice_send(u->audioservice_fd, &msg.setconf_req.h); |