public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: Johan Hedberg <johan.hedberg@gmail.com>
To: lan zhu <zhu.lan.cn@gmail.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: question on A2DP sink suspend/resume
Date: Thu, 25 Jun 2009 11:29:13 +0300	[thread overview]
Message-ID: <20090625082913.GA25902@jh-x301> (raw)
In-Reply-To: <113d36d80906242326g3f2ce8e3h6c779aa01d776b04@mail.gmail.com>

Hi,

On Thu, Jun 25, 2009, lan zhu wrote:
> My question is,  I found there is no such sink_suspend or sink_resume
> method in D-BUS API while these functions are all implemented in Bluez
> audio module. I would like to know why don't put them to D-BUS API?
> If we need to call these functions we have to expand the D-BUS API.

You're forgetting the other control point to audio which is the UNIX
socket that alsa, gstreamer, pulseaudio, etc connect to to request audio
streams. The main purpose of the audio related D-Bus interfaces is to
control and monitor the profile-level connections but not the stream
states.

If you have an active audio stream (either SCO connection or A2DP stream
in streaming state) you also need some application providing data to the
stream (and consuming data from the stream in the SCO case). This is why
there's no control for it in the D-Bus interface. E.g. pulseaudio is able
to handle the switch from HFP/HSP to A2DP and back quite smoothly using
just the UNIX socket IPC messages. If you want to investigate how the
logic in the code goes with respect to this you can start by looking at
audio/unix.c.

If you have a good use case for not using the UNIX socket for controlling
the stream states we can naturally consider adding that to the D-Bus
interface, but right now I get the impression that you might simply not
have been aware that the principal control point for active audio streams
is the UNIX socket that audio clients can connect to.

> One more question is, is there a formal way to test SCO/A2DP
> simultaneous case? we can't find a proper headset to test it because
> those headsets are all well implemented with the simultaneous logic,
> so there is no way to enter ourselves' code that handle this logic.
> Can we test it by configurating some test tool such as PTS?

I'm not aware of any formal way and the PTS (afaik) doesn't have any
support for multi-profile testing.

Johan

  reply	other threads:[~2009-06-25  8:29 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <113d36d80906242033p134edf27t12bda1d0359c4134@mail.gmail.com>
2009-06-25  6:26 ` question on A2DP sink suspend/resume lan zhu
2009-06-25  8:29   ` Johan Hedberg [this message]
2009-07-06 11:11     ` Lan Zhu

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=20090625082913.GA25902@jh-x301 \
    --to=johan.hedberg@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=zhu.lan.cn@gmail.com \
    /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