From owner-freebsd-bluetooth@FreeBSD.ORG  Tue Oct  7 16:13:16 2008
Return-Path: <owner-freebsd-bluetooth@FreeBSD.ORG>
Delivered-To: freebsd-bluetooth@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 05B641065689
	for <freebsd-bluetooth@freebsd.org>;
	Tue,  7 Oct 2008 16:13:16 +0000 (UTC)
	(envelope-from maksim.yevmenkin@gmail.com)
Received: from ik-out-1112.google.com (ik-out-1112.google.com [66.249.90.183])
	by mx1.freebsd.org (Postfix) with ESMTP id 5E3CE8FC41
	for <freebsd-bluetooth@freebsd.org>;
	Tue,  7 Oct 2008 16:13:15 +0000 (UTC)
	(envelope-from maksim.yevmenkin@gmail.com)
Received: by ik-out-1112.google.com with SMTP id c29so2277235ika.3
	for <freebsd-bluetooth@freebsd.org>;
	Tue, 07 Oct 2008 09:13:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:received:received:message-id:date:from:to
	:subject:cc:in-reply-to:mime-version:content-type:references;
	bh=uicQB8UjsenYmrd4dNDdlJgiHtm5y1PeBQRcpJJ+YEE=;
	b=BDWIDgRa9YD/NwZEo0dNfnoRWwokCxc+3i+K0JbMjhoNnTGaTwvBEiU3j8BVvv4gis
	mytTfP2EO02LbLUDX2iHgmcbMPciKXkglJFt7Ege9i7iOSzfQuKbxfVAegGKh03MRL4Z
	Sz7FomCcDLPefg9Ov/P7oD604Xx4unkm53738=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=message-id:date:from:to:subject:cc:in-reply-to:mime-version
	:content-type:references;
	b=KZznk3sxDNRJ+RB2F86WZN0MyjVP4MlCPbHucBTfEfBiIoHsNuGXyl9pbfoJsnR5ub
	VB6iCZ0xIHP4X4BY8wfPb6SlvdoLRVId6rGTC9Poh0dOoGrWUiEScYJnNmF/8LZXzOUS
	e9Vi7W8exJv8bZGzzhnG5FWbH0yzqfJkJL2iM=
Received: by 10.86.61.13 with SMTP id j13mr6203786fga.69.1223395994068;
	Tue, 07 Oct 2008 09:13:14 -0700 (PDT)
Received: by 10.86.28.20 with HTTP; Tue, 7 Oct 2008 09:13:13 -0700 (PDT)
Message-ID: <bb4a86c70810070913g177edac5n14aab1b62cc61f86@mail.gmail.com>
Date: Tue, 7 Oct 2008 09:13:13 -0700
From: "Maksim Yevmenkin" <maksim.yevmenkin@gmail.com>
To: vova@fbsd.ru
In-Reply-To: <1223106788.4832.25.camel@localhost>
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_35222_13101688.1223395994077"
References: <3a386af20809261420j535680e8pf44453dbf6f84b20@mail.gmail.com>
	<bb4a86c70809261504v45ffe1a8oaf26670a1032e86c@mail.gmail.com>
	<1223034512.1842.111.camel@localhost>
	<bb4a86c70810030945g3d870a1eqacc85233d9698a66@mail.gmail.com>
	<1223106788.4832.25.camel@localhost>
Cc: freebsd-bluetooth@freebsd.org
Subject: Re: Bluetooth audio (once again)
X-BeenThere: freebsd-bluetooth@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Using Bluetooth in FreeBSD environments
	<freebsd-bluetooth.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth>, 
	<mailto:freebsd-bluetooth-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-bluetooth>
List-Post: <mailto:freebsd-bluetooth@freebsd.org>
List-Help: <mailto:freebsd-bluetooth-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth>, 
	<mailto:freebsd-bluetooth-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Oct 2008 16:13:16 -0000

------=_Part_35222_13101688.1223395994077
Content-Type: text/plain; charset=KOI8-R
Content-Transfer-Encoding: base64
Content-Disposition: inline

T24gMTAvNC8wOCwgVmxhZGltaXIgR3JlYmVuc2NoaWtvdiA8dm92YUBmYnNkLnJ1PiB3cm90ZToK
PiD3IEZyaSwgMDMvMTAvMjAwOCDXIDA5OjQ1IC0wNzAwLCBNYWtzaW0gWWV2bWVua2luINDJ28XU
Ogo+Cj4KPiAgPiA+ICA+IHNjbyBzb2NrZXRzIHN1cHBvcnQgd2FzIGFsc28gYWRkZWQsIGhvd2V2
ZXIgMSkgc2NvIHNvY2tldHMgaG9vayBpcwo+ICA+ID4gID4gKm5vdCogY29ubmVjdGVkIGJ5IGRl
ZmF1bHQgYW5kIDIpIHRoZXJlIGFyZSBzb21lIGtub3duIHByb2JsZW1zIHdpdGgKPiAgPiA+ICA+
IHRoZSBjb2RlLiBtb3JlIHNwZWNpZmljYWxseSBwcm9ibGVtcyBhcmUgcmVsYXRlZCB0byAiYnJv
a2VuIiBibHVldG9vdGgKPiAgPiA+ICA+IGRldmljZXMgYW5kIHRoZSB3YXkgdGhleSByZXBvcnQg
c2NvIGJ1ZmZlciBzaXplL3BhY2tldCBjb3VudC4gaSBoYXBwZW4KPiAgPiA+ICA+IHRvIGhhdmUg
ZmV3IG9mIHRob3NlIGRldmljZXMuIHdlIG5lZWQgdG8gaGF2ZSBhIHdheSB0byBoYW5kbGUgdGhv
c2UKPiAgPiA+ICA+IGtpbmQgb2YgZGV2aWNlcyBuaWNlbHkuCj4gID4gPgo+ICA+ID4gSSBoYXZl
IFBsYXRyb25pY3MgUDU5MCBoZWFkc2V0IHdpdGggYWR2YW5jZWQgYXVkaW8gYW5kIE5va2lhIGhl
YWRzZXQuIEkKPiAgPiA+ICBtYXkgdG8gY2hlY2sgdGhlbSBhZ2FpbnN0IG91ciBibHVldG9vdGgg
c3RhY2suCj4KPgo+IEkgYml0IHN0cmFuZ2UgdGhhdCBJIGNhbiBpbnF1aXJ5IGFuZCBsMnBpbmcg
ZGV2aWNlLCBidXQgY2FuJ3QgbGlzdAo+ICBzZXJ2aWNlczoKPgo+ICAjIGwycGluZyAtYSBwNTkw
Cj4gIDAgYnl0ZXMgZnJvbSBwNTkwIHNlcV9ubz0wIHRpbWU9MTc5NC4zNDggbXMgcmVzdWx0PTB4
Ngo+ICAwIGJ5dGVzIGZyb20gcDU5MCBzZXFfbm89MSB0aW1lPTIwMjMuNDAxIG1zIHJlc3VsdD0w
eDYKPiAgMCBieXRlcyBmcm9tIHA1OTAgc2VxX25vPTIgdGltZT0xNzYxLjQ3NSBtcyByZXN1bHQ9
MHg2Cj4gIF5DCj4gICMgbDJjb250cm9sIC1hIHA1OTAgUmVhZF9DaGFubmVsX0xpc3QKPiAgbDJj
b250cm9sOiBDb3VsZCBub3QgYmluZCBzb2NrZXQsIGJkYWRkcj0wMDoxOTo3ZjoxYjpkZTo3Nzog
TmV0d29yayBpcwo+ICBkb3duCgpwbGVhc2UgcmVhZCBtYW4gcGFnZSBmb3IgbDJjb250cm9sKDgp
IHV0aWxpdHkuIG1vcmUgc3BlY2lmaWNhbGx5LAoKIgogICAgVGhlIGwyY29udHJvbCB1dGlsaXR5
IGNvbm5lY3RzIHRvIHRoZSAqbG9jYWwqIGRldmljZSB3aXRoIHRoZSBzcGVjaWZpZWQKICAgICBC
RF9BRERSIGFuZCBhdHRlbXB0cyB0byBzZW5kIHRoZSBzcGVjaWZpZWQgY29tbWFuZC4KIgoKbDJj
b250cm9sKDgpIHdpbGwgZHVtcCBpbmZvcm1hdGlvbiBhYm91dCBvcGVuIGNoYW5uZWxzIGFzIHNl
ZW4gYnkKKmxvY2FsKiBkZXZpY2UuIE5PVCByZW1vdGUuIHRoZXJlZm9yIGlzIGRvZXMgbm90IG1h
a2UgbXVjaCBzZW5zZSB0bwpwdXQgKnJlbW90ZSogYmRfYWRkciBhcyBwYXJhbWV0ZXIuIGl0IHdp
bGwgbmV2ZXIgd29yay4KCj4gIFNob3VsZCBJIGRvICJwYWlyaW5nIiBzb21laG93ID8KCmdlbmVy
YWxseSBzcGVha2luZywgeWVzLiB1c3VhbGx5IHBhaXJpbmcgaGFwcGVucyB3aGVuIGhvc3QgKGku
ZS4gcGMpCmlzIHRyeWluZyB0byBjb25uZWN0IHRvIHRoZSBoZWFkc2V0J3MgcmZjb21tIGNoYW5u
ZWwuIGluIG1vc3QgY2FzZXMsCnRoZSBoZWFkc2V0IHdpbGwgcmVxdWVzdCBhdXRoZW50aWNhdGlv
bi4gaG93ZXZlciwgaWYgaXQgZG9lcyBub3QsIHVzZQpoY2NvbnRyb2woOCkgd3JpdGVfYXV0aGVu
dGljYXRpb25fZW5hYmxlIGNvbW1hbmQgb24gaG9zdCdzIGRldmljZSB0bwpmb3JjZSBhdXRoZW50
aWNhdGlvbiAoaS5lLiBwYXJpbmcpCgo+ICA+IG9rLmJlIHdhcm5lZCwgeW91IHdpbGwgbmVlZCB0
byB3cml0ZSBzb21lIGNvZGUgZm9yIHRoYXQuIGl0cwo+ICA+IHJlbGF0aXZlbHkgc2ltcGxlLiBi
YXNpY2FsbHkgb3BlbiBhbiByZmNvbW0gc29ja2V0IGFuZCB0aGVuIG9wZW4gYSBzY28KPiAgPiBz
b2NrZXQuIGkgY2FuIHByb3ZpZGUgZXhhbXBsZXMgaWYgeW91IHdhbnQgbWUgdG8uCj4KPiBQbGVh
c2UsIHNlbmQgbWUgYW4gZXhhbXBsZSBpZiB5b3UgaGF2ZS4KCmF0dGFjaGVkCgp0aGFua3MsCm1h
eAo=
------=_Part_35222_13101688.1223395994077
Content-Type: application/octet-stream; name=scotest.c
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fm0q6rq1
Content-Disposition: attachment; filename=scotest.c

I2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8c3lzL2JpdHN0cmluZy5oPgojaW5jbHVk
ZSA8c3lzL2VuZGlhbi5oPgojaW5jbHVkZSA8c3lzL3NvY2tldC5oPgojaW5jbHVkZSA8c3lzL3Vu
Lmg+CiNpbmNsdWRlIDxlcnIuaD4KI2luY2x1ZGUgPGZjbnRsLmg+CiNpbmNsdWRlIDxuZXRkYi5o
PgojaW5jbHVkZSA8bmV0Z3JhcGgvYmx1ZXRvb3RoL2luY2x1ZGUvbmdfaGNpLmg+CiNpbmNsdWRl
IDxuZXRncmFwaC9ibHVldG9vdGgvaW5jbHVkZS9uZ19sMmNhcC5oPgojaW5jbHVkZSA8bmV0Z3Jh
cGgvYmx1ZXRvb3RoL2luY2x1ZGUvbmdfYnRzb2NrZXQuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNp
bmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8dW5pc3RkLmg+
CiNpbmNsdWRlIDxibHVldG9vdGguaD4KCnN0YXRpYyBjaGFyIGNvbnN0ICogY29uc3QJYXRjbWRb
XSA9CnsKCSJBVCtWR1M9MTVcblxyIiwKCSIrVkdTPTE1XG5cciIsCgkiQVQrVkdNPTE1XG5cciIs
CgkiK1ZHTT0xNVxuXHIiLAoJIlxuXHJSSU5HXG5cciIsCn07CgppbnQKbWFpbihpbnQgYXJnYywg
Y2hhciAqKmFyZ3YpCnsKCWludAkJCW4sIGNoYW5uZWwsIGZkLCBzMHJmY29tbSwgczBzY287Cglz
dHJ1Y3Qgc29ja2FkZHJfcmZjb21tCXJmY2FkZHI7CglzdHJ1Y3Qgc29ja2FkZHJfc2NvCXNjb2Fk
ZHI7CgliZGFkZHJfdAkJYWRkcjsKCWZkX3NldAkJCWZkczsKCXN0cnVjdCB0aW1ldmFsCQl0bTsK
CWNoYXIJCQlidWZbMTAyNF07CgoJY2hhbm5lbCA9IDE7CgltZW1jcHkoJmFkZHIsIE5HX0hDSV9C
REFERFJfQU5ZLCBzaXplb2YoYWRkcikpOwoKCXdoaWxlICgobiA9IGdldG9wdChhcmdjLCBhcmd2
LCAiYTpjOiIpKSAhPSAtMSkgewoJCXN3aXRjaCAobikgewoJCWNhc2UgJ2EnOgoJCQlpZiAoIWJ0
X2F0b24ob3B0YXJnLCAmYWRkcikpIHsKCQkJCXN0cnVjdCBob3N0ZW50CSpoZSA9IGJ0X2dldGhv
c3RieW5hbWUob3B0YXJnKTsKCQkJCWlmIChoZSA9PSBOVUxMKQoJCQkJCWVycngoMSwgImJ0X2dl
dGhvc3RieW5hbWUoJXMpIiwgb3B0YXJnKTsKCgkJCQltZW1jcHkoJmFkZHIsIGhlLT5oX2FkZHIs
IHNpemVvZihhZGRyKSk7CgkJCX0KCQkJYnJlYWs7CgoJCWNhc2UgJ2MnOgoJCQljaGFubmVsID0g
YXRvaShvcHRhcmcpOwoJCQlpZiAoY2hhbm5lbCA8PSAwIHx8IGNoYW5uZWwgPiAzMSkKCQkJCWVy
cngoMSwgImludmFsaWQgY2hhbm5lbCAlcyIsIG9wdGFyZyk7CgkJCWJyZWFrOwoKCQlkZWZhdWx0
OgoJCQllcnJ4KDEsICJpbnZhbGlkIG9wdGlvbiAlYyIsIG4pOwoJCQkvKiBOT1QgUkVBQ0hFRCAq
LwoJCX0KCX0KCglpZiAobWVtY21wKCZhZGRyLCBOR19IQ0lfQkRBRERSX0FOWSwgc2l6ZW9mKGFk
ZHIpKSA9PSAwKQoJCWVycngoMSwgImludmFsaWQgYmRhZGRyIik7CglpZiAoY2hhbm5lbCA8PSAw
IHx8IGNoYW5uZWwgPiAzMSkKCQllcnJ4KDEsICJpbnZhbGlkIGNoYW5uZWwgJWQiLCBjaGFubmVs
KTsKCglmZCA9IG9wZW4oInZvaWNlIiwgT19XUk9OTFl8T19DUkVBVHxPX1RSVU5DLCAwNjQ0KTsK
CWlmIChmZCA8IDApCgkJZXJyKDEsICJvcGVuKGZkKSIpOwoKCXMwcmZjb21tID0gc29ja2V0KFBG
X0JMVUVUT09USCwgU09DS19TVFJFQU0sIEJMVUVUT09USF9QUk9UT19SRkNPTU0pOwoJaWYgKHMw
cmZjb21tIDwgMCkKCQllcnIoMSwgInNvY2tldChyZmNvbW0pIik7CgoJcmZjYWRkci5yZmNvbW1f
bGVuID0gc2l6ZW9mKHJmY2FkZHIpOwoJcmZjYWRkci5yZmNvbW1fZmFtaWx5ID0gQUZfQkxVRVRP
T1RIOwoJbWVtY3B5KCZyZmNhZGRyLnJmY29tbV9iZGFkZHIsIE5HX0hDSV9CREFERFJfQU5ZLCBz
aXplb2YocmZjYWRkci5yZmNvbW1fYmRhZGRyKSk7CglyZmNhZGRyLnJmY29tbV9jaGFubmVsID0g
MDsKCglpZiAoYmluZChzMHJmY29tbSwgKHN0cnVjdCBzb2NrYWRkciopICZyZmNhZGRyLCBzaXpl
b2YocmZjYWRkcikpIDwgMCkKCQllcnIoMSwgImJpbmQocmZjb21tKSIpOwoKCXJmY2FkZHIucmZj
b21tX2xlbiA9IHNpemVvZihyZmNhZGRyKTsKCXJmY2FkZHIucmZjb21tX2ZhbWlseSA9IEFGX0JM
VUVUT09USDsKCW1lbWNweSgmcmZjYWRkci5yZmNvbW1fYmRhZGRyLCAmYWRkciwgc2l6ZW9mKHJm
Y2FkZHIucmZjb21tX2JkYWRkcikpOwogICAgICAgIHJmY2FkZHIucmZjb21tX2NoYW5uZWwgPSBj
aGFubmVsOwoKCWlmIChjb25uZWN0KHMwcmZjb21tLCAoc3RydWN0IHNvY2thZGRyICopJnJmY2Fk
ZHIsIHNpemVvZihyZmNhZGRyKSkgPCAwKQoJCWVycigxLCAiY29ubmVjdChyZmNvbW0pIik7Cgoj
aWYgMAoJc2xlZXAoNSk7CgoJY2hhbm5lbCA9IDA7CgoJd2hpbGUgKDEpIHsKCQlGRF9aRVJPKCZm
ZHMpOwoJCUZEX1NFVChzMHJmY29tbSwgJmZkcyk7CgkJdG0udHZfc2VjID0gNTsKCQl0bS50dl91
c2VjID0gMDsKCgkJcHJpbnRmKCJzZW5kaW5nOiBbJXNdIiwgYXRjbWRbY2hhbm5lbF0pOwoJCW4g
PSB3cml0ZShzMHJmY29tbSwgYXRjbWRbY2hhbm5lbF0sIHN0cmxlbihhdGNtZFtjaGFubmVsXSkp
OwoJCWlmIChuICE9IHN0cmxlbihhdGNtZFtjaGFubmVsXSkpCgkJCWVycngoMSwgIndyaXRlKHMw
cmZjb21tKSA9ICVkIiwgbik7CgoJCW4gPSBzZWxlY3QoczByZmNvbW0gKyAxLCAmZmRzLCBOVUxM
LCBOVUxMLCAmdG0pOwoJCWlmIChuIDwgMCkKCQkJZXJyKDEsICJzZWxlY3QoKSIpOwoJCWlmIChu
ID09IDApIHsKCQkJcHJpbnRmKCJ0aW1lb3V0XG4iKTsKCQkJaWYgKCsrIGNoYW5uZWwgPj0gc2l6
ZW9mKGF0Y21kKS9zaXplb2YoYXRjbWRbMF0pKQoJCQkJY2hhbm5lbCA9IDA7CgkJCWNvbnRpbnVl
OwoJCX0KCgkJaWYgKEZEX0lTU0VUKHMwcmZjb21tLCAmZmRzKSkgewoJCQluID0gcmVhZChzMHJm
Y29tbSwgYnVmLCBzaXplb2YoYnVmKSk7CgkJCWlmIChuIDwgMCkKCQkJCWVycigxLCAicmVhZChz
MHJmY29tbSkiKTsKCQkJaWYgKG4gPT0gMCkKCQkJCWVycngoMSwgInJlYWQoczByZmNvbW0pLiBl
b2YiKTsKCgkJCXByaW50ZigiZ290OiAlKi4qc1xuIiwgbiwgbiwgYnVmKTsKCgkJCWlmIChzdHJu
Y2FzZWNtcChidWYsICJBVCtDS1BEPTIwMCIsIDExKSA9PSAwKSB7CgkJCQlwcmludGYoInNlbmRp
bmc6IE9LXG4iKTsKCQkJCW4gPSB3cml0ZShzMHJmY29tbSwgIlxyXG5PS1xyXG4iLCA2KTsKCQkJ
CWlmIChuICE9IDYpCgkJCQkJZXJyeCgxLCAid3JpdGUoczByZmNvbW0pID0gJWQiLCBuKTsKCgkJ
CQlicmVhazsKCQkJfQoKCQkJaWYgKCsrIGNoYW5uZWwgPj0gc2l6ZW9mKGF0Y21kKS9zaXplb2Yo
YXRjbWRbMF0pKQoJCQkJY2hhbm5lbCA9IDA7CgkJfQoJfQojZW5kaWYKCiNpZiAxCglzMHNjbyA9
IHNvY2tldChQRl9CTFVFVE9PVEgsIFNPQ0tfU0VRUEFDS0VULCBCTFVFVE9PVEhfUFJPVE9fU0NP
KTsKCWlmIChzMHNjbyA8IDApCgkJZXJyKDEsICJzb2NrZXQoc2NvKSIpOwoKCW4gPSBzaXplb2Yo
c2NvYWRkcik7CglpZiAoZ2V0c29ja25hbWUoczByZmNvbW0sKHN0cnVjdCBzb2NrYWRkciopJnNj
b2FkZHIsJm4pPDApCgkJZXJyKDEsICJnZXRzb2NrbmFtZShyZmNvbW0pIik7CgoJcHJpbnRmKCJz
cmMgYmRhZGRyOiAlc1xuIiwgYnRfbnRvYSgmc2NvYWRkci5zY29fYmRhZGRyLCBOVUxMKSk7CgoJ
aWYgKGJpbmQoczBzY28sIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNjb2FkZHIsIHNpemVvZihzY29h
ZGRyKSkgPCAwKQoJCWVycigxLCAiYmluZChzY28pIik7CgoJbiA9IHNpemVvZihzY29hZGRyKTsK
CWlmIChnZXRwZWVybmFtZShzMHJmY29tbSwoc3RydWN0IHNvY2thZGRyKikmc2NvYWRkciwmbik8
MCkgCgkJZXJyKDEsICJnZXRwZWVybmFtZShyZmNvbW0pIik7CgoJcHJpbnRmKCJkc3QgYmRhZGRy
OiAlc1xuIiwgYnRfbnRvYSgmc2NvYWRkci5zY29fYmRhZGRyLCBOVUxMKSk7CgoJaWYgKGNvbm5l
Y3QoczBzY28sIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNjb2FkZHIsIHNpemVvZihzY29hZGRyKSkg
PCAwKQoJCWVycigxLCAiY29ubmVjdChzY28pIik7CgoJd2hpbGUgKDEpIHsKCQlGRF9aRVJPKCZm
ZHMpOwoJCUZEX1NFVChzMHJmY29tbSwgJmZkcyk7CgkJRkRfU0VUKHMwc2NvLCAmZmRzKTsKCQl0
bS50dl9zZWMgPSA1OwoJCXRtLnR2X3VzZWMgPSAwOwoKCQluID0gKHMwcmZjb21tID4gczBzY28p
PyBzMHJmY29tbSArIDEgOiBzMHNjbyArIDE7CgoJCW4gPSBzZWxlY3QobiwgJmZkcywgTlVMTCwg
TlVMTCwgJnRtKTsKCQlpZiAobiA8IDApCgkJCWVycigxLCAic2VsZWN0KCkiKTsKCQlpZiAobiA9
PSAwKSB7CgkJCXByaW50ZigidGltZW91dFxuIik7ICAgIAoJCQljb250aW51ZTsKCQl9CgoJCWlm
IChGRF9JU1NFVChzMHJmY29tbSwgJmZkcykpIHsKCQkJbiA9IHJlYWQoczByZmNvbW0sIGJ1Ziwg
c2l6ZW9mKGJ1ZikpOwoJCQlpZiAobiA8IDApICAKCQkJCWVycigxLCAicmVhZChzMHJmY29tbSki
KTsKCQkJaWYgKG4gPT0gMCkKCQkJCWVycngoMSwgInJlYWQoczByZmNvbW0pLiBlb2YiKTsKCgkJ
CXByaW50ZigiZ290OiAlKi4qc1xuIiwgbiwgbiwgYnVmKTsKCQl9CgoJCWlmIChGRF9JU1NFVChz
MHNjbywgJmZkcykpIHsKCQkJbiA9IHJlYWQoczBzY28sIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwoJCQlp
ZiAobiA8IDApICAKCQkJCWVycigxLCAicmVhZChzMHNjbykiKTsKCQkJaWYgKG4gPT0gMCkKCQkJ
CWVycngoMSwgInJlYWQoczBzY28pLiBlb2YiKTsKCQoJCQl3cml0ZShmZCwgYnVmLCBuKTsKCQl9
Cgl9CgoJY2xvc2UoczBzY28pOwoJY2xvc2UoczByZmNvbW0pOwojZW5kaWYKCglyZXR1cm4gKDAp
Owp9Cg==
------=_Part_35222_13101688.1223395994077--

