Date: Wed, 8 Oct 2008 09:25:24 -0700 From: "Maksim Yevmenkin" <maksim.yevmenkin@gmail.com> To: vova@fbsd.ru Cc: freebsd-bluetooth@freebsd.org Subject: Re: Bluetooth audio (once again) Message-ID: <bb4a86c70810080925r7281f18eycc190fa03b8f8d18@mail.gmail.com> In-Reply-To: <1223478034.1864.65.camel@localhost> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bb4a86c70810080925r7281f18eycc190fa03b8f8d18>