Loading media/java/android/media/AudioManager.java +52 −10 Original line number Diff line number Diff line Loading @@ -3402,7 +3402,17 @@ public class AudioManager { * @hide */ public static int listAudioPorts(ArrayList<AudioPort> ports) { return updateAudioPortCache(ports, null); return updateAudioPortCache(ports, null, null); } /** * Returns a list of descriptors for all audio ports managed by the audio framework as * it was before the last update calback. * @param ports An AudioPort ArrayList where the list will be returned. * @hide */ public static int listPreviousAudioPorts(ArrayList<AudioPort> ports) { return updateAudioPortCache(null, null, ports); } /** Loading @@ -3411,9 +3421,36 @@ public class AudioManager { * @hide */ public static int listAudioDevicePorts(ArrayList<AudioDevicePort> devices) { if (devices == null) { return ERROR_BAD_VALUE; } ArrayList<AudioPort> ports = new ArrayList<AudioPort>(); int status = updateAudioPortCache(ports, null, null); if (status == SUCCESS) { filterDevicePorts(ports, devices); } return status; } /** * Specialized version of listPreviousAudioPorts() listing only audio devices (AudioDevicePort) * @see listPreviousAudioPorts(ArrayList<AudioPort>) * @hide */ public static int listPreviousAudioDevicePorts(ArrayList<AudioDevicePort> devices) { if (devices == null) { return ERROR_BAD_VALUE; } ArrayList<AudioPort> ports = new ArrayList<AudioPort>(); int status = updateAudioPortCache(ports, null); int status = updateAudioPortCache(null, null, ports); if (status == SUCCESS) { filterDevicePorts(ports, devices); } return status; } private static void filterDevicePorts(ArrayList<AudioPort> ports, ArrayList<AudioDevicePort> devices) { devices.clear(); for (int i = 0; i < ports.size(); i++) { if (ports.get(i) instanceof AudioDevicePort) { Loading @@ -3421,8 +3458,6 @@ public class AudioManager { } } } return status; } /** * Create a connection between two or more devices. The framework will reject the request if Loading Loading @@ -3474,7 +3509,7 @@ public class AudioManager { * @hide */ public static int listAudioPatches(ArrayList<AudioPatch> patches) { return updateAudioPortCache(null, patches); return updateAudioPortCache(null, patches, null); } /** Loading Loading @@ -3540,6 +3575,7 @@ public class AudioManager { static final int AUDIOPORT_GENERATION_INIT = 0; static Integer sAudioPortGeneration = new Integer(AUDIOPORT_GENERATION_INIT); static ArrayList<AudioPort> sAudioPortsCached = new ArrayList<AudioPort>(); static ArrayList<AudioPort> sPreviousAudioPortsCached = new ArrayList<AudioPort>(); static ArrayList<AudioPatch> sAudioPatchesCached = new ArrayList<AudioPatch>(); static int resetAudioPortGeneration() { Loading @@ -3551,7 +3587,8 @@ public class AudioManager { return generation; } static int updateAudioPortCache(ArrayList<AudioPort> ports, ArrayList<AudioPatch> patches) { static int updateAudioPortCache(ArrayList<AudioPort> ports, ArrayList<AudioPatch> patches, ArrayList<AudioPort> previousPorts) { synchronized (sAudioPortGeneration) { if (sAudioPortGeneration == AUDIOPORT_GENERATION_INIT) { Loading Loading @@ -3610,6 +3647,7 @@ public class AudioManager { } } sPreviousAudioPortsCached = sAudioPortsCached; sAudioPortsCached = newPorts; sAudioPatchesCached = newPatches; sAudioPortGeneration = portGeneration[0]; Loading @@ -3622,6 +3660,10 @@ public class AudioManager { patches.clear(); patches.addAll(sAudioPatchesCached); } if (previousPorts != null) { previousPorts.clear(); previousPorts.addAll(sPreviousAudioPortsCached); } } return SUCCESS; } Loading media/java/android/media/AudioPortEventHandler.java +1 −1 Original line number Diff line number Diff line Loading @@ -84,7 +84,7 @@ class AudioPortEventHandler { ArrayList<AudioPort> ports = new ArrayList<AudioPort>(); ArrayList<AudioPatch> patches = new ArrayList<AudioPatch>(); if (msg.what != AUDIOPORT_EVENT_SERVICE_DIED) { int status = AudioManager.updateAudioPortCache(ports, patches); int status = AudioManager.updateAudioPortCache(ports, patches, null); if (status != AudioManager.SUCCESS) { return; } Loading Loading
media/java/android/media/AudioManager.java +52 −10 Original line number Diff line number Diff line Loading @@ -3402,7 +3402,17 @@ public class AudioManager { * @hide */ public static int listAudioPorts(ArrayList<AudioPort> ports) { return updateAudioPortCache(ports, null); return updateAudioPortCache(ports, null, null); } /** * Returns a list of descriptors for all audio ports managed by the audio framework as * it was before the last update calback. * @param ports An AudioPort ArrayList where the list will be returned. * @hide */ public static int listPreviousAudioPorts(ArrayList<AudioPort> ports) { return updateAudioPortCache(null, null, ports); } /** Loading @@ -3411,9 +3421,36 @@ public class AudioManager { * @hide */ public static int listAudioDevicePorts(ArrayList<AudioDevicePort> devices) { if (devices == null) { return ERROR_BAD_VALUE; } ArrayList<AudioPort> ports = new ArrayList<AudioPort>(); int status = updateAudioPortCache(ports, null, null); if (status == SUCCESS) { filterDevicePorts(ports, devices); } return status; } /** * Specialized version of listPreviousAudioPorts() listing only audio devices (AudioDevicePort) * @see listPreviousAudioPorts(ArrayList<AudioPort>) * @hide */ public static int listPreviousAudioDevicePorts(ArrayList<AudioDevicePort> devices) { if (devices == null) { return ERROR_BAD_VALUE; } ArrayList<AudioPort> ports = new ArrayList<AudioPort>(); int status = updateAudioPortCache(ports, null); int status = updateAudioPortCache(null, null, ports); if (status == SUCCESS) { filterDevicePorts(ports, devices); } return status; } private static void filterDevicePorts(ArrayList<AudioPort> ports, ArrayList<AudioDevicePort> devices) { devices.clear(); for (int i = 0; i < ports.size(); i++) { if (ports.get(i) instanceof AudioDevicePort) { Loading @@ -3421,8 +3458,6 @@ public class AudioManager { } } } return status; } /** * Create a connection between two or more devices. The framework will reject the request if Loading Loading @@ -3474,7 +3509,7 @@ public class AudioManager { * @hide */ public static int listAudioPatches(ArrayList<AudioPatch> patches) { return updateAudioPortCache(null, patches); return updateAudioPortCache(null, patches, null); } /** Loading Loading @@ -3540,6 +3575,7 @@ public class AudioManager { static final int AUDIOPORT_GENERATION_INIT = 0; static Integer sAudioPortGeneration = new Integer(AUDIOPORT_GENERATION_INIT); static ArrayList<AudioPort> sAudioPortsCached = new ArrayList<AudioPort>(); static ArrayList<AudioPort> sPreviousAudioPortsCached = new ArrayList<AudioPort>(); static ArrayList<AudioPatch> sAudioPatchesCached = new ArrayList<AudioPatch>(); static int resetAudioPortGeneration() { Loading @@ -3551,7 +3587,8 @@ public class AudioManager { return generation; } static int updateAudioPortCache(ArrayList<AudioPort> ports, ArrayList<AudioPatch> patches) { static int updateAudioPortCache(ArrayList<AudioPort> ports, ArrayList<AudioPatch> patches, ArrayList<AudioPort> previousPorts) { synchronized (sAudioPortGeneration) { if (sAudioPortGeneration == AUDIOPORT_GENERATION_INIT) { Loading Loading @@ -3610,6 +3647,7 @@ public class AudioManager { } } sPreviousAudioPortsCached = sAudioPortsCached; sAudioPortsCached = newPorts; sAudioPatchesCached = newPatches; sAudioPortGeneration = portGeneration[0]; Loading @@ -3622,6 +3660,10 @@ public class AudioManager { patches.clear(); patches.addAll(sAudioPatchesCached); } if (previousPorts != null) { previousPorts.clear(); previousPorts.addAll(sPreviousAudioPortsCached); } } return SUCCESS; } Loading
media/java/android/media/AudioPortEventHandler.java +1 −1 Original line number Diff line number Diff line Loading @@ -84,7 +84,7 @@ class AudioPortEventHandler { ArrayList<AudioPort> ports = new ArrayList<AudioPort>(); ArrayList<AudioPatch> patches = new ArrayList<AudioPatch>(); if (msg.what != AUDIOPORT_EVENT_SERVICE_DIED) { int status = AudioManager.updateAudioPortCache(ports, patches); int status = AudioManager.updateAudioPortCache(ports, patches, null); if (status != AudioManager.SUCCESS) { return; } Loading