< prev index next >

src/java.desktop/share/classes/com/sun/media/sound/DLSSoundbank.java

Print this page

        

*** 20,29 **** --- 20,30 ---- * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ + package com.sun.media.sound; import java.io.File; import java.io.FileInputStream; import java.io.IOException;
*** 40,52 **** import javax.sound.midi.Instrument; import javax.sound.midi.Patch; import javax.sound.midi.Soundbank; import javax.sound.midi.SoundbankResource; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; - import javax.sound.sampled.AudioFormat.Encoding; /** * A DLS Level 1 and Level 2 soundbank reader (from files/url/streams). * * @author Karl Helgason --- 41,53 ---- import javax.sound.midi.Instrument; import javax.sound.midi.Patch; import javax.sound.midi.Soundbank; import javax.sound.midi.SoundbankResource; import javax.sound.sampled.AudioFormat; + import javax.sound.sampled.AudioFormat.Encoding; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; /** * A DLS Level 1 and Level 2 soundbank reader (from files/url/streams). * * @author Karl Helgason
*** 98,111 **** --- 99,114 ---- d.x7 = riff.readUnsignedByte(); d.x8 = riff.readUnsignedByte(); return d; } + @Override public int hashCode() { return (int)i1; } + @Override public boolean equals(Object obj) { if (!(obj instanceof DLSID)) { return false; } DLSID t = (DLSID) obj;
*** 174,185 **** private long major = -1; private long minor = -1; private final DLSInfo info = new DLSInfo(); ! private final List<DLSInstrument> instruments = new ArrayList<DLSInstrument>(); ! private final List<DLSSample> samples = new ArrayList<DLSSample>(); private boolean largeFormat = false; private File sampleFile; public DLSSoundbank() { --- 177,188 ---- private long major = -1; private long minor = -1; private final DLSInfo info = new DLSInfo(); ! private final List<DLSInstrument> instruments = new ArrayList<>(); ! private final List<DLSSample> samples = new ArrayList<>(); private boolean largeFormat = false; private File sampleFile; public DLSSoundbank() {
*** 298,308 **** private boolean readCdlChunk(RIFFReader riff) throws IOException { DLSID uuid; long x; long y; ! Stack<Long> stack = new Stack<Long>(); while (riff.available() != 0) { int opcode = riff.readUnsignedShort(); switch (opcode) { case DLS_CDL_AND: --- 301,311 ---- private boolean readCdlChunk(RIFFReader riff) throws IOException { DLSID uuid; long x; long y; ! Stack<Long> stack = new Stack<>(); while (riff.available() != 0) { int opcode = riff.readUnsignedShort(); switch (opcode) { case DLS_CDL_AND:
*** 480,490 **** } } } } if (chunk.getType().equals("lart")) { ! List<DLSModulator> modlist = new ArrayList<DLSModulator>(); while (chunk.hasNextChunk()) { RIFFReader subchunk = chunk.nextChunk(); if (chunk.getFormat().equals("cdl ")) { if (!readCdlChunk(chunk)) { modlist.clear(); --- 483,493 ---- } } } } if (chunk.getType().equals("lart")) { ! List<DLSModulator> modlist = new ArrayList<>(); while (chunk.hasNextChunk()) { RIFFReader subchunk = chunk.nextChunk(); if (chunk.getFormat().equals("cdl ")) { if (!readCdlChunk(chunk)) { modlist.clear();
*** 496,506 **** } instrument.getModulators().addAll(modlist); } if (chunk.getType().equals("lar2")) { // support for DLS level 2 ART ! List<DLSModulator> modlist = new ArrayList<DLSModulator>(); while (chunk.hasNextChunk()) { RIFFReader subchunk = chunk.nextChunk(); if (chunk.getFormat().equals("cdl ")) { if (!readCdlChunk(chunk)) { modlist.clear(); --- 499,509 ---- } instrument.getModulators().addAll(modlist); } if (chunk.getType().equals("lar2")) { // support for DLS level 2 ART ! List<DLSModulator> modlist = new ArrayList<>(); while (chunk.hasNextChunk()) { RIFFReader subchunk = chunk.nextChunk(); if (chunk.getFormat().equals("cdl ")) { if (!readCdlChunk(chunk)) { modlist.clear();
*** 580,599 **** modulator.scale = riff.readInt(); modulators.add(modulator); } } ! private Map<DLSRegion, Long> temp_rgnassign = new HashMap<DLSRegion, Long>(); private boolean readRgnChunk(DLSRegion split, RIFFReader riff) throws IOException { while (riff.hasNextChunk()) { RIFFReader chunk = riff.nextChunk(); String format = chunk.getFormat(); if (format.equals("LIST")) { if (chunk.getType().equals("lart")) { ! List<DLSModulator> modlist = new ArrayList<DLSModulator>(); while (chunk.hasNextChunk()) { RIFFReader subchunk = chunk.nextChunk(); if (chunk.getFormat().equals("cdl ")) { if (!readCdlChunk(chunk)) { modlist.clear(); --- 583,602 ---- modulator.scale = riff.readInt(); modulators.add(modulator); } } ! private Map<DLSRegion, Long> temp_rgnassign = new HashMap<>(); private boolean readRgnChunk(DLSRegion split, RIFFReader riff) throws IOException { while (riff.hasNextChunk()) { RIFFReader chunk = riff.nextChunk(); String format = chunk.getFormat(); if (format.equals("LIST")) { if (chunk.getType().equals("lart")) { ! List<DLSModulator> modlist = new ArrayList<>(); while (chunk.hasNextChunk()) { RIFFReader subchunk = chunk.nextChunk(); if (chunk.getFormat().equals("cdl ")) { if (!readCdlChunk(chunk)) { modlist.clear();
*** 605,615 **** } split.getModulators().addAll(modlist); } if (chunk.getType().equals("lar2")) { // support for DLS level 2 ART ! List<DLSModulator> modlist = new ArrayList<DLSModulator>(); while (chunk.hasNextChunk()) { RIFFReader subchunk = chunk.nextChunk(); if (chunk.getFormat().equals("cdl ")) { if (!readCdlChunk(chunk)) { modlist.clear(); --- 608,618 ---- } split.getModulators().addAll(modlist); } if (chunk.getType().equals("lar2")) { // support for DLS level 2 ART ! List<DLSModulator> modlist = new ArrayList<>(); while (chunk.hasNextChunk()) { RIFFReader subchunk = chunk.nextChunk(); if (chunk.getFormat().equals("cdl ")) { if (!readCdlChunk(chunk)) { modlist.clear();
*** 900,910 **** for (int i = 0; i < samples.size(); i++) ptbl.writeUnsignedInt(0); RIFFWriter wvpl = writer.writeList("wvpl"); long off = wvpl.getFilePointer(); ! List<Long> offsettable = new ArrayList<Long>(); for (DLSSample sample : samples) { offsettable.add(Long.valueOf(wvpl.getFilePointer() - off)); writeSample(wvpl.writeList("wave"), sample); } --- 903,913 ---- for (int i = 0; i < samples.size(); i++) ptbl.writeUnsignedInt(0); RIFFWriter wvpl = writer.writeList("wvpl"); long off = wvpl.getFilePointer(); ! List<Long> offsettable = new ArrayList<>(); for (DLSSample sample : samples) { offsettable.add(Long.valueOf(wvpl.getFilePointer() - off)); writeSample(wvpl.writeList("wave"), sample); }
*** 1177,1198 **** --- 1180,1205 ---- public DLSInfo getInfo() { return info; } + @Override public String getName() { return info.name; } + @Override public String getVersion() { return major + "." + minor; } + @Override public String getVendor() { return info.engineers; } + @Override public String getDescription() { return info.comments; } public void setName(String s) {
*** 1205,1222 **** --- 1212,1231 ---- public void setDescription(String s) { info.comments = s; } + @Override public SoundbankResource[] getResources() { SoundbankResource[] resources = new SoundbankResource[samples.size()]; int j = 0; for (int i = 0; i < samples.size(); i++) resources[j++] = samples.get(i); return resources; } + @Override public DLSInstrument[] getInstruments() { DLSInstrument[] inslist_array = instruments.toArray(new DLSInstrument[instruments.size()]); Arrays.sort(inslist_array, new ModelInstrumentComparator()); return inslist_array;
*** 1224,1233 **** --- 1233,1243 ---- public DLSSample[] getSamples() { return samples.toArray(new DLSSample[samples.size()]); } + @Override public Instrument getInstrument(Patch patch) { int program = patch.getProgram(); int bank = patch.getBank(); boolean percussion = false; if (patch instanceof ModelPatch)
*** 1254,1266 **** samples.add((DLSSample) resource); } public void removeResource(SoundbankResource resource) { if (resource instanceof DLSInstrument) ! instruments.remove((DLSInstrument) resource); if (resource instanceof DLSSample) ! samples.remove((DLSSample) resource); } public void addInstrument(DLSInstrument resource) { instruments.add(resource); } --- 1264,1276 ---- samples.add((DLSSample) resource); } public void removeResource(SoundbankResource resource) { if (resource instanceof DLSInstrument) ! instruments.remove(resource); if (resource instanceof DLSSample) ! samples.remove(resource); } public void addInstrument(DLSInstrument resource) { instruments.add(resource); }
< prev index next >