6321N/A * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. 829N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 829N/A * This code is free software; you can redistribute it and/or modify it 829N/A * under the terms of the GNU General Public License version 2 only, as 2362N/A * published by the Free Software Foundation. Oracle designates this 829N/A * particular file as subject to the "Classpath" exception as provided 2362N/A * by Oracle in the LICENSE file that accompanied this code. 829N/A * This code is distributed in the hope that it will be useful, but WITHOUT 829N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 829N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 829N/A * version 2 for more details (a copy is included in the LICENSE file that 829N/A * accompanied this code). 829N/A * You should have received a copy of the GNU General Public License version 829N/A * 2 along with this work; if not, write to the Free Software Foundation, 829N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 829N/A * Soundfont sample storage. 829N/A * @author Karl Helgason 829N/A if (sampleFile != null) { 829N/A fis = new FileInputStream(sampleFile); 829N/A RIFFReader riff = new RIFFReader(fis); 829N/A if (!riff.getFormat().equals("RIFF")) { 829N/A throw new RIFFInvalidDataException( 829N/A "Input stream is not a valid RIFF stream!"); 829N/A if (!riff.getType().equals("sfbk")) { 829N/A throw new RIFFInvalidDataException( 829N/A "Input stream is not a valid SoundFont!"); 829N/A while (riff.hasNextChunk()) { 829N/A RIFFReader chunk = riff.nextChunk(); 829N/A if (chunk.getFormat().equals("LIST")) { 829N/A if (chunk.getType().equals("sdta")) { 829N/A while(chunk.hasNextChunk()) { 829N/A RIFFReader chunkchunk = chunk.nextChunk(); 829N/A if(chunkchunk.getFormat().equals("smpl")) { 829N/A chunkchunk.skip(sampleOffset); 829N/A return new AudioInputStream(chunkchunk, 829N/A } catch (Exception e) { 829N/A return new Throwable(e.toString()); 829N/A public void setData(File file, int offset, int length) { 829N/A this.sampleFile = file; 829N/A this.sampleOffset = offset; 829N/A this.sampleLen = length;