• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Temporarily Stopping IOAudioEngine From Inside
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Temporarily Stopping IOAudioEngine From Inside


  • Subject: Re: Temporarily Stopping IOAudioEngine From Inside
  • From: Dirk Musfeldt <email@hidden>
  • Date: Tue, 30 Mar 2004 10:02:28 +0200

> on 3/20/04 8:31 PM, Kurt Bigler at email@hidden wrote:
>
>> on 3/17/04 9:37 AM, Dirk Musfeldt <email@hidden> wrote:
>>
>>> Hi all,
>>>
>>> I want to temporarily stop my IOAudioEngine from inside when I know that
>>> there's some setup going on and the hardware is unable to deliver any
>>> samples. The setup is due to external reasons, so the IOAudioEngine is not
>>> stopped from CoreAudio.
>>>
>>> How is that possible?
>>
>> I think you're saying you want to stop audio on the driver side, because I
>> don't know what you might otherwise mean by "from inside". If so, how would
>> host applications ever deal with this? It seems to me you are talking about
>> a hardware situation that the host app would not normally expect to see
>> after they started audio transport, which means that as far as the app is
>> concerned, this is a failure condition.
>>
>> So, if I am understanding you correctly, you might as well deliver zeroed
>> buffers (for input) and simply ignore output, because compared to stoping
>> audio engines behind the back of applications, that would be the lesser
>> evil.
>>
>> Not an expert in this, but replying anyway since you've gotten no other
>> response so far.
>>
>
> Kurt - Actually, this can happen even if the driver does not explicitly try
> to stop the engine. For example if another app (or the user) changes the
> sample rate of the device while it is running, the engine will be stopped
> and automatically restarted. This is the mechanism by which the MIO driver
> reports sample rate changes, for example. So, in the CA environment, Apps
> really do need to be able to deal with this condition. I think that except
> for the fact that your synchronization code needs to be aware that this can
> happen, it is pretty invisible to your app. I think that there is a
> notification that you will get if you are registered for the right
> notifications, and you can use that to note that you need to resync the next
> time your IOProc gets called.
>
> Dirk - there are pause and resume member functions in the AudioEngine class
> that can be used to stop and restart the engine while external configuration
> changes are taking place. Check out the implementation of
> IOAudioEngine::hardwareSampleRateChanged in the IOAudioFamily subproject of
> Darwin. This shows how the family deals with stopping and restarting the
> engine in the case of an external sample rate change. The basic idea can be
> propagated to dealing with your situation.

B.J.

thank you for your suggestion.

Actually I did try pauseAudioEngine() and resumeAudioEngine() before but it
didn't work for me. But now I added beginConfigurationChange() and
completeConfigurationChange() and it works now.

Unfortunately these calls are a not well documented.


>
> Best regards,
>
>
> B.J. Buchalter
>
> Metric Halo
> 5 Donovan Drive
> Hopewell Junction, NY 12533 USA
> tel +1 845 223-6112
> fax +1 603 250-2451
>
>
>

Regards

Dirk
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.


References: 
 >Re: Temporarily Stopping IOAudioEngine From Inside (From: "B.J. Buchalter" <email@hidden>)

  • Prev by Date: how to avoid skips?
  • Next by Date: new SDK problems
  • Previous by thread: Re: Temporarily Stopping IOAudioEngine From Inside
  • Next by thread: factory presets - dp 4.1
  • Index(es):
    • Date
    • Thread