public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
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;
}

  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