aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/javax/sound/midi
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/sound/midi')
-rw-r--r--libjava/classpath/javax/sound/midi/MetaMessage.java6
-rw-r--r--libjava/classpath/javax/sound/midi/MidiDevice.java1
-rw-r--r--libjava/classpath/javax/sound/midi/MidiSystem.java71
-rw-r--r--libjava/classpath/javax/sound/midi/Receiver.java1
-rw-r--r--libjava/classpath/javax/sound/midi/SoundbankResource.java4
-rw-r--r--libjava/classpath/javax/sound/midi/Track.java12
-rw-r--r--libjava/classpath/javax/sound/midi/Transmitter.java1
7 files changed, 55 insertions, 41 deletions
diff --git a/libjava/classpath/javax/sound/midi/MetaMessage.java b/libjava/classpath/javax/sound/midi/MetaMessage.java
index 4d43975c3a4..0aab153cbfa 100644
--- a/libjava/classpath/javax/sound/midi/MetaMessage.java
+++ b/libjava/classpath/javax/sound/midi/MetaMessage.java
@@ -120,10 +120,12 @@ public class MetaMessage extends MidiMessage
// Now compute the length representation
long buffer = length & 0x7F;
- while ((length >>= 7) > 0)
+ // Avoid altering length variable; PR42551
+ lengthValue = length;
+ while ((lengthValue >>= 7) > 0)
{
buffer <<= 8;
- buffer |= ((length & 0x7F) | 0x80);
+ buffer |= ((lengthValue & 0x7F) | 0x80);
}
// Now store the variable length length value
diff --git a/libjava/classpath/javax/sound/midi/MidiDevice.java b/libjava/classpath/javax/sound/midi/MidiDevice.java
index 7a0ca7f2bb8..7ce22caedfc 100644
--- a/libjava/classpath/javax/sound/midi/MidiDevice.java
+++ b/libjava/classpath/javax/sound/midi/MidiDevice.java
@@ -46,6 +46,7 @@ package javax.sound.midi;
*
*/
public interface MidiDevice
+ extends AutoCloseable
{
/**
* Get the Info object describing this device.
diff --git a/libjava/classpath/javax/sound/midi/MidiSystem.java b/libjava/classpath/javax/sound/midi/MidiSystem.java
index b273b98e5ff..0e3680563fb 100644
--- a/libjava/classpath/javax/sound/midi/MidiSystem.java
+++ b/libjava/classpath/javax/sound/midi/MidiSystem.java
@@ -1,5 +1,5 @@
/* MidiSystem.java -- Access system MIDI resources
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2012 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -76,9 +76,9 @@ public class MidiSystem
*/
public static MidiDevice.Info[] getMidiDeviceInfo()
{
- Iterator deviceProviders =
+ Iterator<MidiDeviceProvider> deviceProviders =
ServiceFactory.lookupProviders(MidiDeviceProvider.class);
- List infoList = new ArrayList();
+ List<MidiDevice.Info> infoList = new ArrayList<MidiDevice.Info>();
while (deviceProviders.hasNext())
{
@@ -88,8 +88,7 @@ public class MidiSystem
infoList.add(infos[--i]);
}
- return (MidiDevice.Info[])
- infoList.toArray(new MidiDevice.Info[infoList.size()]);
+ return infoList.toArray(new MidiDevice.Info[infoList.size()]);
}
/**
@@ -103,7 +102,7 @@ public class MidiSystem
public static MidiDevice getMidiDevice(MidiDevice.Info info)
throws MidiUnavailableException
{
- Iterator deviceProviders =
+ Iterator<MidiDeviceProvider> deviceProviders =
ServiceFactory.lookupProviders(MidiDeviceProvider.class);
if (! deviceProviders.hasNext())
@@ -216,10 +215,11 @@ public class MidiSystem
public static Soundbank getSoundbank(InputStream stream)
throws InvalidMidiDataException, IOException
{
- Iterator readers = ServiceFactory.lookupProviders(SoundbankReader.class);
+ Iterator<SoundbankReader> readers =
+ ServiceFactory.lookupProviders(SoundbankReader.class);
while (readers.hasNext())
{
- SoundbankReader sr = (SoundbankReader) readers.next();
+ SoundbankReader sr = readers.next();
Soundbank sb = sr.getSoundbank(stream);
if (sb != null)
return sb;
@@ -238,10 +238,11 @@ public class MidiSystem
public static Soundbank getSoundbank(URL url)
throws InvalidMidiDataException, IOException
{
- Iterator readers = ServiceFactory.lookupProviders(SoundbankReader.class);
+ Iterator<SoundbankReader> readers =
+ ServiceFactory.lookupProviders(SoundbankReader.class);
while (readers.hasNext())
{
- SoundbankReader sr = (SoundbankReader) readers.next();
+ SoundbankReader sr = readers.next();
Soundbank sb = sr.getSoundbank(url);
if (sb != null)
return sb;
@@ -260,7 +261,8 @@ public class MidiSystem
public static Soundbank getSoundbank(File file)
throws InvalidMidiDataException, IOException
{
- Iterator readers = ServiceFactory.lookupProviders(SoundbankReader.class);
+ Iterator<SoundbankReader> readers =
+ ServiceFactory.lookupProviders(SoundbankReader.class);
while (readers.hasNext())
{
SoundbankReader sr = (SoundbankReader) readers.next();
@@ -283,10 +285,11 @@ public class MidiSystem
public static MidiFileFormat getMidiFileFormat(InputStream stream)
throws InvalidMidiDataException, IOException
{
- Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
+ Iterator<MidiFileReader> readers =
+ ServiceFactory.lookupProviders(MidiFileReader.class);
while (readers.hasNext())
{
- MidiFileReader sr = (MidiFileReader) readers.next();
+ MidiFileReader sr = readers.next();
MidiFileFormat sb = sr.getMidiFileFormat(stream);
if (sb != null)
return sb;
@@ -305,10 +308,11 @@ public class MidiSystem
public static MidiFileFormat getMidiFileFormat(URL url)
throws InvalidMidiDataException, IOException
{
- Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
+ Iterator<MidiFileReader> readers =
+ ServiceFactory.lookupProviders(MidiFileReader.class);
while (readers.hasNext())
{
- MidiFileReader sr = (MidiFileReader) readers.next();
+ MidiFileReader sr = readers.next();
MidiFileFormat sb = sr.getMidiFileFormat(url);
if (sb != null)
return sb;
@@ -327,10 +331,11 @@ public class MidiSystem
public static MidiFileFormat getMidiFileFormat(File file)
throws InvalidMidiDataException, IOException
{
- Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
+ Iterator<MidiFileReader> readers =
+ ServiceFactory.lookupProviders(MidiFileReader.class);
while (readers.hasNext())
{
- MidiFileReader sr = (MidiFileReader) readers.next();
+ MidiFileReader sr = readers.next();
MidiFileFormat sb = sr.getMidiFileFormat(file);
if (sb != null)
return sb;
@@ -350,10 +355,11 @@ public class MidiSystem
public static Sequence getSequence(InputStream stream)
throws InvalidMidiDataException, IOException
{
- Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
+ Iterator<MidiFileReader> readers =
+ ServiceFactory.lookupProviders(MidiFileReader.class);
while (readers.hasNext())
{
- MidiFileReader sr = (MidiFileReader) readers.next();
+ MidiFileReader sr = readers.next();
Sequence sq = sr.getSequence(stream);
if (sq != null)
return sq;
@@ -372,10 +378,11 @@ public class MidiSystem
public static Sequence getSequence(URL url)
throws InvalidMidiDataException, IOException
{
- Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
+ Iterator<MidiFileReader> readers =
+ ServiceFactory.lookupProviders(MidiFileReader.class);
while (readers.hasNext())
{
- MidiFileReader sr = (MidiFileReader) readers.next();
+ MidiFileReader sr = readers.next();
Sequence sq = sr.getSequence(url);
if (sq != null)
return sq;
@@ -394,10 +401,11 @@ public class MidiSystem
public static Sequence getSequence(File file)
throws InvalidMidiDataException, IOException
{
- Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
+ Iterator<MidiFileReader> readers =
+ ServiceFactory.lookupProviders(MidiFileReader.class);
while (readers.hasNext())
{
- MidiFileReader sr = (MidiFileReader) readers.next();
+ MidiFileReader sr = readers.next();
Sequence sq = sr.getSequence(file);
if (sq != null)
return sq;
@@ -417,10 +425,11 @@ public class MidiSystem
boolean supported[] = new boolean[3];
// The number of supported formats.
int count = 0;
- Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
+ Iterator<MidiFileWriter> writers =
+ ServiceFactory.lookupProviders(MidiFileWriter.class);
while (writers.hasNext())
{
- MidiFileWriter fw = (MidiFileWriter) writers.next();
+ MidiFileWriter fw = writers.next();
int types[] = fw.getMidiFileTypes();
for (int i = types.length; i > 0;)
{
@@ -449,10 +458,10 @@ public class MidiSystem
*/
public static boolean isFileTypeSupported(int fileType)
{
- Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
+ Iterator<MidiFileWriter> writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
while (writers.hasNext())
{
- MidiFileWriter fw = (MidiFileWriter) writers.next();
+ MidiFileWriter fw = writers.next();
if (fw.isFileTypeSupported(fileType))
return true;
@@ -473,7 +482,7 @@ public class MidiSystem
boolean supported[] = new boolean[3];
// The number of supported formats.
int count = 0;
- Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
+ Iterator<MidiFileWriter> writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
while (writers.hasNext())
{
MidiFileWriter fw = (MidiFileWriter) writers.next();
@@ -507,7 +516,7 @@ public class MidiSystem
*/
public static boolean isFileTypeSupported(int fileType, Sequence sequence)
{
- Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
+ Iterator<MidiFileWriter> writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
while (writers.hasNext())
{
MidiFileWriter fw = (MidiFileWriter) writers.next();
@@ -531,7 +540,7 @@ public class MidiSystem
public static int write(Sequence in, int fileType, OutputStream out)
throws IOException
{
- Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
+ Iterator<MidiFileWriter> writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
while (writers.hasNext())
{
MidiFileWriter fw = (MidiFileWriter) writers.next();
@@ -556,7 +565,7 @@ public class MidiSystem
public static int write(Sequence in, int fileType, File out)
throws IOException
{
- Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
+ Iterator<MidiFileWriter> writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
while (writers.hasNext())
{
MidiFileWriter fw = (MidiFileWriter) writers.next();
diff --git a/libjava/classpath/javax/sound/midi/Receiver.java b/libjava/classpath/javax/sound/midi/Receiver.java
index bc660d0d62d..535c9df65cd 100644
--- a/libjava/classpath/javax/sound/midi/Receiver.java
+++ b/libjava/classpath/javax/sound/midi/Receiver.java
@@ -47,6 +47,7 @@ package javax.sound.midi;
*
*/
public interface Receiver
+ extends AutoCloseable
{
/**
* Send a MIDI message and timestamp. Some receivers don't support
diff --git a/libjava/classpath/javax/sound/midi/SoundbankResource.java b/libjava/classpath/javax/sound/midi/SoundbankResource.java
index 0b4675b106f..6c3a4f28bf2 100644
--- a/libjava/classpath/javax/sound/midi/SoundbankResource.java
+++ b/libjava/classpath/javax/sound/midi/SoundbankResource.java
@@ -1,5 +1,5 @@
/* SoundbankResource.java -- An audio resource from a sound bank
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2012 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ public abstract class SoundbankResource
{
private final Soundbank soundbank;
private final String name;
- private final Class dataClass;
+ private final Class<?> dataClass;
/**
* Create a SoundbankResource object.
diff --git a/libjava/classpath/javax/sound/midi/Track.java b/libjava/classpath/javax/sound/midi/Track.java
index 550d2e1c4ab..9c392577f2c 100644
--- a/libjava/classpath/javax/sound/midi/Track.java
+++ b/libjava/classpath/javax/sound/midi/Track.java
@@ -1,5 +1,5 @@
/* Track.java -- A track of MIDI events
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2012 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -54,10 +54,10 @@ public class Track
/**
* The list of MidiEvents for this track.
*/
- Vector events = new Vector();
+ Vector<MidiEvent> events = new Vector<MidiEvent>();
// A HashSet to speed processing
- private HashSet eventSet = new HashSet();
+ private HashSet<MidiEvent> eventSet = new HashSet<MidiEvent>();
// This is only instantiable within this package.
Track()
@@ -83,7 +83,7 @@ public class Track
long targetTick = event.getTick();
int i = events.size() - 1;
- while (i >= 0 && (((MidiEvent)events.get(i)).getTick() > targetTick))
+ while (i >= 0 && (events.get(i).getTick() > targetTick))
i--;
events.add(i+1, event);
return true;
@@ -127,7 +127,7 @@ public class Track
{
try
{
- return (MidiEvent) events.get(index);
+ return events.get(index);
}
catch (IndexOutOfBoundsException e)
{
@@ -158,7 +158,7 @@ public class Track
synchronized (events)
{
int size = events.size();
- return ((MidiEvent) events.get(size - 1)).getTick();
+ return events.get(size - 1).getTick();
}
}
}
diff --git a/libjava/classpath/javax/sound/midi/Transmitter.java b/libjava/classpath/javax/sound/midi/Transmitter.java
index ab81cc8198d..2c62795a338 100644
--- a/libjava/classpath/javax/sound/midi/Transmitter.java
+++ b/libjava/classpath/javax/sound/midi/Transmitter.java
@@ -47,6 +47,7 @@ package javax.sound.midi;
*
*/
public interface Transmitter
+ extends AutoCloseable
{
/**
* Set the Receiver to which MIDI events will be sent.