>>The requirement that internal pause an application is a natural to audio manager of embedded system. That would be what you'd think but you would be surprised what a hack some of these things are. It's what I do for a living. Certainly in the products I work on, that kind of logic is left to the application layer to work out. The audio manager is surprisingly dumb. I'm not saying that's how Apple do it, but I wouldn't be surprised. Mark On Wed, 2009-01-21 at 15:55 -0600, pl bossart wrote: > I don't disagree with technical findings. Still, it would be sad if we > have no means to do what the iPhone does today. Cheers. Pierre > > From the iPhone 'missing manual' book: > If a phone call comes in, the music fades, and you hear your chosen > ringtone? > through your earbuds, if you're wearing them. Squeeze the clicker on > the earbud cord, or tap the Sleep/Wake switch, to answer the call. > When the > call ends, the music fades back in, right where it had stopped. > > > On Tue, Jan 20, 2009 at 8:51 PM, Zhang, Xing Z > <xing.z.zhang at intel.com> wrote: > > Yes, I also agree with Lennart's point. > > >>I agree with you that pausing may create timing havoc on the > client; but we are missing a generic protocol to notify the > clients and implement this legitimate use case. > > > I am afraid there is no way to notify applications using ALSA > due to the PA client is libasound_module_pcm_pulse.so at this > time. > > IMO, PA is for general OS but not for embedded system now. The > requirement that internal pause an application is a natural to > audio manager of embedded system. I guess we can only cover > applications who will response the message "you should do > pause now" from audio manager. > ________________________________________ > From: pulseaudio-discuss-bounces at mail.0pointer.de > [mailto:pulseaudio-discuss-bounces at mail.0pointer.de] On Behalf > Of pl bossart > Sent: 2009?1?21? 0:13 > To: General PulseAudio Discussion > > Subject: Re: [pulseaudio-discuss] why > command_cork_playback_stream() will be invoked many times? > > > > Hi Lennart, > Here is the use case Xing is referring to: you are listening > to music, and a VoIP call starts. The user may not want to mix > the music and the speech call. > > So the idea is to pause the music while the call takes place, > and resume the music once the call finishes. PulseAudio > receives both streams, and it would seem natural to configure > said behavior in a PulseAudio module. So we either need the > ability to pause a stream within PulseAudio, or we need a > means to inform the client they need to pause. > > I agree with you that pausing may create timing havoc on the > client; but we are missing a generic protocol to notify the > clients and implement this legitimate use case. > Regards, > Pierre Bossart > On Sun, Jan 18, 2009 at 11:16 AM, Lennart Poettering > <lennart at poettering.net> wrote: > On Fri, 09.01.09 21:10, Zhang, Xing Z (xing.z.zhang at intel.com) > wrote: > > > Hi experts: > > > I worked on an audiomanager project based on PulseAudio. Now > I am > > blocked by a command_cork_playback_stream() issue. In our > design, > > an application may be corked when connects to pulseaudio if > its > > priority is low. I set a hook on PA_CORE_HOOK_SINK_INPUT_PUT > and > > invoke pa_sink_input_cork(..., TRUE). Unfortunately it > doesn't > > work. By GDB, I found application will call > > command_cork_playback_stream() which invokes > pa_sink_input_cork(..., > > FALSE) several times, this make my hook is of no effect. I > don't > > look into PA for ALSA plugin, anyone know why > > command_cork_playback_stream() need be called so frequently > during > > app initialization? > > Hmm, I think you are confusing a few things here. > > command_cork_playback_stream() is the code that dispatches > client > requests for corking/uncorking (when done via the native > protocol). It > is not used when corking something internally as for example > by a hook > function. > > Pausing a stream (i.e. corking) should be something that is > controlled > exclusively by the client. You should not intefere with it > from inside > the server. There is a state machine in the PA client code > that > follows the cork state. If you change the state underneath it > might > become invalid. Also it might confuse client applications due > to > the paused timing. > > Lennart > > -- > Lennart Poettering Red Hat, Inc. > lennart [at] poettering [dot] net ICQ# 11060553 > http://0pointer.net/lennart/ GnuPG 0x1A015CC4 > _______________________________________________ > pulseaudio-discuss mailing list > pulseaudio-discuss at mail.0pointer.de > https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss > > _______________________________________________ > pulseaudio-discuss mailing list > pulseaudio-discuss at mail.0pointer.de > https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss > > > > > _______________________________________________ > pulseaudio-discuss mailing list > pulseaudio-discuss at mail.0pointer.de > https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20090121/f10c8dec/attachment.htm>