changeset 80:6462973e76b1

2008-08-15 Omair Majid <omajid@redhat.com> * src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java: the mixer can now return Clip as well
author Omair Majid <omajid@redhat.com>
date Fri, 15 Aug 2008 15:19:43 -0400
parents 17b5e29d9a21
children 543d5b1cef67
files src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java
diffstat 1 files changed, 14 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java	Fri Aug 15 12:22:25 2008 -0400
+++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java	Fri Aug 15 15:19:43 2008 -0400
@@ -69,6 +69,7 @@
 
 	private Line.Info[] sourceLineInfos;
 	private Line.Info[] targetLineInfos;
+	private Line.Info[] clipInfos;
 
 	private static PulseAudioMixer _instance = null;
 
@@ -77,18 +78,13 @@
 
 	private boolean isOpen = false;
 
-	private List<PulseAudioSourceDataLine> sourceLines = new ArrayList<PulseAudioSourceDataLine>();
-	// private List<PulseAudioTargetDataLine> targetLines = null;
-	private List<PulseAudioClip> clips = new ArrayList<PulseAudioClip>();
+	private final List<PulseAudioSourceDataLine> sourceLines = new ArrayList<PulseAudioSourceDataLine>();
+	private final List<PulseAudioTargetDataLine> targetLines = new ArrayList<PulseAudioTargetDataLine>();
+	private final List<PulseAudioClip> clips = new ArrayList<PulseAudioClip>();
 
-	// private Line.Info targetDataLineInfo = new
-	// Line.Info(PulseAudioTargetDataLine.class);
-
-	List<LineListener> lineListeners = null;
+	private final List<LineListener> lineListeners = new ArrayList<LineListener>();
 
 	private PulseAudioMixer() {
-		lineListeners = new ArrayList<LineListener>();
-		sourceLines = new ArrayList<PulseAudioSourceDataLine>();
 		AudioFormat[] formats = getSupportedFormats();
 		sourceLineInfos = new Line.Info[] { new DataLine.Info(
 				SourceDataLine.class, formats, AudioSystem.NOT_SPECIFIED,
@@ -96,7 +92,9 @@
 		targetLineInfos = new Line.Info[] { new DataLine.Info(
 				TargetDataLine.class, formats, AudioSystem.NOT_SPECIFIED,
 				AudioSystem.NOT_SPECIFIED) };
-		// _targetLines = new ArrayList<PulseAudioTargetDataLine>();
+		clipInfos = new Line.Info[] { new DataLine.Info(PulseAudioClip.class,
+				formats, AudioSystem.NOT_SPECIFIED, AudioSystem.NOT_SPECIFIED) };
+
 	}
 
 	synchronized public static PulseAudioMixer getInstance() {
@@ -409,6 +407,12 @@
 					return true;
 				}
 			}
+
+			for (Line.Info clipInfo : clipInfos) {
+				if (info.matches(clipInfo)) {
+					return true;
+				}
+			}
 		}
 		return false;