From: Marcel Holtmann <marcel@holtmann.org>
To: BlueZ Mailing List <bluez-devel@lists.sourceforge.net>
Subject: Re: [Bluez-devel] AVDTP socket?
Date: Fri, 19 Nov 2004 21:45:43 +0100 [thread overview]
Message-ID: <1100897144.7213.63.camel@pegasus> (raw)
In-Reply-To: <1100885959.7213.31.camel@pegasus>
[-- Attachment #1: Type: text/plain, Size: 566 bytes --]
Hi Brad,
> actually like with the attached patch. Most of the example *.sbc files
> are working. Some of them are not working and this is maybe because the
> frame header information don't matches the SBC configuration. Or maybe
> hcidump is decoding this wrong.
and I figured out what the extra RFCOMM channel 1 on my Aiptek headphone
does. You can simply stream the SBC files over it. The attached program
will do this for you, but actually it only works on streams with two
channels. I don't know what to change to support all test SBC files.
Regards
Marcel
[-- Attachment #2: rcplay.c --]
[-- Type: text/x-csrc, Size: 2535 bytes --]
/*
*
* Stream SBC files over RFCOMM
*
* Copyright (C) 2004 Marcel Holtmann <marcel@holtmann.org>
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation;
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
* CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
* COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
* SOFTWARE IS DISCLAIMED.
*
*/
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/socket.h>
#include <bluetooth/bluetooth.h>
#include <bluetooth/rfcomm.h>
static int rfcomm_connect(bdaddr_t *src, bdaddr_t *dst, uint8_t channel)
{
struct sockaddr_rc addr;
int sk;
sk = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
if (sk < 0)
return -1;
memset(&addr, 0, sizeof(addr));
addr.rc_family = AF_BLUETOOTH;
bacpy(&addr.rc_bdaddr, src);
if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
close(sk);
return -1;
}
memset(&addr, 0, sizeof(addr));
addr.rc_family = AF_BLUETOOTH;
bacpy(&addr.rc_bdaddr, dst);
addr.rc_channel = channel;
if (connect(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
close(sk);
return -1;
}
return sk;
}
static int stream_sbc(fd, sk)
{
unsigned char buf[330];
int err, len;
while (1) {
len = read(fd, buf, sizeof(buf));
if (len <= 0)
break;
err = write(sk, buf, len);
if (err < 0)
break;
}
return 0;
}
int main(int argc, char *argv[])
{
bdaddr_t bdaddr;
int fd, sk;
if (argc < 3) {
fprintf(stderr, "Usage: rcplay <bdaddr> <filename>\n");
exit(1);
}
str2ba(argv[1], &bdaddr);
fd = open(argv[2], O_RDONLY);
if (fd < 0) {
perror("Can't open file");
exit(1);
}
sk = rfcomm_connect(BDADDR_ANY, &bdaddr, 1);
if (sk < 0) {
perror("Can't open connection");
close(fd);
exit(1);
}
stream_sbc(fd, sk);
close(sk);
close(fd);
return 0;
}
next prev parent reply other threads:[~2004-11-19 20:45 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-07 5:36 [Bluez-devel] AVDTP socket? Brad Midgley
2004-11-07 12:27 ` Marcel Holtmann
2004-11-07 16:34 ` Brad Midgley
2004-11-07 16:54 ` Marcel Holtmann
2004-11-07 18:55 ` Brad Midgley
2004-11-07 21:33 ` Marcel Holtmann
2004-11-10 5:46 ` Brad Midgley
2004-11-10 8:47 ` Marcel Holtmann
2004-11-10 18:01 ` Brad Midgley
2004-11-10 18:57 ` Marcel Holtmann
2004-11-12 23:13 ` Brad Midgley
2004-11-13 0:38 ` Marcel Holtmann
2004-11-13 3:13 ` Brad Midgley
2004-11-13 13:06 ` Marcel Holtmann
2004-11-14 7:54 ` Brad Midgley
2004-11-14 15:29 ` Marcel Holtmann
2004-11-17 15:47 ` Brad Midgley
2004-11-17 15:52 ` Marcel Holtmann
2004-11-17 19:52 ` Brad Midgley
2004-11-17 20:01 ` Marcel Holtmann
2004-11-18 13:27 ` Henryk Plötz
2004-11-18 15:26 ` Brad Midgley
2004-11-18 19:11 ` Marcel Holtmann
2004-11-19 18:32 ` Henryk Plötz
2004-11-19 21:40 ` Brad Midgley
2004-11-18 23:59 ` Marcel Holtmann
2004-11-19 9:03 ` Brad Midgley
2004-11-19 11:41 ` Marcel Holtmann
2004-11-19 16:35 ` Brad Midgley
2004-11-19 16:53 ` Marcel Holtmann
2004-11-19 17:39 ` Marcel Holtmann
2004-11-19 20:45 ` Marcel Holtmann [this message]
2004-11-19 21:20 ` Henryk Plötz
2004-11-19 21:33 ` Marcel Holtmann
2004-11-19 23:58 ` Henryk Plötz
2004-11-19 21:51 ` Brad Midgley
2004-11-19 22:04 ` Marcel Holtmann
2004-11-19 23:23 ` Brad Midgley
2004-11-20 0:09 ` Marcel Holtmann
2004-11-20 0:04 ` Henryk Plötz
2004-11-20 0:43 ` Marcel Holtmann
2004-11-20 0:50 ` Henryk Plötz
2004-11-20 5:04 ` Marcel Holtmann
2004-11-19 18:44 ` Henryk Plötz
2004-11-19 18:38 ` Henryk Plötz
2004-11-19 18:56 ` Marcel Holtmann
2004-11-19 21:06 ` Henryk Plötz
2004-11-19 21:23 ` Marcel Holtmann
2004-11-21 5:46 ` Henryk Plötz
2004-11-21 17:44 ` Marcel Holtmann
2004-11-22 3:18 ` Marcel Holtmann
2004-11-22 4:32 ` Henryk Plötz
2004-11-22 13:28 ` Marcel Holtmann
2004-11-23 0:53 ` Henryk Plötz
2004-11-23 6:22 ` Marcel Holtmann
2004-11-22 4:22 ` [Bluez-devel] sbc reindent Brad Midgley
2004-11-15 8:24 ` [Bluez-devel] AVDTP socket? Sebastien
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1100897144.7213.63.camel@pegasus \
--to=marcel@holtmann.org \
--cc=bluez-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox