Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/javax/sound/sampled/Mixers/PhantomMixers.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.AudioSystem;
25
import javax.sound.sampled.DataLine;
26
import javax.sound.sampled.Line;
27
import javax.sound.sampled.Mixer;
28
import javax.sound.sampled.SourceDataLine;
29
import javax.sound.sampled.TargetDataLine;
30
31
/**
32
* @test
33
* @bug 4794104
34
* @summary mixers are always present, independent of available soundcards
35
* @run main/manual PhantomMixers
36
*/
37
public class PhantomMixers {
38
39
public static void main(String args[]) throws Exception {
40
int SDLformats = 0;
41
int TDLformats = 0;
42
Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
43
for(int i=0; i<mixerInfo.length; i++){
44
Mixer.Info thisMixerInfo = mixerInfo[i];
45
System.out.println("Mixer #"+i+": "
46
+ thisMixerInfo.getName()
47
+ ": " + thisMixerInfo.getDescription());
48
Mixer mixer = AudioSystem.getMixer(thisMixerInfo);
49
Line.Info[] srcLineInfo = mixer.getSourceLineInfo();
50
Line.Info[] dstLineInfo = mixer.getTargetLineInfo();
51
int count = srcLineInfo.length + dstLineInfo.length;
52
System.out.print(" -> " + (srcLineInfo.length + dstLineInfo.length) + " line");
53
switch (count) {
54
case 0: System.out.println("s"); break;
55
case 1: System.out.println(""); break;
56
default: System.out.println("s:"); break;
57
}
58
int l;
59
for (l = 0; l < srcLineInfo.length; l++) {
60
System.out.println(" "+srcLineInfo[l].toString());
61
if (srcLineInfo[l].getLineClass() == SourceDataLine.class
62
&& (srcLineInfo[l] instanceof DataLine.Info)) {
63
SDLformats += ((DataLine.Info) srcLineInfo[l]).getFormats().length;
64
}
65
}
66
for (l = 0; l < dstLineInfo.length; l++) {
67
System.out.println(" "+dstLineInfo[l].toString());
68
if (dstLineInfo[l].getLineClass() == TargetDataLine.class
69
&& (dstLineInfo[l] instanceof DataLine.Info)) {
70
TDLformats += ((DataLine.Info) dstLineInfo[l]).getFormats().length;
71
}
72
}
73
}
74
if (mixerInfo.length == 0) {
75
System.out.println("[no mixers present]");
76
}
77
System.out.println(""+SDLformats+" total formats for SourceDataLines");
78
System.out.println(""+TDLformats+" total formats for TargetDataLines");
79
System.out.println("");
80
System.out.println("If there are audio devices correctly installed on your");
81
System.out.println("system, you should see at least one Mixer, and in total");
82
System.out.println("at least each one SourceDataLine and TargetDataLine, both");
83
System.out.println("providing at least one format.");
84
System.out.println("");
85
System.out.println("Now disable your soundcard and repeat the test.");
86
System.out.println("The corresponding mixer(s) should not provide any formats");
87
System.out.println("anymore. If you disable all available soundcards");
88
System.out.println("on your computer, the number of formats above should be");
89
System.out.println("0 for both line types (although mixers are allowed to exist).");
90
}
91
}
92
93