# HG changeset patch # User Ioana Ivan # Date 1223673138 14400 # Node ID e7b6e8e732e463da1de6d23d2c32b62076c7eb6d # Parent 8b85ec866923aa877fe99bfb4cc8618a8c15ecd3 2008-10-10 Ioana Ivan * src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java (getLine): LineUnavailablException is no longer thrown if the mixer is not open (getTargetLines) : returns a Line[] array instead of a TargetDataLine[] array * src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine (open(AudioFormat format, int bufferSize)): throws LineUnavailableException if the mixer is not open * src/java/org/classpath/icedtea/pulseaudio/PulseAudioClip (open()): throws LineUnavailableException if the mixer is not open * src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort (PulseAudioPort): calls open() diff -r 8b85ec866923 -r e7b6e8e732e4 ChangeLog --- a/ChangeLog Fri Oct 10 16:03:12 2008 -0400 +++ b/ChangeLog Fri Oct 10 17:12:18 2008 -0400 @@ -1,3 +1,20 @@ +2008-10-10 Ioana Ivan + * src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java + (getLine): LineUnavailablException is no longer thrown if the mixer is + not open + (getTargetLines) : returns a Line[] array instead of a + TargetDataLine[] array + + * src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine + (open(AudioFormat format, int bufferSize)): throws + LineUnavailableException if the mixer is not open + + * src/java/org/classpath/icedtea/pulseaudio/PulseAudioClip + (open()): throws LineUnavailableException if the mixer is not open + + * src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort + (PulseAudioPort): calls open() + 2008-10-10 Ioana Ivan Omair Majid diff -r 8b85ec866923 -r e7b6e8e732e4 pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioClip.java --- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioClip.java Fri Oct 10 16:03:12 2008 -0400 +++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioClip.java Fri Oct 10 17:12:18 2008 -0400 @@ -398,6 +398,11 @@ public void open(AudioFormat format, byte[] data, int offset, int bufferSize) throws LineUnavailableException { + if(!PulseAudioMixer.getInstance().isOpen()) { + throw new LineUnavailableException("The mixer needs to be opened before opening a line"); + } + + /* check for permission to play audio */ AudioPermission perm = new AudioPermission("play", null); perm.checkGuard(null); diff -r 8b85ec866923 -r e7b6e8e732e4 pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java --- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java Fri Oct 10 16:03:12 2008 -0400 +++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java Fri Oct 10 17:12:18 2008 -0400 @@ -84,6 +84,10 @@ if (isOpen) { throw new IllegalStateException("Line is already open"); } + if(!PulseAudioMixer.getInstance().isOpen()) { + throw new LineUnavailableException("The mixer needs to be opened before opening a line"); + } + createStream(format); addStreamListeners(); @@ -277,7 +281,6 @@ public void open() throws LineUnavailableException { assert (defaultFormat != null); - open(defaultFormat, DEFAULT_BUFFER_SIZE); } diff -r 8b85ec866923 -r e7b6e8e732e4 pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java --- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Fri Oct 10 16:03:12 2008 -0400 +++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Fri Oct 10 17:12:18 2008 -0400 @@ -271,10 +271,6 @@ throw new IllegalArgumentException("Line unsupported: " + info); } - if (!isOpen) { - throw new LineUnavailableException("The mixer isnt open"); - } - AudioFormat[] formats = null; AudioFormat defaultFormat = null; @@ -410,7 +406,7 @@ AudioPermission perm = new AudioPermission("record", null); perm.checkGuard(null); - return (Line[]) targetLines.toArray(new TargetDataLine[0]); + return (Line[]) targetLines.toArray(new Line[0]); } @Override diff -r 8b85ec866923 -r e7b6e8e732e4 pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort.java --- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort.java Fri Oct 10 16:03:12 2008 -0400 +++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort.java Fri Oct 10 17:12:18 2008 -0400 @@ -76,8 +76,8 @@ controls.add(volumeControl); muteControl = new PulseAudioMuteControl(this, volumeControl); controls.add(muteControl); - isOpen = true; - + //isOpen = true; + open(); /* * unlike other lines, Ports must either be open or close * @@ -141,7 +141,9 @@ @Override public void open() { - + if(isOpen) { + return; + } native_setVolume(volume); isOpen = true; fireLineEvent(new LineEvent(this, LineEvent.Type.OPEN, diff -r 8b85ec866923 -r e7b6e8e732e4 pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java --- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java Fri Oct 10 16:03:12 2008 -0400 +++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java Fri Oct 10 17:12:18 2008 -0400 @@ -51,7 +51,6 @@ public PulseAudioTargetPort(String name, EventLoop eventLoop) { super(name, eventLoop); - } public void open() {