• 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
Cocoa Generic View
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Cocoa Generic View


  • Subject: Cocoa Generic View
  • From: William Stewart <email@hidden>
  • Date: Wed, 25 May 2005 18:29:13 -0700

All this talk about Carbon and Cocoa reminded me of another new feature in Tiger - a generic AU view (AUGenericView) - this time a Cocoa view. It can be found in a new framework CoreAudioKit.framework.

It has a fairly simple API - its a subclass of NSView and has a couple of additional API: initWithAudioUnit, etc...

This View is a more featured than the Carbon Generic View, and its our intention to continue to support the existing functionality of the carbon view, but no longer add new features to it. Rather, our ongoing efforts will be primarily focused on the AUGenericView.

Some of the things it does on top of the Carbon View is:
(1) Puts clumped parameters into boxes (and will display clump names if these are provided by the AU)
(2) Can optionally display expert parameters or not with a disclosure box
(3) Hi-lights any parameters that are about to change value (BeginParameterGesture) and de-hi-lights when done (EndParameterGesture)
(4) Is resizable horizontally (more on this below)
(5) Will thread the loading of a view for AUs with a large number of parameters, and places them into a scrollable view
(6) Uses tabs to display parameters on different scopes - for instance, parameters on Global and Part scopes (see AULooper for an example of this)


Both the Carbon and Cocoa Generic Views also have some special behaviours now for Boolean Parameters:
Read Only - puts up an indicator that "lights up" when the value is set to on, and off when off
Write Only - provides a "push button" to hit this parameter with (the param is considered to have no state - think of a button to reset an AU)
Read/Write - checkbox as it does currently



Cocoa Views and Resizability

NSView has some services concerning resize abilities. A host of cocoa views can use that information to provide resize behaviours in a host window. For instance, AU Lab (which uses the AUGenericView) provides horizontal resizing for this view - and the view implements this by changing the size of the sliders, etc. A view can (and probably must) customise the resize behaviour if it is going to be resizable. A view can of course turn this off.

In the Carbon Generic View, we also did the work needed to support using this view in a composited window - it is now implemented in that case to use HIView calls rather than ControlManager calls. One of the advantages of doing this work is that a view that is larger than the size of the window the host wishes to use can be placed in a scroll view, and thus scrolled by the user. This is particularly good if you have AU's with large numbers of parameters. All of the code for this is also available in the SDK.

Thanks

Bill

--
mailto:email@hidden
tel: +1 408 974 4056
________________________________________________________________________ __
"Much human ingenuity has gone into finding the ultimate Before.
The current state of knowledge can be summarized thus:
In the beginning, there was nothing, which exploded" - Terry Pratchett
________________________________________________________________________ __


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Prev by Date: Re: New way for Cocoa AU hosts to wrap Carbon AU GUIs?
  • Next by Date: Re: Multiple outputs for the same source
  • Previous by thread: ADC Plug-Fest featuring Audio Units
  • Next by thread: RE: Coreaudio-api Digest, Vol 2, Issue 157
  • Index(es):
    • Date
    • Thread