From owner-freebsd-bluetooth@FreeBSD.ORG  Wed Oct  8 15:00:39 2008
Return-Path: <owner-freebsd-bluetooth@FreeBSD.ORG>
Delivered-To: freebsd-bluetooth@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8CFC910656A5
	for <freebsd-bluetooth@freebsd.org>;
	Wed,  8 Oct 2008 15:00:39 +0000 (UTC) (envelope-from vova@sw.ru)
Received: from relay.sw.ru (mailhub.sw.ru [195.214.232.25])
	by mx1.freebsd.org (Postfix) with ESMTP id D08278FC16
	for <freebsd-bluetooth@freebsd.org>;
	Wed,  8 Oct 2008 15:00:37 +0000 (UTC) (envelope-from vova@sw.ru)
Received: from vbook.fbsd.ru ([10.30.1.111]) (authenticated bits=0)
	by relay.sw.ru (8.13.4/8.13.4) with ESMTP id m98F0Y9X004620
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Wed, 8 Oct 2008 19:00:35 +0400 (MSD)
Received: from vova by vbook.fbsd.ru with local (Exim 4.69 (FreeBSD))
	(envelope-from <vova@sw.ru>)
	id 1KnaWg-000O86-EO; Wed, 08 Oct 2008 19:00:34 +0400
