< prev index next >

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

Print this page


   1 /*
   2  * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */

  25 package com.sun.media.sound;
  26 
  27 import java.io.BufferedReader;
  28 import java.io.File;
  29 import java.io.IOException;
  30 import java.io.InputStream;
  31 import java.io.InputStreamReader;
  32 import java.net.URL;
  33 import java.net.URLClassLoader;
  34 import java.util.ArrayList;


  35 import javax.sound.midi.InvalidMidiDataException;
  36 import javax.sound.midi.Soundbank;
  37 import javax.sound.midi.spi.SoundbankReader;
  38 
  39 import sun.reflect.misc.ReflectUtil;
  40 
  41 /**
  42  * JarSoundbankReader is used to read soundbank object from jar files.
  43  *
  44  * @author Karl Helgason
  45  */
  46 public final class JARSoundbankReader extends SoundbankReader {
  47 
  48     private static boolean isZIP(URL url) {
  49         boolean ok = false;
  50         try {
  51             InputStream stream = url.openStream();
  52             try {
  53                 byte[] buff = new byte[4];
  54                 ok = stream.read(buff) == 4;


  95                 }
  96                 line = r.readLine();
  97             }
  98         }
  99         finally
 100         {
 101             stream.close();
 102         }
 103         if (soundbanks.size() == 0)
 104             return null;
 105         if (soundbanks.size() == 1)
 106             return soundbanks.get(0);
 107         SimpleSoundbank sbk = new SimpleSoundbank();
 108         for (Soundbank soundbank : soundbanks)
 109             sbk.addAllInstruments(soundbank);
 110         return sbk;
 111     }
 112 
 113     public Soundbank getSoundbank(InputStream stream)
 114             throws InvalidMidiDataException, IOException {

 115         return null;
 116     }
 117 
 118     public Soundbank getSoundbank(File file)
 119             throws InvalidMidiDataException, IOException {
 120         return getSoundbank(file.toURI().toURL());
 121     }
 122 }
   1 /*
   2  * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package com.sun.media.sound;
  27 
  28 import java.io.BufferedReader;
  29 import java.io.File;
  30 import java.io.IOException;
  31 import java.io.InputStream;
  32 import java.io.InputStreamReader;
  33 import java.net.URL;
  34 import java.net.URLClassLoader;
  35 import java.util.ArrayList;
  36 import java.util.Objects;
  37 
  38 import javax.sound.midi.InvalidMidiDataException;
  39 import javax.sound.midi.Soundbank;
  40 import javax.sound.midi.spi.SoundbankReader;
  41 
  42 import sun.reflect.misc.ReflectUtil;
  43 
  44 /**
  45  * JarSoundbankReader is used to read soundbank object from jar files.
  46  *
  47  * @author Karl Helgason
  48  */
  49 public final class JARSoundbankReader extends SoundbankReader {
  50 
  51     private static boolean isZIP(URL url) {
  52         boolean ok = false;
  53         try {
  54             InputStream stream = url.openStream();
  55             try {
  56                 byte[] buff = new byte[4];
  57                 ok = stream.read(buff) == 4;


  98                 }
  99                 line = r.readLine();
 100             }
 101         }
 102         finally
 103         {
 104             stream.close();
 105         }
 106         if (soundbanks.size() == 0)
 107             return null;
 108         if (soundbanks.size() == 1)
 109             return soundbanks.get(0);
 110         SimpleSoundbank sbk = new SimpleSoundbank();
 111         for (Soundbank soundbank : soundbanks)
 112             sbk.addAllInstruments(soundbank);
 113         return sbk;
 114     }
 115 
 116     public Soundbank getSoundbank(InputStream stream)
 117             throws InvalidMidiDataException, IOException {
 118         Objects.requireNonNull(stream);
 119         return null;
 120     }
 121 
 122     public Soundbank getSoundbank(File file)
 123             throws InvalidMidiDataException, IOException {
 124         return getSoundbank(file.toURI().toURL());
 125     }
 126 }
< prev index next >