Loading media/java/android/media/AudioRecord.java +39 −21 Original line number Diff line number Diff line Loading @@ -394,6 +394,23 @@ public class AudioRecord implements AudioRouting * value here as no error checking is or can be done. */ /*package*/ AudioRecord(long nativeRecordInJavaObj) { mNativeRecorderInJavaObj = 0; mNativeCallbackCookie = 0; mNativeDeviceCallback = 0; // other initialization... if (nativeRecordInJavaObj != 0) { deferred_connect(nativeRecordInJavaObj); } else { mState = STATE_UNINITIALIZED; } } /** * @hide */ /* package */ void deferred_connect(long nativeRecordInJavaObj) { if (mState != STATE_INITIALIZED) { int[] session = { 0 }; int[] rates = { 0 }; //TODO: update native initialization when information about hardware init failure Loading @@ -419,6 +436,7 @@ public class AudioRecord implements AudioRouting mState = STATE_INITIALIZED; } } /** * Builder class for {@link AudioRecord} objects. Loading media/java/android/media/AudioTrack.java +39 −19 Original line number Diff line number Diff line Loading @@ -526,11 +526,18 @@ public class AudioTrack implements AudioRouting * the AudioTrackRoutingProxy subclass. * @param nativeTrackInJavaObj a C/C++ pointer to a native AudioTrack * (associated with an OpenSL ES player). * IMPORTANT: For "N", this method is ONLY called to setup a Java routing proxy, * i.e. IAndroidConfiguration::AcquireJavaProxy(). If we call with a 0 in nativeTrackInJavaObj * it means that the OpenSL player interface hasn't been realized, so there is no native * Audiotrack to connect to. In this case wait to call deferred_connect() until the * OpenSLES interface is realized. */ /*package*/ AudioTrack(long nativeTrackInJavaObj) { // "final"s mAttributes = null; mAppOps = null; mNativeTrackInJavaObj = 0; mJniData = 0; // remember which looper is associated with the AudioTrack instantiation Looper looper; Loading @@ -540,6 +547,18 @@ public class AudioTrack implements AudioRouting mInitializationLooper = looper; // other initialization... if (nativeTrackInJavaObj != 0) { deferred_connect(nativeTrackInJavaObj); } else { mState = STATE_UNINITIALIZED; } } /** * @hide */ /* package */ void deferred_connect(long nativeTrackInJavaObj) { if (mState != STATE_INITIALIZED) { // Note that for this native_setup, we are providing an already created/initialized // *Native* AudioTrack, so the attributes parameters to native_setup() are ignored. int[] session = { 0 }; Loading @@ -563,6 +582,7 @@ public class AudioTrack implements AudioRouting mState = STATE_INITIALIZED; } } /** * Builder class for {@link AudioTrack} objects. Loading Loading
media/java/android/media/AudioRecord.java +39 −21 Original line number Diff line number Diff line Loading @@ -394,6 +394,23 @@ public class AudioRecord implements AudioRouting * value here as no error checking is or can be done. */ /*package*/ AudioRecord(long nativeRecordInJavaObj) { mNativeRecorderInJavaObj = 0; mNativeCallbackCookie = 0; mNativeDeviceCallback = 0; // other initialization... if (nativeRecordInJavaObj != 0) { deferred_connect(nativeRecordInJavaObj); } else { mState = STATE_UNINITIALIZED; } } /** * @hide */ /* package */ void deferred_connect(long nativeRecordInJavaObj) { if (mState != STATE_INITIALIZED) { int[] session = { 0 }; int[] rates = { 0 }; //TODO: update native initialization when information about hardware init failure Loading @@ -419,6 +436,7 @@ public class AudioRecord implements AudioRouting mState = STATE_INITIALIZED; } } /** * Builder class for {@link AudioRecord} objects. Loading
media/java/android/media/AudioTrack.java +39 −19 Original line number Diff line number Diff line Loading @@ -526,11 +526,18 @@ public class AudioTrack implements AudioRouting * the AudioTrackRoutingProxy subclass. * @param nativeTrackInJavaObj a C/C++ pointer to a native AudioTrack * (associated with an OpenSL ES player). * IMPORTANT: For "N", this method is ONLY called to setup a Java routing proxy, * i.e. IAndroidConfiguration::AcquireJavaProxy(). If we call with a 0 in nativeTrackInJavaObj * it means that the OpenSL player interface hasn't been realized, so there is no native * Audiotrack to connect to. In this case wait to call deferred_connect() until the * OpenSLES interface is realized. */ /*package*/ AudioTrack(long nativeTrackInJavaObj) { // "final"s mAttributes = null; mAppOps = null; mNativeTrackInJavaObj = 0; mJniData = 0; // remember which looper is associated with the AudioTrack instantiation Looper looper; Loading @@ -540,6 +547,18 @@ public class AudioTrack implements AudioRouting mInitializationLooper = looper; // other initialization... if (nativeTrackInJavaObj != 0) { deferred_connect(nativeTrackInJavaObj); } else { mState = STATE_UNINITIALIZED; } } /** * @hide */ /* package */ void deferred_connect(long nativeTrackInJavaObj) { if (mState != STATE_INITIALIZED) { // Note that for this native_setup, we are providing an already created/initialized // *Native* AudioTrack, so the attributes parameters to native_setup() are ignored. int[] session = { 0 }; Loading @@ -563,6 +582,7 @@ public class AudioTrack implements AudioRouting mState = STATE_INITIALIZED; } } /** * Builder class for {@link AudioTrack} objects. Loading