From: Vladimir Grebenschikov <vova@fbsd.ru>
To: Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
In-Reply-To: <bb4a86c70810070913g177edac5n14aab1b62cc61f86@mail.gmail.com>
References: <3a386af20809261420j535680e8pf44453dbf6f84b20@mail.gmail.com>
	<bb4a86c70809261504v45ffe1a8oaf26670a1032e86c@mail.gmail.com>
	<1223034512.1842.111.camel@localhost>
	<bb4a86c70810030945g3d870a1eqacc85233d9698a66@mail.gmail.com>
	<1223106788.4832.25.camel@localhost>
	<bb4a86c70810070913g177edac5n14aab1b62cc61f86@mail.gmail.com>
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Organization: SWsoft
Date: Wed, 08 Oct 2008 19:00:34 +0400
Message-Id: <1223478034.1864.65.camel@localhost>
Mime-Version: 1.0
X-Mailer: Evolution 2.22.3.1 FreeBSD GNOME Team Port 
Sender: Vladimir Grebenschikov <vova@swsoft.com>
Cc: freebsd-bluetooth@freebsd.org
Subject: Re: Bluetooth audio (once again)
X-BeenThere: freebsd-bluetooth@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: vova@fbsd.ru
List-Id: Using Bluetooth in FreeBSD environments
	<freebsd-bluetooth.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth>, 
	<mailto:freebsd-bluetooth-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-bluetooth>
List-Post: <mailto:freebsd-bluetooth@freebsd.org>
List-Help: <mailto:freebsd-bluetooth-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth>, 
	<mailto:freebsd-bluetooth-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Oct 2008 15:00:39 -0000

On Tue, 2008-10-07 at 09:13 -0700, Maksim Yevmenkin wrote:


> >  > ok.be warned, you will need to write some code for that. its
> >  > relatively simple. basically open an rfcomm socket and then open a sco
> >  > socket. i can provide examples if you want me to.
> >
> > Please, send me an example if you have.
> 
> attached

Thank you, I've played a bit with it.

So far I was able to establish connection to channel 1 or 2 of my
headset (Headset and advanced audio).

Both connections (rfcomm and sco) are opened, headset sends zeros
through sco connection and does some AT-chat on rfcomm.

Looks like I need to implement chat to make headset to work.

Then I dig a bit into bluez sources, and found two things - first, looks
like we will need to use/re-implement big part of bluez/audio
sub-directory  to get full-functional audio to work under freebsd.

Second, I've found that bluez uses almost same structures and calls to
interact with kernel.

Probably it worth to try port bluez (or part of bluez related to sound)
to freebsd instead of re-writing whole beast ? What do you think ?

PS.
I spend only about half an our to make whole bluez to compile under
freebsd (except network bridging and alsa). but not even tried to start
it, though.

> thanks,
> max

-- 
Vladimir B. Grebenschikov
vova@fbsd.ru

