Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/javax/sound/sampled/Lines/ClipOpenException.java
41153 views
1
/*
2
* Copyright (c) 2003, 2016, 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.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
import javax.sound.sampled.AudioFormat;
25
import javax.sound.sampled.AudioSystem;
26
import javax.sound.sampled.Clip;
27
import javax.sound.sampled.DataLine;
28
import javax.sound.sampled.Line;
29
import javax.sound.sampled.LineUnavailableException;
30
import javax.sound.sampled.Mixer;
31
import javax.sound.sampled.SourceDataLine;
32
import javax.sound.sampled.TargetDataLine;
33
34
/**
35
* @test
36
* @bug 4679187
37
* @summary Clip.open() throws unexpected Exceptions. verifies that clip,
38
* sourcedataline and targetdataline throw IllegalArgumentExcepotion if
39
* any field in the format is AudioFormat.NOT_SPECIFIED
40
*/
41
public class ClipOpenException {
42
static boolean failed = false;
43
44
static byte[] audioData = new byte[2048];
45
static AudioFormat[] formats = {
46
new AudioFormat(AudioSystem.NOT_SPECIFIED,
47
AudioSystem.NOT_SPECIFIED,
48
AudioSystem.NOT_SPECIFIED,
49
true, false),
50
new AudioFormat(0, 0, 0, true, false)
51
};
52
static AudioFormat infoFormat = new AudioFormat(44100.0f,
53
16,
54
1,
55
true, false);
56
static DataLine.Info clipInfo = new DataLine.Info(Clip.class, infoFormat);
57
static DataLine.Info sdlInfo = new DataLine.Info(SourceDataLine.class, infoFormat);
58
static DataLine.Info tdlInfo = new DataLine.Info(TargetDataLine.class, infoFormat);
59
60
61
public static void print(String s) {
62
System.out.print(s);
63
}
64
public static void println(String s) {
65
System.out.println(s);
66
}
67
68
public static void test(Line line) {
69
for (int format = 0; format < formats.length; format++) {
70
try {
71
println(" Opening the line with format "+(format+1));
72
if (line instanceof Clip) {
73
((Clip) line).open(formats[format], audioData, 0, audioData.length);
74
} else
75
if (line instanceof SourceDataLine) {
76
((SourceDataLine) line).open(formats[format]);
77
} else
78
if (line instanceof TargetDataLine) {
79
((TargetDataLine) line).open(formats[format]);
80
} else {
81
println(" Unknown type of line: "+line.getClass());
82
return;
83
}
84
println(" No exception! not OK.");
85
failed = true;
86
} catch (IllegalArgumentException iae) {
87
println(" IllegalArgumentException: "+iae.getMessage());
88
println(" OK");
89
} catch (LineUnavailableException lue) {
90
println(" LineUnavailableException: "+lue.getMessage());
91
println(" Probably incorrect, but may happen if the test system is correctly set up.");
92
} catch (Exception e) {
93
println(" Unexpected Exception: "+e.toString());
94
println(" NOT OK!");
95
failed = true;
96
}
97
println(" Closing line.");
98
line.close();
99
}
100
}
101
102
public static void main(String[] args) throws Exception {
103
Mixer.Info[] mixers = AudioSystem.getMixerInfo();
104
int succMixers = 0;
105
println("Using formats: ");
106
for (int i = 0 ; i<formats.length; i++) {
107
println(""+(i+1)+". "+formats[i]);
108
}
109
for (int i=0; i<mixers.length; i++) {
110
boolean succ = false;
111
try {
112
Mixer mixer = AudioSystem.getMixer(mixers[i]);
113
println("Mixer "+mixer.getMixerInfo()+":");
114
if (mixer.isLineSupported(clipInfo)) {
115
println("Getting clip from mixer...");
116
Clip clip = (Clip) mixer.getLine(clipInfo);
117
succ = true;
118
test(clip);
119
}
120
if (mixer.isLineSupported(sdlInfo)) {
121
println("Getting source data line from mixer...");
122
SourceDataLine sdl = (SourceDataLine) mixer.getLine(sdlInfo);
123
succ = true;
124
test(sdl);
125
}
126
if (mixer.isLineSupported(tdlInfo)) {
127
println("Getting target data line from mixer...");
128
TargetDataLine tdl = (TargetDataLine) mixer.getLine(tdlInfo);
129
succ = true;
130
test(tdl);
131
}
132
} catch (Exception e) {
133
e.printStackTrace();
134
}
135
if (succ) {
136
succMixers++;
137
}
138
}
139
if (succMixers == 0) {
140
println("No mixers available! ");
141
println("Cannot run test. NOT FAILED");
142
}
143
else if (failed) {
144
throw new Exception("Test FAILED");
145
}
146
println("Test passed.");
147
}
148
}
149
150