Cocoa Generic View
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