From owner-freebsd-bluetooth@FreeBSD.ORG  Wed Oct  8 16:25:31 2008
Return-Path: <owner-freebsd-bluetooth@FreeBSD.ORG>
Delivered-To: freebsd-bluetooth@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 43B1B1065686
	for <freebsd-bluetooth@freebsd.org>;
	Wed,  8 Oct 2008 16:25:31 +0000 (UTC)
	(envelope-from maksim.yevmenkin@gmail.com)
Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.187])
	by mx1.freebsd.org (Postfix) with ESMTP id B14D58FC18
	for <freebsd-bluetooth@freebsd.org>;
	Wed,  8 Oct 2008 16:25:30 +0000 (UTC)
	(envelope-from maksim.yevmenkin@gmail.com)
Received: by nf-out-0910.google.com with SMTP id h3so250724nfh.33
	for <freebsd-bluetooth@freebsd.org>;
	Wed, 08 Oct 2008 09:25:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:received:received:message-id:date:from:to
	:subject:cc:in-reply-to:mime-version:content-type
	:content-transfer-encoding:content-disposition:references;
	bh=FqDgQW5rXoyOm5wzrNpyLJ6vXgnfd8Yr6gYb0ZxXrIA=;
	b=fiOy3ASakVAzQytclDOn0JoGd7Kz2GySGJI/shmOfzcgj2Fv455W1ztCmhrAxKBbCC
	pC67h5QxkXxpvDDGYieVhr1V7jLZ7VRmeagyJM1+zCs1J0+/2QobannyxPGjB9icHlf1
	dNIZfEZmtSxGZabjoWZtAxipwask9UfzNvDE0=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=message-id:date:from:to:subject:cc:in-reply-to:mime-version
	:content-type:content-transfer-encoding:content-disposition
	:references;
	b=wRve5vTj2g0ByxfjfGKEALQZmI0GysPSFuLTjCnA6ZTwYyxJyJOt2szoV/J86og6x8
	Q5Rw4eEEZBAwuRsN1UZOerwxvudfBBvsnA8hRyWTyiBqMlft8DfS8oRfNfkB7Pv1LFO7
	2mvjrDh6GfEBbrW3tJyKAy+ADCK7cq4T4ipGo=
Received: by 10.86.82.6 with SMTP id f6mr3688404fgb.78.1223483124181;
	Wed, 08 Oct 2008 09:25:24 -0700 (PDT)
Received: by 10.86.28.20 with HTTP; Wed, 8 Oct 2008 09:25:24 -0700 (PDT)
Message-ID: <bb4a86c70810080925r7281f18eycc190fa03b8f8d18@mail.gmail.com>
Date: Wed, 8 Oct 2008 09:25:24 -0700
From: "Maksim Yevmenkin" <maksim.yevmenkin@gmail.com>
To: vova@fbsd.ru
In-Reply-To: <1223478034.1864.65.camel@localhost>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
References: <3a386af20809261420j535680e8pf44453dbf6f84b20@mail.gmail.com>
	<bb4a86c70809261504v45ffe1a8oaf26670a1032e86c@mail.gmail.com>
	<1223034512.1842.111.camel@localhost>
	<bb4a86c70810030945g3d870a1eqacc85233d9698a66@mail.gmail.com>
	<1223106788.4832.25.camel@localhost>
	<bb4a86c70810070913g177edac5n14aab1b62cc61f86@mail.gmail.com>
	<1223478034.1864.65.camel@localhost>
Cc: freebsd-bluetooth@freebsd.org
Subject: Re: Bluetooth audio (once again)
X-BeenThere: freebsd-bluetooth@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Using Bluetooth in FreeBSD environments
	<freebsd-bluetooth.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth>, 
	<mailto:freebsd-bluetooth-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-bluetooth>
List-Post: <mailto:freebsd-bluetooth@freebsd.org>
List-Help: <mailto:freebsd-bluetooth-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth>, 
	<mailto:freebsd-bluetooth-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Oct 2008 16:25:31 -0000

On 10/8/08, Vladimir Grebenschikov <vova@fbsd.ru> wrote:
> On Tue, 2008-10-07 at 09:13 -0700, Maksim Yevmenkin wrote:
>
>
>  > >  > ok.be warned, you will need to write some code for that. its
>  > >  > relatively simple. basically open an rfcomm socket and then open a sco
>  > >  > socket. i can provide examples if you want me to.
>  > >
>  > > Please, send me an example if you have.
>  >
>  > attached
>
>
> Thank you, I've played a bit with it.
>
>  So far I was able to establish connection to channel 1 or 2 of my
>  headset (Headset and advanced audio).
>
>  Both connections (rfcomm and sco) are opened, headset sends zeros
>  through sco connection and does some AT-chat on rfcomm.

that sounds about right :) and that is where i left it off for now due
to lack of time :(

>  Looks like I need to implement chat to make headset to work.

do not really need to. once sco connection is open, audio should be
flowing in both directions. you could try to talk to the headset after
opening sco connection and dump all the sco data into the file. the
data are basically raw samples in 8khz a/u-law encoding 8bit or linear
encoding 16bit (depends on voice settings). you should be able to play
those back using sox from ports or something like this. i can dig up
my notes and find the recipe if you want me to.

rfcomm channel is strictly for control. for example, you can make
headset ring by sending "RING" command to it. also headset will send
at+ckpd=200 every time button is pressed. there also might be a at+vgm
or at+vgs commands to report/set microphone/speaker gain, etc.

i suggest reading "headset profile" specification document. if you can
not find one on the net, let me know.

>  Then I dig a bit into bluez sources, and found two things - first, looks
>  like we will need to use/re-implement big part of bluez/audio
>  sub-directory  to get full-functional audio to work under freebsd.

whoa! hold on just a second :) lets not jump the gun here. first lets
fix existing code. need to make sure that sco works reliably at least
up to the socket layer. the first goal would be to, say, have a tool
that can receive/send audio from/to headset. say have a mp3 sent to
headset over sco (re-encoding can be done by outside tool like sox)

>  Second, I've found that bluez uses almost same structures and calls to
>  interact with kernel.

yes, its all very similar. it was intended this way :)

>  Probably it worth to try port bluez (or part of bluez related to sound)
>  to freebsd instead of re-writing whole beast ? What do you think ?

