• 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
Multiple output bus rendering
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Multiple output bus rendering


  • Subject: Multiple output bus rendering
  • From: Chris Reed <email@hidden>
  • Date: Sat, 14 Jun 2003 01:04:37 -0500

I was just looking over the AUBase code again, and I'm having trouble seeing how AUBase::Render() is supposed to work in the case of multiple output busses (because it doesn't take a bus number argument)...

Here's a quick overview of the method call order:
1. In the implementation of AUBase::DoRender(), the local variable "output" is set to GetOutput(inBusNumber).
2. Then the "output" variable is eventually (after calling the pre-render notify callout) passed to AUBase::DoRenderBus().
3. DoRenderBus() does some buffer preparation on "theOutput", which is "output" passed in (for the given bus number), and then calls RenderBus(). The output element is not passed along.
4. The default implementation of RenderBus() calls NeedsToRender() and then onto Render(), without passing the bus number or output element object.

The comment above AUBase::RenderBus() in AUBase.h says "Override this method if your AU processes multiple output busses completely independently -- you'll want to just call Render without the NeedsToRender check. Otherwise, override Render()." To me, the comment above sounds like it's saying that you should do your processing in Render() _even_if_ you support multiple output busses.

So... if one does his/her processing within Render(), how is one supposed to determine which output element to work with? If you also override RenderBus(), you could store the inBusNumber argument somewhere for use in Render(), but that's just ugly.

Is it simply that that comment above is wrong, and you should just do your processing in RenderBus() if you support more than one output bus? Or am I not seeing something obvious (it's late at night, that's perfectly possible ;-)? Am I making this far more complex than necessary? (again, it's late :-)

thanks
-chris
_______________________________________________
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.

  • Follow-Ups:
    • Re: Multiple output bus rendering
      • From: Philippe Wicker <email@hidden>
  • Prev by Date: Re: AudioUnitHosting and MusicDevices
  • Next by Date: Re: AudioUnitHosting and MusicDevices
  • Previous by thread: Lost MIDI messages on display wakeup?
  • Next by thread: Re: Multiple output bus rendering
  • Index(es):
    • Date
    • Thread