java-1.8.0-openjdk/soundFontPatch.patch

54 lines
2.4 KiB
Diff

# HG changeset patch
# User omajid
# Date 1445973555 14400
# Node ID 3e006ea10d21a7fcf15725c51f2ab7ededce53ab
# Parent dfeaf40df80032570558c031f37f6630dc729e3f
8140620: Find and load default.sf2 as the default soundbank on Linux
Reviewed-by: serb
+++ openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java
--- openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java
@@ -671,6 +671,40 @@
actions.add(new PrivilegedAction<InputStream>() {
public InputStream run() {
if (System.getProperties().getProperty("os.name")
+ .startsWith("Linux")) {
+
+ File[] systemSoundFontsDir = new File[] {
+ /* Arch, Fedora, Mageia */
+ new File("/usr/share/soundfonts/"),
+ new File("/usr/local/share/soundfonts/"),
+ /* Debian, Gentoo, OpenSUSE, Ubuntu */
+ new File("/usr/share/sounds/sf2/"),
+ new File("/usr/local/share/sounds/sf2/"),
+ };
+
+ /*
+ * Look for a default.sf2
+ */
+ for (File systemSoundFontDir : systemSoundFontsDir) {
+ if (systemSoundFontDir.exists()) {
+ File defaultSoundFont = new File(systemSoundFontDir, "default.sf2");
+ if (defaultSoundFont.exists()) {
+ try {
+ return new FileInputStream(defaultSoundFont);
+ } catch (IOException e) {
+ // continue with lookup
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+ });
+
+ actions.add(new PrivilegedAction<InputStream>() {
+ public InputStream run() {
+ if (System.getProperties().getProperty("os.name")
.startsWith("Windows")) {
File gm_dls = new File(System.getenv("SystemRoot")
+ "\\system32\\drivers\\gm.dls");