two things

1) like i said we need to fix existing code first, so lets focus on
low hanging fruit here

2) license issues. bluez is gnu, which could be a problem. we could
take a look at what netbsd does.

>  I spend only about half an our to make whole bluez to compile under
>  freebsd (except network bridging and alsa). but not even tried to start
>  it, though.

ok. thanks for your work!

thanks,
max

From owner-freebsd-bluetooth@FreeBSD.ORG  Wed Oct  8 17:46:37 2008
Return-Path: <owner-freebsd-bluetooth@FreeBSD.ORG>
Delivered-To: freebsd-bluetooth@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 18F801065686
	for <freebsd-bluetooth@freebsd.org>;
	Wed,  8 Oct 2008 17:46:37 +0000 (UTC)
	(envelope-from florenzi@gmail.com)
Received: from yx-out-2324.google.com (yx-out-2324.google.com [74.125.44.29])
	by mx1.freebsd.org (Postfix) with ESMTP id C28668FC16
	for <freebsd-bluetooth@freebsd.org>;
	Wed,  8 Oct 2008 17:46:36 +0000 (UTC)
	(envelope-from florenzi@gmail.com)
Received: by yx-out-2324.google.com with SMTP id 8so701577yxb.13
	for <freebsd-bluetooth@freebsd.org>;
	Wed, 08 Oct 2008 10:46:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:received:received:message-id:date:from:to
	:subject:in-reply-to:mime-version:content-type
	:content-transfer-encoding:content-disposition:references;
	bh=WohPn9V6qlirGcW5aQI3xnSzm6BLRaieCSlN9JmTxO8=;
	b=WeXNfm+R/FxAnaALCxuy53ZKs//pk717vkufa1XDoMlt1B20bTamF2NL+cUGMNzujZ
	az5kQpvSySxFBQ6jSbg9KLTB2B47oKE1YKNATVyUBubzS9MGqNhp7xTNS3HSo+q8kPX3
	xSBa+YEujFuYGW49gWH6lrwlqA6z7PbZvkyhQ=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=message-id:date:from:to:subject:in-reply-to:mime-version
	:content-type:content-transfer-encoding:content-disposition
	:references;
	b=MyMlvDPlvpFMeOFpUWoWZk22ihKYTBP0hX92meDk5E+80ozkj4JNCtJ5TRTVGSE6ML
	TsioXDYzgjvLh6AFc/pa6S1Ort41cfqDtR1e7oYdk8ODxZE9Nus5kTf3VN2FLbLI9OIw
	lomrhp93R/c/teCCyMnASLJN4wnDzBuSje4Tc=
Received: by 10.143.8.10 with SMTP id l10mr3727006wfi.340.1223487995470;
	Wed, 08 Oct 2008 10:46:35 -0700 (PDT)
Received: by 10.142.173.19 with HTTP; Wed, 8 Oct 2008 10:46:35 -0700 (PDT)
Message-ID: <3a386af20810081046h167f1547n18ed07dba439c751@mail.gmail.com>
Date: Wed, 8 Oct 2008 19:46:35 +0200
From: "Federico Lorenzi" <florenzi@gmail.com>
To: freebsd-bluetooth@freebsd.org
In-Reply-To: <bb4a86c70810080925r7281f18eycc190fa03b8f8d18@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
References: <3a386af20809261420j535680e8pf44453dbf6f84b20@mail.gmail.com>
	<bb4a86c70809261504v45ffe1a8oaf26670a1032e86c@mail.gmail.com>
	<1223034512.1842.111.camel@localhost>
	<bb4a86c70810030945g3d870a1eqacc85233d9698a66@mail.gmail.com>
	<1223106788.4832.25.camel@localhost>
	<bb4a86c70810070913g177edac5n14aab1b62cc61f86@mail.gmail.com>
	<1223478034.1864.65.camel@localhost>
	<bb4a86c70810080925r7281f18eycc190fa03b8f8d18@mail.gmail.com>
Subject: Re: Bluetooth audio (once again)
X-BeenThere: freebsd-bluetooth@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Using Bluetooth in FreeBSD environments
	<freebsd-bluetooth.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth>, 
	<mailto:freebsd-bluetooth-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-bluetooth>
List-Post: <mailto:freebsd-bluetooth@freebsd.org>
List-Help: <mailto:freebsd-bluetooth-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth>, 
	<mailto:freebsd-bluetooth-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Oct 2008 17:46:37 -0000

It's nice to see some traffic on this list again! Thanks for the
replies, everyone. I'm specifically looking at getting A2DP working.
As soon as my computer is finished making world for my EEE, I'm going
to give using rfcomm / SCO sockets in Python a shot. From what I have
read, it should work just fine.

On Wed, Oct 8, 2008 at 6:25 PM, Maksim Yevmenkin
<maksim.yevmenkin@gmail.com> wrote:
> 2) license issues. bluez is gnu, which could be a problem.

Unfortunately so. I can't really seem to find another implementation
of the SBC codec (maybe a wishlist item for FFMpeg?), which is
mandatory for A2DP. Some headsets support MP3 and others, but I'm not
sure how prevalent this is.

Cheers,
Federico

From owner-freebsd-bluetooth@FreeBSD.ORG  Wed Oct  8 18:03:00 2008
Return-Path: <owner-freebsd-bluetooth@FreeBSD.ORG>
Delivered-To: freebsd-bluetooth@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C9D431065687
	for <freebsd-bluetooth@freebsd.org>;
	Wed,  8 Oct 2008 18:03:00 +0000 (UTC)
	(envelope-from plunky@rya-online.net)
Received: from smtp02.one2one.net (smtp02.one2one.net [149.254.192.174])
	by mx1.freebsd.org (Postfix) with ESMTP id 3B2698FC12
	for <freebsd-bluetooth@freebsd.org>;
	Wed,  8 Oct 2008 18:03:00 +0000 (UTC)
	(envelope-from plunky@rya-online.net)
