/**
* This sketch demonstrates how to use the getType method of a FloatControl object.
* A FloatControl is what is returned by the gain, volume, pan, and
* balance methods of a Controller object. The class used here is an
* AudioOutput but these control methods are also available on AudioSample, AudioSnippet, AudioInput,
* and AudioPlayer objects. The FloatControl class is defined by the JavaSound API and it
* represents a control of a DataLine. A DataLine is a low-level JavaSound class that
* is used for sending audio to, or receiving audio from, the audio system. getType will return a
* Control.Type object that is equal to one of the static Control.Type objects of Controller.
* These are Controller.BALANCE, Controller.GAIN, Controller.MUTE,
* Controller.PAN, Controller.SAMPLE_RATE, and Controller.VOLUME. This method is
* inherited from the Control class and is more useful when you are trying to figure out what controls
* you have in the array returned by getControls (see the example Controller >> getControls).
*/
import ddf.minim.*;
Minim minim;
AudioOutput out;
void setup()
{
size(512, 200);
minim = new Minim(this);
out = minim.getLineOut();
textFont(createFont("Arial", 12));
}
void draw()
{
background(0);
if ( out.hasControl(Controller.GAIN) )
{
if ( out.gain().getType() == Controller.GAIN )
{
text("We got the gain!", 5, 15);
}
else
{
// we should never see this
text("We didn't get the gain!", 5, 15);
}
}
else
{
text("There is no gain control for this output.", 5, 15);
}
}
void stop()
{
// always close Minim audio classes when you are finished with them
out.close();
minim.stop();
super.stop();
}