Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/java.desktop/share/classes/javax/sound/midi/spi/SoundbankReader.java
41171 views
1
/*
2
* Copyright (c) 1999, 2020, 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 javax.sound.midi.spi;
27
28
import java.io.File;
29
import java.io.IOException;
30
import java.io.InputStream;
31
import java.net.URL;
32
33
import javax.sound.midi.InvalidMidiDataException;
34
import javax.sound.midi.Soundbank;
35
import javax.sound.midi.Synthesizer;
36
37
/**
38
* A {@code SoundbankReader} supplies soundbank file-reading services. Concrete
39
* subclasses of {@code SoundbankReader} parse a given soundbank file, producing
40
* a {@link Soundbank} object that can be loaded into a {@link Synthesizer}.
41
*
42
* @author Kara Kytle
43
* @since 1.3
44
*/
45
public abstract class SoundbankReader {
46
47
/**
48
* Constructor for subclasses to call.
49
*/
50
protected SoundbankReader() {}
51
52
/**
53
* Obtains a soundbank object from the {@code URL} provided.
54
*
55
* @param url {@code URL} representing the soundbank
56
* @return soundbank object
57
* @throws InvalidMidiDataException if the {@code URL} does not point to
58
* valid MIDI soundbank data recognized by this soundbank reader
59
* @throws IOException if an I/O error occurs
60
* @throws NullPointerException if {@code url} is {@code null}
61
*/
62
public abstract Soundbank getSoundbank(URL url)
63
throws InvalidMidiDataException, IOException;
64
65
/**
66
* Obtains a soundbank object from the {@code InputStream} provided.
67
*
68
* @param stream {@code InputStream} representing the soundbank
69
* @return soundbank object
70
* @throws InvalidMidiDataException if the stream does not point to valid
71
* MIDI soundbank data recognized by this soundbank reader
72
* @throws IOException if an I/O error occurs
73
* @throws NullPointerException if {@code stream} is {@code null}
74
*/
75
public abstract Soundbank getSoundbank(InputStream stream)
76
throws InvalidMidiDataException, IOException;
77
78
/**
79
* Obtains a soundbank object from the {@code File} provided.
80
*
81
* @param file the {@code File} representing the soundbank
82
* @return soundbank object
83
* @throws InvalidMidiDataException if the file does not point to valid MIDI
84
* soundbank data recognized by this soundbank reader
85
* @throws IOException if an I/O error occurs
86
* @throws NullPointerException if {@code file} is {@code null}
87
*/
88
public abstract Soundbank getSoundbank(File file)
89
throws InvalidMidiDataException, IOException;
90
}
91
92