Received: from [127.0.0.1] (helo=localhost)
	by localhost.localdomain with esmtp (Exim 4.50)
	id 1KncjB-00077h-D0; Wed, 08 Oct 2008 18:21:37 +0100
Received: from localhost.t-mobile.co.uk ([127.0.0.1])
	by localhost (smtpbeckt01 [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id 27118-07; Wed, 8 Oct 2008 18:21:36 +0100 (BST)
Received: from [10.35.80.7] (helo=rya-online.net)
	by localhost.localdomain with smtp (Exim 4.50)
	id 1Kncj0-000778-Hc; Wed, 08 Oct 2008 18:21:36 +0100
Received: (nullmailer pid 963 invoked by uid 1000);
	Wed, 08 Oct 2008 17:20:29 -0000
Date: Wed, 8 Oct 2008 18:20:29 +0100 (BST)
To: Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
In-Reply-To: <bb4a86c70810080925r7281f18eycc190fa03b8f8d18@mail.gmail.com>
References: <3a386af20809261420j535680e8pf44453dbf6f84b20@mail.gmail.com>
	<bb4a86c70809261504v45ffe1a8oaf26670a1032e86c@mail.gmail.com>
	<1223034512.1842.111.camel@localhost>
	<bb4a86c70810030945g3d870a1eqacc85233d9698a66@mail.gmail.com>
	<1223106788.4832.25.camel@localhost>
	<bb4a86c70810070913g177edac5n14aab1b62cc61f86@mail.gmail.com>
	<1223478034.1864.65.camel@localhost>
	<bb4a86c70810080925r7281f18eycc190fa03b8f8d18@mail.gmail.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="0-1020978797-1223486429=:807"
Message-Id: <1223486429.658424.1015.nullmailer@galant.ukfsn.org>
From: Iain Hibbert <plunky@rya-online.net>
X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at example.com
X-SA-Exim-Connect-IP: 127.0.0.1
X-SA-Exim-Mail-From: plunky@rya-online.net
X-SA-Exim-Scanned: No (on localhost.localdomain);
	SAEximRunCond expanded to false
Cc: vova@fbsd.ru, freebsd-bluetooth@freebsd.org
Subject: Re: Bluetooth audio (once again)
X-BeenThere: freebsd-bluetooth@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Using Bluetooth in FreeBSD environments
	<freebsd-bluetooth.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth>, 
	<mailto:freebsd-bluetooth-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-bluetooth>
List-Post: <mailto:freebsd-bluetooth@freebsd.org>
List-Help: <mailto:freebsd-bluetooth-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth>, 
	<mailto:freebsd-bluetooth-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Oct 2008 18:03:00 -0000

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--0-1020978797-1223486429=:807
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Wed, 8 Oct 2008, Maksim Yevmenkin wrote:

> 2) license issues. bluez is gnu, which could be a problem. we could
> take a look at what netbsd does.

Well NetBSD has no A2DP support as yet

There is bthset(1) which is a small utility to talk to the command
part of a Headset profile, but the audio part is handled inside the kernel
by a btsco(4) audio device driver (so in effect, you can just use
/dev/audio1 to play audio). However, I don't think that is very easy to
port to FreeBSD because our audio(9) API is different. (Also bthset uses
libevent :)

Something that may be of more immediate use is a port of the hstest
program from BlueZ that I made when I was writing the SCO support for
NetBSD. It is attached for what its worth (GPL warning) and it should be
able to copy audio data in and out.

Another thing that might be of interest is the proof of concept bthfp
program I wrote to talk to a Handsfree profile (source at
http://homepages.rya-online.net/plunky/bthfp-0.1.tar.gz) which alas also
uses libevent though I wrote a version that used select and the NetBSD
audio device directly (attached) but that doesn't always work properly
because our audio device framework won't properly handle errors from the
devices (eg disconnects)

So in summary, what NetBSD has is probably not of great use but may be
of some interest :)

iain
--0-1020978797-1223486429=:807
Content-Type: APPLICATION/octet-stream; name=hstest.tar.gz
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.NEB.4.64.0810081820290.807@localhost.>
Content-Description: port of BlueZ hstest utility to NetBSD
Content-Disposition: attachment; filename=hstest.tar.gz

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
tdzHPwBQAAA=

--0-1020978797-1223486429=:807
Content-Type: APPLICATION/octet-stream; name=bthfp_dev.tar.gz
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.NEB.4.64.0810081820291.807@localhost.>
Content-Description: HFP program using select
Content-Disposition: attachment; filename=bthfp_dev.tar.gz

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
bTmhHS1OzCYL0Pr2Yu45H5MzyvlrHbEJ3JzhFyMUh6AR29wTOUc8pBraGCE5
GMIggPbjzfm/WONge+zCgOHdvcCxWeAHyunofMtrLvHMMgTv1pzxSw/KzauL
flsfgSf4DvggfoHn2B+0KwkwUgkqeQadHoX8uocf6T47pVikciKxPyctmEPX
XHTZseQgU+T4EKJhAHMiyAd/q4/u18gAPac3B6OunhDBOXQPGQKgiBBRVEyK
KPxiYooH/LNsL7rICYNyNZVMEVEUWpTvg0mCGXlG5yndeRyIqzFxOmWcHaxB
Dg/WEcaYJh7tfsR7Rfbqf6XrXiJ+lQjd+rBiDeU9IaZdJoT5i0ISC0KA4gbC
bB9XbxGhL/wuwEcnTG++anZ6XEFmK+b0JdbCoM8pQ5cEKXQRBCDBv7mWV673
/bOTLv+Hnvz+j+k3aOMz+z92d+o76f//5wE//7cP3zb5v2//bPJ/m/zfJv+3
yf9t8n//ifk/iDqUAzDOR5i1Pis8B1NQphyHKSgVp2JESfFpmExhcnKGskAs
nwU65p/z/2dWxxtnbPNsns2zeTbP5tk8m2fzbJ7Ns3k2z+bZPJtn82yezbN5
Ns/m2TybZ/Nsns2zeTbP5tk8m+d3Pf8LdwzTDQCgAAA=

--0-1020978797-1223486429=:807--