Skip to content

Commit

Permalink
Android: don't add telephony device, as it cannot be opened
Browse files Browse the repository at this point in the history
  • Loading branch information
1bsyl committed Apr 14, 2023
1 parent c335e3d commit f38cb0d
Showing 1 changed file with 24 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import android.util.Log;

import java.util.Arrays;
import java.util.ArrayList;

public class SDLAudioManager {
protected static final String TAG = "SDLAudio";
Expand Down Expand Up @@ -320,13 +321,30 @@ private static void unregisterAudioDeviceCallback(Context context) {
}
}

private static int[] ArrayListToArray(ArrayList<Integer> integers)
{
int[] ret = new int[integers.size()];
for (int i=0; i < ret.length; i++) {
ret[i] = integers.get(i).intValue();
}
return ret;
}

/**
* This method is called by SDL using JNI.
*/
public static int[] getAudioOutputDevices() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
return Arrays.stream(audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)).mapToInt(AudioDeviceInfo::getId).toArray();
ArrayList<Integer> arrlist = new ArrayList<Integer>();
for (AudioDeviceInfo dev : audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)) {
/* Device cannot be opened */
if (dev.getType() == AudioDeviceInfo.TYPE_TELEPHONY) {
continue;
}
arrlist.add(dev.getId());
}
return ArrayListToArray(arrlist);
} else {
return NO_DEVICES;
}
Expand All @@ -338,7 +356,11 @@ public static int[] getAudioOutputDevices() {
public static int[] getAudioInputDevices() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
return Arrays.stream(audioManager.getDevices(AudioManager.GET_DEVICES_INPUTS)).mapToInt(AudioDeviceInfo::getId).toArray();
ArrayList<Integer> arrlist = new ArrayList<Integer>();
for (AudioDeviceInfo dev : audioManager.getDevices(AudioManager.GET_DEVICES_INPUTS)) {
arrlist.add(dev.getId());
}
return ArrayListToArray(arrlist);
} else {
return NO_DEVICES;
}
Expand Down

0 comments on commit f38cb0d

Please sign in to comment.