+ /** Creates a new audio sink. */
+ public AudioSink() {
+ super();
+ volumeFader = new Fader() {
+
+ @Override
+ protected void valueSet(int value) {
+ if (sourceDataLine != null) {
+ FloatControl volumeControl = (FloatControl) sourceDataLine.getControl(VOLUME);
+ volumeControl.setValue(value * volumeControl.getMaximum() / (float) maximum());
+ }
+ }
+ };
+ }
+
+ //
+ // CONTROLLED METHODS
+ //
+
+ @Override
+ public List<Controller> controllers() {
+ return Arrays.<Controller>asList(volumeFader);
+ }
+