01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: package javax.sound.sampled;
19:
20: public interface Mixer extends Line {
21:
22: public static class Info {
23: private String name;
24: private String vendor;
25: private String description;
26: private String version;
27:
28: protected Info(String name, String vendor, String description,
29: String version) {
30: this .name = name;
31: this .vendor = vendor;
32: this .description = description;
33: this .version = version;
34: }
35:
36: @Override
37: public final boolean equals(Object another) {
38: return this == another;
39: }
40:
41: public final String getDescription() {
42: return description;
43: }
44:
45: public final String getName() {
46: return name;
47: }
48:
49: public final String getVendor() {
50: return vendor;
51: }
52:
53: public final String getVersion() {
54: return version;
55: }
56:
57: @Override
58: public final int hashCode() {
59: return name.hashCode() + vendor.hashCode()
60: + description.hashCode() + version.hashCode();
61: }
62:
63: @Override
64: public final String toString() {
65: return name + ", version " + version; //$NON-NLS-1$
66: }
67: }
68:
69: Line getLine(Line.Info info) throws LineUnavailableException;
70:
71: int getMaxLines(Line.Info info);
72:
73: Mixer.Info getMixerInfo();
74:
75: Line.Info[] getSourceLineInfo();
76:
77: Line.Info[] getSourceLineInfo(Line.Info info);
78:
79: Line[] getSourceLines();
80:
81: Line.Info[] getTargetLineInfo();
82:
83: Line.Info[] getTargetLineInfo(Line.Info info);
84:
85: Line[] getTargetLines();
86:
87: boolean isLineSupported(Line.Info info);
88:
89: boolean isSynchronizationSupported(Line[] lines,
90: boolean maintainSync);
91:
92: void synchronize(Line[] lines, boolean maintainSync);
93:
94: void unsynchronize(Line[] lines);
95: }
|