Skip to content

Commit 7e2d345

Browse files
committed
refactor audio renderer handling and deprecate legacy methods
1 parent 7cf8746 commit 7e2d345

4 files changed

Lines changed: 31 additions & 9 deletions

File tree

jme3-android/src/main/java/com/jme3/system/android/JmeAndroidSystem.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@ public JmeAndroidSystem(){
5151
});
5252
});
5353
}
54+
55+
/**
56+
* Returns the default Android audio renderer type.
57+
*
58+
* @return the default Android audio renderer type
59+
* @deprecated Use {@link AppSettings#getAudioRenderer()} and
60+
* {@link AppSettings#OPENAL} instead.
61+
*/
62+
@Deprecated
63+
public String getAudioRendererType() {
64+
return AppSettings.OPENAL;
65+
}
5466

5567
@Override
5668
public URL getPlatformAssetConfigURL() {

jme3-core/src/main/java/com/jme3/system/AppSettings.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,11 @@ public final class AppSettings extends HashMap<String, Object> {
224224

225225
public static final String ANGLE_GLES3 = "ANGLE_GLES3";
226226

227+
/**
228+
* Use the default OpenAL renderer for the current platform.
229+
*
230+
* @see AppSettings#setAudioRenderer(java.lang.String)
231+
*/
227232
public static final String OPENAL = "OPENAL";
228233

229234

@@ -233,15 +238,14 @@ public final class AppSettings extends HashMap<String, Object> {
233238
* NOTE: Supports Android 2.2+ platforms.
234239
*
235240
* @see AppSettings#setAudioRenderer(java.lang.String)
236-
* @deprecated This audio renderer has too many limitations. Use {@link #OPENAL} instead..
241+
* @deprecated This audio renderer has too many limitations. Use {@link #OPENAL} instead.
237242
*/
238243
@Deprecated
239244
public static final String ANDROID_MEDIAPLAYER = "MediaPlayer";
240245

241246
/**
242247
* Use the OpenAL Soft based renderer for Android audio capabilities.
243248
* <p>
244-
* This is the current default for Android platforms.
245249
* NOTE: Only to be used on Android 2.3+ platforms due to using OpenSL.
246250
*
247251
* @see AppSettings#setAudioRenderer(java.lang.String)
@@ -826,12 +830,13 @@ public void setCustomRenderer(Class<? extends JmeContext> clazz) {
826830
/**
827831
* Set the audio renderer to use. One of:<br>
828832
* <ul>
829-
* <li>AppSettings.LWJGL_OPENAL - Default for LWJGL</li>
833+
* <li>AppSettings.OPENAL - Default OpenAL renderer for the current platform</li>
834+
* <li>AppSettings.LWJGL_OPENAL - Deprecated LWJGL OpenAL renderer identifier</li>
830835
* <li>AppSettings.JOAL</li>
831836
* <li>null - Disable audio</li>
832837
* </ul>
833838
* @param audioRenderer
834-
* (Default: LWJGL)
839+
* (Default: AppSettings.OPENAL)
835840
*/
836841
public void setAudioRenderer(String audioRenderer) {
837842
putString("AudioRenderer", audioRenderer);
@@ -1266,7 +1271,7 @@ public boolean useJoysticks() {
12661271
/**
12671272
* Get the audio renderer
12681273
*
1269-
* @return the audio renderer's name, for example "LWJGL"
1274+
* @return the audio renderer's name, for example "OPENAL"
12701275
* @see #setAudioRenderer(java.lang.String)
12711276
*/
12721277
public String getAudioRenderer() {

jme3-desktop/src/main/java/com/jme3/system/JmeDesktopSystem.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,18 +257,22 @@ public AudioRenderer newAudioRenderer(AppSettings settings) {
257257
AL al;
258258
ALC alc;
259259
EFX efx;
260-
if (settings.getAudioRenderer().startsWith("LWJGL") || settings.getAudioRenderer().equals(AppSettings.OPENAL)) {
260+
String audioRenderer = settings.getAudioRenderer();
261+
if (audioRenderer == null) {
262+
return null;
263+
}
264+
if (audioRenderer.startsWith("LWJGL") || AppSettings.OPENAL.equals(audioRenderer)) {
261265
al = newObject("com.jme3.audio.lwjgl.LwjglAL");
262266
alc = newObject("com.jme3.audio.lwjgl.LwjglALC");
263267
efx = newObject("com.jme3.audio.lwjgl.LwjglEFX");
264-
} else if (settings.getAudioRenderer().startsWith("JOAL")) {
268+
} else if (audioRenderer.startsWith("JOAL")) {
265269
al = newObject("com.jme3.audio.joal.JoalAL");
266270
alc = newObject("com.jme3.audio.joal.JoalALC");
267271
efx = newObject("com.jme3.audio.joal.JoalEFX");
268272
} else {
269273
throw new UnsupportedOperationException(
270274
"Unrecognizable audio renderer specified: "
271-
+ settings.getAudioRenderer());
275+
+ audioRenderer);
272276
}
273277

274278
if (al == null || alc == null || efx == null) {

jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglContext.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,8 @@ protected void loadNatives() {
224224
if (JmeSystem.isLowPermissions()) {
225225
return;
226226
}
227-
if (AppSettings.LWJGL_OPENAL.equals(settings.getAudioRenderer())) {
227+
String audioRenderer = settings.getAudioRenderer();
228+
if (AppSettings.LWJGL_OPENAL.equals(audioRenderer) || AppSettings.OPENAL.equals(audioRenderer)) {
228229
NativeLibraryLoader.loadNativeLibrary(NativeLibraries.OpenAL.getName(), true);
229230
}
230231
if (settings.useJoysticks()) {

0 commit comments

Comments
 (0)