< prev index next >
src/java.desktop/share/classes/com/sun/media/sound/PortMixerProvider.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
@@ -102,18 +102,30 @@
}
public Mixer getMixer(Mixer.Info info) {
synchronized (PortMixerProvider.class) {
+ // if the default device is asked, we provide the mixer
+ // with SourceDataLine's
+ if (info == null) {
+ for (int i = 0; i < infos.length; i++) {
+ Mixer mixer = getDevice(infos[i]);
+ if (mixer.getSourceLineInfo().length > 0) {
+ return mixer;
+ }
+ }
+ }
+ // otherwise get the first mixer that matches
+ // the requested info object
for (int i = 0; i < infos.length; i++) {
if (infos[i].equals(info)) {
return getDevice(infos[i]);
}
}
}
- throw new IllegalArgumentException("Mixer " + info.toString()
- + " not supported by this provider.");
+ throw new IllegalArgumentException(
+ String.format("Mixer %s not supported by this provider", info));
}
private static Mixer getDevice(PortMixerInfo info) {
int index = info.getIndex();
< prev index next >