<Sound Dev> JDK 9 RFR of JDK-8042256: Fix raw and unchecked lint warnings in com.sun.media.sound
Phil Race
philip.race at oracle.com
Mon May 5 16:39:48 UTC 2014
All looks OK to me ..
-phil.
On 5/5/2014 9:02 AM, Joe Darcy wrote:
> * ping*
>
> -Joe
>
> On 4/30/2014 9:50 PM, Joe Darcy wrote:
>> Hello,
>>
>> Please review this change to address the raw and unchecked warnings
>> in com.sun.media.sound:
>>
>> JDK-8042256: Fix raw and unchecked lint warnings in
>> com.sun.media.sound
>> http://cr.openjdk.java.net/~darcy/8042256.0/
>>
>> Patch below.
>>
>> Thanks,
>>
>> -Joe
>>
>> --- old/src/share/classes/com/sun/media/sound/AbstractLine.java
>> 2014-04-30 18:30:06.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/AbstractLine.java
>> 2014-04-30 18:30:06.000000000 -0700
>> @@ -48,7 +48,7 @@
>> protected Control[] controls;
>> AbstractMixer mixer;
>> private boolean open = false;
>> - private final Vector listeners = new Vector();
>> + private final Vector<Object> listeners = new Vector<>();
>>
>> /**
>> * Contains event dispatcher per thread group.
>> --- old/src/share/classes/com/sun/media/sound/AbstractMidiDevice.java
>> 2014-04-30 18:30:07.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/AbstractMidiDevice.java
>> 2014-04-30 18:30:07.000000000 -0700
>> @@ -70,7 +70,7 @@
>>
>> /** List of Receivers and Transmitters that opened the device
>> implicitely.
>> */
>> - private List openKeepingObjects;
>> + private List<Object> openKeepingObjects;
>>
>> /**
>> * This is the device handle returned from native code
>> @@ -284,6 +284,7 @@
>> }
>>
>>
>> + @SuppressWarnings("unchecked") // Cast of result of clone
>> public final List<Receiver> getReceivers() {
>> List<Receiver> recs;
>> synchronized (traRecLock) {
>> @@ -313,6 +314,7 @@
>> }
>>
>>
>> + @SuppressWarnings("unchecked") // Cast of result of clone
>> public final List<Transmitter> getTransmitters() {
>> List<Transmitter> tras;
>> synchronized (traRecLock) {
>> @@ -372,9 +374,9 @@
>>
>> /** Return the list of objects that have opened the device
>> implicitely.
>> */
>> - private synchronized List getOpenKeepingObjects() {
>> + private synchronized List<Object> getOpenKeepingObjects() {
>> if (openKeepingObjects == null) {
>> - openKeepingObjects = new ArrayList();
>> + openKeepingObjects = new ArrayList<>();
>> }
>> return openKeepingObjects;
>> }
>> --- old/src/share/classes/com/sun/media/sound/AbstractMixer.java
>> 2014-04-30 18:30:07.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/AbstractMixer.java
>> 2014-04-30 18:30:07.000000000 -0700
>> @@ -90,13 +90,13 @@
>> /**
>> * Source lines (ports) currently open
>> */
>> - private final Vector sourceLines = new Vector();
>> + private final Vector<Line> sourceLines = new Vector<>();
>>
>>
>> /**
>> * Target lines currently open.
>> */
>> - private final Vector targetLines = new Vector();
>> + private final Vector<Line> targetLines = new Vector<>();
>>
>>
>> /**
>> @@ -151,7 +151,7 @@
>> public final Line.Info[] getSourceLineInfo(Line.Info info) {
>>
>> int i;
>> - Vector vec = new Vector();
>> + Vector<Line.Info> vec = new Vector<>();
>>
>> for (i = 0; i < sourceLineInfo.length; i++) {
>>
>> @@ -162,7 +162,7 @@
>>
>> Line.Info[] returnedArray = new Line.Info[vec.size()];
>> for (i = 0; i < returnedArray.length; i++) {
>> - returnedArray[i] = (Line.Info)vec.elementAt(i);
>> + returnedArray[i] = vec.elementAt(i);
>> }
>>
>> return returnedArray;
>> @@ -172,7 +172,7 @@
>> public final Line.Info[] getTargetLineInfo(Line.Info info) {
>>
>> int i;
>> - Vector vec = new Vector();
>> + Vector<Line.Info> vec = new Vector<>();
>>
>> for (i = 0; i < targetLineInfo.length; i++) {
>>
>> @@ -183,7 +183,7 @@
>>
>> Line.Info[] returnedArray = new Line.Info[vec.size()];
>> for (i = 0; i < returnedArray.length; i++) {
>> - returnedArray[i] = (Line.Info)vec.elementAt(i);
>> + returnedArray[i] = vec.elementAt(i);
>> }
>>
>> return returnedArray;
>> @@ -231,7 +231,7 @@
>> localLines = new Line[sourceLines.size()];
>>
>> for (int i = 0; i < localLines.length; i++) {
>> - localLines[i] = (Line)sourceLines.elementAt(i);
>> + localLines[i] = sourceLines.elementAt(i);
>> }
>> }
>>
>> @@ -248,7 +248,7 @@
>> localLines = new Line[targetLines.size()];
>>
>> for (int i = 0; i < localLines.length; i++) {
>> - localLines[i] = (Line)targetLines.elementAt(i);
>> + localLines[i] = targetLines.elementAt(i);
>> }
>> }
>>
>> @@ -453,7 +453,8 @@
>> return;
>> }
>>
>> - Vector localSourceLines = (Vector)sourceLines.clone();
>> + @SuppressWarnings("unchecked")
>> + Vector<Line> localSourceLines =
>> (Vector<Line>)sourceLines.clone();
>> for (int i = 0; i < localSourceLines.size(); i++) {
>>
>> // if any other open line is running, return
>> @@ -468,7 +469,8 @@
>> }
>> }
>>
>> - Vector localTargetLines = (Vector)targetLines.clone();
>> + @SuppressWarnings("unchecked")
>> + Vector<Line> localTargetLines =
>> (Vector<Line>)targetLines.clone();
>> for (int i = 0; i < localTargetLines.size(); i++) {
>>
>> // if any other open line is running, return
>> --- old/src/share/classes/com/sun/media/sound/AlawCodec.java
>> 2014-04-30 18:30:08.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/AlawCodec.java
>> 2014-04-30 18:30:08.000000000 -0700
>> @@ -213,7 +213,7 @@
>> private AudioFormat[] getOutputFormats(AudioFormat inputFormat) {
>>
>>
>> - Vector formats = new Vector();
>> + Vector<AudioFormat> formats = new Vector<>();
>> AudioFormat format;
>>
>> if (
>> AudioFormat.Encoding.PCM_SIGNED.equals(inputFormat.getEncoding())) {
>> @@ -248,7 +248,7 @@
>>
>> AudioFormat[] formatArray = new AudioFormat[formats.size()];
>> for (int i = 0; i < formatArray.length; i++) {
>> - formatArray[i] = (AudioFormat)(formats.elementAt(i));
>> + formatArray[i] = formats.elementAt(i);
>> }
>> return formatArray;
>> }
>> ---
>> old/src/share/classes/com/sun/media/sound/AudioSynthesizerPropertyInfo.java
>> 2014-04-30 18:30:08.000000000 -0700
>> +++
>> new/src/share/classes/com/sun/media/sound/AudioSynthesizerPropertyInfo.java
>> 2014-04-30 18:30:08.000000000 -0700
>> @@ -68,7 +68,7 @@
>> * The <code>valueClass</code> field specifies class
>> * used in <code>value</code> field.
>> */
>> - public Class valueClass = null;
>> + public Class<?> valueClass = null;
>> /**
>> * An array of possible values if the value for the field
>> * <code>AudioSynthesizerPropertyInfo.value</code> may be selected
>> --- old/src/share/classes/com/sun/media/sound/DirectAudioDevice.java
>> 2014-04-30 18:30:09.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/DirectAudioDevice.java
>> 2014-04-30 18:30:09.000000000 -0700
>> @@ -94,7 +94,7 @@
>> }
>>
>> private DirectDLI createDataLineInfo(boolean isSource) {
>> - Vector formats = new Vector();
>> + Vector<AudioFormat> formats = new Vector<>();
>> AudioFormat[] hardwareFormatArray = null;
>> AudioFormat[] formatArray = null;
>>
>> @@ -107,7 +107,7 @@
>> int formatArraySize = size;
>> hardwareFormatArray = new AudioFormat[size];
>> for (int i = 0; i < size; i++) {
>> - AudioFormat format =
>> (AudioFormat)formats.elementAt(i);
>> + AudioFormat format = formats.elementAt(i);
>> hardwareFormatArray[i] = format;
>> int bits = format.getSampleSizeInBits();
>> boolean isSigned =
>> format.getEncoding().equals(AudioFormat.Encoding.PCM_SIGNED);
>> @@ -265,7 +265,7 @@
>> return ((DirectAudioDeviceProvider.DirectAudioDeviceInfo)
>> getMixerInfo()).getMaxSimulLines();
>> }
>>
>> - private static void addFormat(Vector v, int bits, int
>> frameSizeInBytes, int channels, float sampleRate,
>> + private static void addFormat(Vector<AudioFormat> v, int bits,
>> int frameSizeInBytes, int channels, float sampleRate,
>> int encoding, boolean signed,
>> boolean bigEndian) {
>> AudioFormat.Encoding enc = null;
>> switch (encoding) {
>> @@ -338,7 +338,7 @@
>> private static final class DirectDLI extends DataLine.Info {
>> final AudioFormat[] hardwareFormats;
>>
>> - private DirectDLI(Class clazz, AudioFormat[] formatArray,
>> + private DirectDLI(Class<?> clazz, AudioFormat[] formatArray,
>> AudioFormat[] hardwareFormatArray,
>> int minBuffer, int maxBuffer) {
>> super(clazz, formatArray, minBuffer, maxBuffer);
>> @@ -1457,7 +1457,7 @@
>>
>> } // class DirectBAOS
>>
>> -
>> + @SuppressWarnings("rawtypes")
>> private static native void nGetFormats(int mixerIndex, int
>> deviceID,
>> boolean isSource, Vector
>> formats);
>>
>> --- old/src/share/classes/com/sun/media/sound/EventDispatcher.java
>> 2014-04-30 18:30:09.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/EventDispatcher.java
>> 2014-04-30 18:30:09.000000000 -0700
>> @@ -57,7 +57,7 @@
>> /**
>> * List of events
>> */
>> - private final ArrayList eventQueue = new ArrayList();
>> + private final ArrayList<EventInfo> eventQueue = new ArrayList<>();
>>
>>
>> /**
>> @@ -186,7 +186,7 @@
>> }
>> if (eventQueue.size() > 0) {
>> // Remove the event from the queue and dispatch it
>> to the listeners.
>> - eventInfo = (EventInfo) eventQueue.remove(0);
>> + eventInfo = eventQueue.remove(0);
>> }
>>
>> } // end of synchronized
>> @@ -230,7 +230,7 @@
>> /**
>> * Send audio and MIDI events.
>> */
>> - void sendAudioEvents(Object event, List listeners) {
>> + void sendAudioEvents(Object event, List<Object> listeners) {
>> if ((listeners == null)
>> || (listeners.size() == 0)) {
>> // nothing to do
>> @@ -392,7 +392,7 @@
>> * @param event the event to be dispatched
>> * @param listeners listener list; will be copied
>> */
>> - EventInfo(Object event, List listeners) {
>> + EventInfo(Object event, List<Object> listeners) {
>> this.event = event;
>> this.listeners = listeners.toArray();
>> }
>> --- old/src/share/classes/com/sun/media/sound/JDK13Services.java
>> 2014-04-30 18:30:10.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/JDK13Services.java
>> 2014-04-30 18:30:09.000000000 -0700
>> @@ -118,7 +118,7 @@
>> (the part before the hash sign), if available. If the
>> property is
>> not set or the value has no provider class name part, null
>> is returned.
>> */
>> - public static synchronized String
>> getDefaultProviderClassName(Class typeClass) {
>> + public static synchronized String
>> getDefaultProviderClassName(Class<?> typeClass) {
>> String value = null;
>> String defaultProviderSpec = getDefaultProvider(typeClass);
>> if (defaultProviderSpec != null) {
>> @@ -144,7 +144,7 @@
>> part after the hash sign), if available. If the property is
>> not set
>> or the value has no instance name part, null is returned.
>> */
>> - public static synchronized String getDefaultInstanceName(Class
>> typeClass) {
>> + public static synchronized String
>> getDefaultInstanceName(Class<?> typeClass) {
>> String value = null;
>> String defaultProviderSpec = getDefaultProvider(typeClass);
>> if (defaultProviderSpec != null) {
>> @@ -165,7 +165,7 @@
>> @return The complete value of the property, if available.
>> If the property is not set, null is returned.
>> */
>> - private static synchronized String getDefaultProvider(Class
>> typeClass) {
>> + private static synchronized String getDefaultProvider(Class<?>
>> typeClass) {
>> if (!SourceDataLine.class.equals(typeClass)
>> && !TargetDataLine.class.equals(typeClass)
>> && !Clip.class.equals(typeClass)
>> ---
>> old/src/share/classes/com/sun/media/sound/MidiInDeviceProvider.java
>> 2014-04-30 18:30:10.000000000 -0700
>> +++
>> new/src/share/classes/com/sun/media/sound/MidiInDeviceProvider.java
>> 2014-04-30 18:30:10.000000000 -0700
>> @@ -106,9 +106,9 @@
>> * the new instance will not reflect that state...
>> */
>> static final class MidiInDeviceInfo extends
>> AbstractMidiDeviceProvider.Info {
>> - private final Class providerClass;
>> + private final Class<?> providerClass;
>>
>> - private MidiInDeviceInfo(int index, Class providerClass) {
>> + private MidiInDeviceInfo(int index, Class<?> providerClass) {
>> super(nGetName(index), nGetVendor(index),
>> nGetDescription(index), nGetVersion(index), index);
>> this.providerClass = providerClass;
>> }
>> ---
>> old/src/share/classes/com/sun/media/sound/MidiOutDeviceProvider.java
>> 2014-04-30 18:30:10.000000000 -0700
>> +++
>> new/src/share/classes/com/sun/media/sound/MidiOutDeviceProvider.java
>> 2014-04-30 18:30:10.000000000 -0700
>> @@ -104,9 +104,9 @@
>> * the new instance will not reflect that state...
>> */
>> static final class MidiOutDeviceInfo extends
>> AbstractMidiDeviceProvider.Info {
>> - private final Class providerClass;
>> + private final Class<?> providerClass;
>>
>> - private MidiOutDeviceInfo(int index, Class providerClass) {
>> + private MidiOutDeviceInfo(int index, Class<?> providerClass) {
>> super(nGetName(index), nGetVendor(index),
>> nGetDescription(index), nGetVersion(index), index);
>> this.providerClass = providerClass;
>> }
>> --- old/src/share/classes/com/sun/media/sound/MidiUtils.java
>> 2014-04-30 18:30:11.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/MidiUtils.java
>> 2014-04-30 18:30:11.000000000 -0700
>> @@ -295,7 +295,7 @@
>>
>>
>> public synchronized void refresh(Sequence seq) {
>> - ArrayList list = new ArrayList();
>> + ArrayList<MidiEvent> list = new ArrayList<>();
>> Track[] tracks = seq.getTracks();
>> if (tracks.length > 0) {
>> // tempo events only occur in track 0
>> @@ -313,7 +313,7 @@
>> int size = list.size() + 1;
>> firstTempoIsFake = true;
>> if ((size > 1)
>> - && (((MidiEvent) list.get(0)).getTick() == 0)) {
>> + && (list.get(0).getTick() == 0)) {
>> // do not need to add an initial tempo event at the
>> beginning
>> size--;
>> firstTempoIsFake = false;
>> @@ -328,7 +328,7 @@
>> e++;
>> }
>> for (int i = 0; i < list.size(); i++, e++) {
>> - MidiEvent evt = (MidiEvent) list.get(i);
>> + MidiEvent evt = list.get(i);
>> ticks[e] = evt.getTick();
>> tempos[e] = getTempoMPQ(evt.getMessage());
>> }
>> --- old/src/share/classes/com/sun/media/sound/PCMtoPCMCodec.java
>> 2014-04-30 18:30:11.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/PCMtoPCMCodec.java
>> 2014-04-30 18:30:11.000000000 -0700
>> @@ -91,7 +91,7 @@
>> // filter out targetEncoding from the old getOutputFormats(
>> sourceFormat ) method
>>
>> AudioFormat[] formats = getOutputFormats( sourceFormat );
>> - Vector newFormats = new Vector();
>> + Vector<AudioFormat> newFormats = new Vector<>();
>> for(int i=0; i<formats.length; i++ ) {
>> if( formats[i].getEncoding().equals( targetEncoding ) ) {
>> newFormats.addElement( formats[i] );
>> @@ -101,7 +101,7 @@
>> AudioFormat[] formatArray = new AudioFormat[newFormats.size()];
>>
>> for (int i = 0; i < formatArray.length; i++) {
>> - formatArray[i] = (AudioFormat)(newFormats.elementAt(i));
>> + formatArray[i] = newFormats.elementAt(i);
>> }
>>
>> return formatArray;
>> @@ -181,7 +181,7 @@
>> /* public AudioFormat[] getOutputFormats(AudioFormat
>> inputFormat) { */
>> private AudioFormat[] getOutputFormats(AudioFormat inputFormat) {
>>
>> - Vector formats = new Vector();
>> + Vector<AudioFormat> formats = new Vector<>();
>> AudioFormat format;
>>
>> int sampleSize = inputFormat.getSampleSizeInBits();
>> @@ -335,7 +335,7 @@
>>
>> for (int i = 0; i < formatArray.length; i++) {
>>
>> - formatArray[i] = (AudioFormat)(formats.elementAt(i));
>> + formatArray[i] = formats.elementAt(i);
>> }
>> }
>>
>> --- old/src/share/classes/com/sun/media/sound/PortMixer.java
>> 2014-04-30 18:30:12.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/PortMixer.java
>> 2014-04-30 18:30:12.000000000 -0700
>> @@ -253,12 +253,12 @@
>> long newID = ((PortMixer) mixer).getID();
>> if ((id == 0) || (newID != id) || (controls.length == 0)) {
>> id = newID;
>> - Vector vector = new Vector();
>> + Vector<Control> vector = new Vector<>();
>> synchronized (vector) {
>> nGetControls(id, portIndex, vector);
>> controls = new Control[vector.size()];
>> for (int i = 0; i < controls.length; i++) {
>> - controls[i] = (Control) vector.elementAt(i);
>> + controls[i] = vector.elementAt(i);
>> }
>> }
>> } else {
>> @@ -494,6 +494,7 @@
>> private static native String nGetPortName(long id, int portIndex);
>>
>> // fills the vector with the controls for this port
>> + @SuppressWarnings("rawtypes")
>> private static native void nGetControls(long id, int portIndex,
>> Vector vector);
>>
>> // getters/setters for controls
>> --- old/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
>> 2014-04-30 18:30:12.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
>> 2014-04-30 18:30:12.000000000 -0700
>> @@ -122,7 +122,7 @@
>> /**
>> * List of tracks to which we're recording
>> */
>> - private final List recordingTracks = new ArrayList();
>> + private final List<RecordingTrack> recordingTracks = new
>> ArrayList<>();
>>
>>
>> private long loopStart = 0;
>> @@ -133,13 +133,13 @@
>> /**
>> * Meta event listeners
>> */
>> - private final ArrayList metaEventListeners = new ArrayList();
>> + private final ArrayList<Object> metaEventListeners = new
>> ArrayList<>();
>>
>>
>> /**
>> * Control change listeners
>> */
>> - private final ArrayList controllerEventListeners = new ArrayList();
>> + private final ArrayList<ControllerListElement>
>> controllerEventListeners = new ArrayList<>();
>>
>>
>> /** automatic connection support */
>> @@ -645,7 +645,7 @@
>> boolean flag = false;
>> for(int i=0; i < controllerEventListeners.size(); i++) {
>>
>> - cve = (ControllerListElement)
>> controllerEventListeners.get(i);
>> + cve = controllerEventListeners.get(i);
>>
>> if (cve.listener.equals(listener)) {
>> cve.addControllers(controllers);
>> @@ -669,7 +669,7 @@
>> ControllerListElement cve = null;
>> boolean flag = false;
>> for (int i=0; i < controllerEventListeners.size(); i++) {
>> - cve = (ControllerListElement)
>> controllerEventListeners.get(i);
>> + cve = controllerEventListeners.get(i);
>> if (cve.listener.equals(listener)) {
>> cve.removeControllers(controllers);
>> flag = true;
>> @@ -940,9 +940,9 @@
>> }
>> ShortMessage msg = (ShortMessage) message;
>> int controller = msg.getData1();
>> - List sendToListeners = new ArrayList();
>> + List<Object> sendToListeners = new ArrayList<>();
>> for (int i = 0; i < size; i++) {
>> - ControllerListElement cve = (ControllerListElement)
>> controllerEventListeners.get(i);
>> + ControllerListElement cve =
>> controllerEventListeners.get(i);
>> for(int j = 0; j < cve.controllers.length; j++) {
>> if (cve.controllers[j] == controller) {
>> sendToListeners.add(cve.listener);
>> @@ -1213,13 +1213,13 @@
>> this.channel = channel;
>> }
>>
>> - static RecordingTrack get(List recordingTracks, Track track) {
>> + static RecordingTrack get(List<RecordingTrack>
>> recordingTracks, Track track) {
>>
>> synchronized(recordingTracks) {
>> int size = recordingTracks.size();
>>
>> for (int i = 0; i < size; i++) {
>> - RecordingTrack current =
>> (RecordingTrack)recordingTracks.get(i);
>> + RecordingTrack current = recordingTracks.get(i);
>> if (current.track == track) {
>> return current;
>> }
>> @@ -1228,12 +1228,12 @@
>> return null;
>> }
>>
>> - static Track get(List recordingTracks, int channel) {
>> + static Track get(List<RecordingTrack> recordingTracks, int
>> channel) {
>>
>> synchronized(recordingTracks) {
>> int size = recordingTracks.size();
>> for (int i = 0; i < size; i++) {
>> - RecordingTrack current =
>> (RecordingTrack)recordingTracks.get(i);
>> + RecordingTrack current = recordingTracks.get(i);
>> if ((current.channel == channel) ||
>> (current.channel == -1)) {
>> return current.track;
>> }
>> --- old/src/share/classes/com/sun/media/sound/SoftSynthesizer.java
>> 2014-04-30 18:30:13.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/SoftSynthesizer.java
>> 2014-04-30 18:30:13.000000000 -0700
>> @@ -949,7 +949,7 @@
>> Object v = (info == null) ? null : info.get(item2.name);
>> v = (v != null) ? v :
>> storedProperties.getProperty(item2.name);
>> if (v != null) {
>> - Class c = (item2.valueClass);
>> + Class<?> c = (item2.valueClass);
>> if (c.isInstance(v))
>> item2.value = v;
>> else if (v instanceof String) {
>> --- old/src/share/classes/com/sun/media/sound/UlawCodec.java
>> 2014-04-30 18:30:13.000000000 -0700
>> +++ new/src/share/classes/com/sun/media/sound/UlawCodec.java
>> 2014-04-30 18:30:13.000000000 -0700
>> @@ -198,7 +198,7 @@
>> /* public AudioFormat[] getOutputFormats(AudioFormat
>> inputFormat) { */
>> private AudioFormat[] getOutputFormats(AudioFormat inputFormat) {
>>
>> - Vector formats = new Vector();
>> + Vector<AudioFormat> formats = new Vector<>();
>> AudioFormat format;
>>
>> if ((inputFormat.getSampleSizeInBits() == 16)
>> @@ -235,7 +235,7 @@
>>
>> AudioFormat[] formatArray = new AudioFormat[formats.size()];
>> for (int i = 0; i < formatArray.length; i++) {
>> - formatArray[i] = (AudioFormat)(formats.elementAt(i));
>> + formatArray[i] = formats.elementAt(i);
>> }
>> return formatArray;
>> }
>>
>
More information about the sound-dev
mailing list