Merge "AudioService: more logs for audio mode changes" into oc-mr1-dev
am: 3e038bd4d6
Change-Id: I900b28cf8f0abd3ac57f99b7761d48e68f046541
This commit is contained in:
@@ -2546,13 +2546,15 @@ public class AudioService extends IAudioService.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
int status = AudioSystem.AUDIO_STATUS_OK;
|
int status = AudioSystem.AUDIO_STATUS_OK;
|
||||||
|
int actualMode;
|
||||||
do {
|
do {
|
||||||
|
actualMode = mode;
|
||||||
if (mode == AudioSystem.MODE_NORMAL) {
|
if (mode == AudioSystem.MODE_NORMAL) {
|
||||||
// get new mode from client at top the list if any
|
// get new mode from client at top the list if any
|
||||||
if (!mSetModeDeathHandlers.isEmpty()) {
|
if (!mSetModeDeathHandlers.isEmpty()) {
|
||||||
hdlr = mSetModeDeathHandlers.get(0);
|
hdlr = mSetModeDeathHandlers.get(0);
|
||||||
cb = hdlr.getBinder();
|
cb = hdlr.getBinder();
|
||||||
mode = hdlr.getMode();
|
actualMode = hdlr.getMode();
|
||||||
if (DEBUG_MODE) {
|
if (DEBUG_MODE) {
|
||||||
Log.w(TAG, " using mode=" + mode + " instead due to death hdlr at pid="
|
Log.w(TAG, " using mode=" + mode + " instead due to death hdlr at pid="
|
||||||
+ hdlr.mPid);
|
+ hdlr.mPid);
|
||||||
@@ -2576,12 +2578,11 @@ public class AudioService extends IAudioService.Stub
|
|||||||
hdlr.setMode(mode);
|
hdlr.setMode(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode != mMode) {
|
if (actualMode != mMode) {
|
||||||
status = AudioSystem.setPhoneState(mode);
|
status = AudioSystem.setPhoneState(actualMode);
|
||||||
if (status == AudioSystem.AUDIO_STATUS_OK) {
|
if (status == AudioSystem.AUDIO_STATUS_OK) {
|
||||||
if (DEBUG_MODE) { Log.v(TAG, " mode successfully set to " + mode); }
|
if (DEBUG_MODE) { Log.v(TAG, " mode successfully set to " + actualMode); }
|
||||||
mMode = mode;
|
mMode = actualMode;
|
||||||
mModeLogger.log(new PhoneStateEvent(caller, pid, mode));
|
|
||||||
} else {
|
} else {
|
||||||
if (hdlr != null) {
|
if (hdlr != null) {
|
||||||
mSetModeDeathHandlers.remove(hdlr);
|
mSetModeDeathHandlers.remove(hdlr);
|
||||||
@@ -2597,13 +2598,16 @@ public class AudioService extends IAudioService.Stub
|
|||||||
} while (status != AudioSystem.AUDIO_STATUS_OK && !mSetModeDeathHandlers.isEmpty());
|
} while (status != AudioSystem.AUDIO_STATUS_OK && !mSetModeDeathHandlers.isEmpty());
|
||||||
|
|
||||||
if (status == AudioSystem.AUDIO_STATUS_OK) {
|
if (status == AudioSystem.AUDIO_STATUS_OK) {
|
||||||
if (mode != AudioSystem.MODE_NORMAL) {
|
if (actualMode != AudioSystem.MODE_NORMAL) {
|
||||||
if (mSetModeDeathHandlers.isEmpty()) {
|
if (mSetModeDeathHandlers.isEmpty()) {
|
||||||
Log.e(TAG, "setMode() different from MODE_NORMAL with empty mode client stack");
|
Log.e(TAG, "setMode() different from MODE_NORMAL with empty mode client stack");
|
||||||
} else {
|
} else {
|
||||||
newModeOwnerPid = mSetModeDeathHandlers.get(0).getPid();
|
newModeOwnerPid = mSetModeDeathHandlers.get(0).getPid();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Note: newModeOwnerPid is always 0 when actualMode is MODE_NORMAL
|
||||||
|
mModeLogger.log(
|
||||||
|
new PhoneStateEvent(caller, pid, mode, newModeOwnerPid, actualMode));
|
||||||
int streamType = getActiveStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
|
int streamType = getActiveStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
|
||||||
int device = getDeviceForStream(streamType);
|
int device = getDeviceForStream(streamType);
|
||||||
int index = mStreamStates[mStreamVolumeAlias[streamType]].getIndex(device);
|
int index = mStreamStates[mStreamVolumeAlias[streamType]].getIndex(device);
|
||||||
|
|||||||
@@ -26,20 +26,27 @@ public class AudioServiceEvents {
|
|||||||
|
|
||||||
final static class PhoneStateEvent extends AudioEventLogger.Event {
|
final static class PhoneStateEvent extends AudioEventLogger.Event {
|
||||||
final String mPackage;
|
final String mPackage;
|
||||||
final int mPid;
|
final int mOwnerPid;
|
||||||
final int mMode;
|
final int mRequesterPid;
|
||||||
|
final int mRequestedMode;
|
||||||
|
final int mActualMode;
|
||||||
|
|
||||||
PhoneStateEvent(String callingPackage, int pid, int mode) {
|
PhoneStateEvent(String callingPackage, int requesterPid, int requestedMode,
|
||||||
|
int ownerPid, int actualMode) {
|
||||||
mPackage = callingPackage;
|
mPackage = callingPackage;
|
||||||
mPid = pid;
|
mRequesterPid = requesterPid;
|
||||||
mMode = mode;
|
mRequestedMode = requestedMode;
|
||||||
|
mOwnerPid = ownerPid;
|
||||||
|
mActualMode = actualMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String eventToString() {
|
public String eventToString() {
|
||||||
return new StringBuilder("setMode(").append(AudioSystem.modeToString(mMode))
|
return new StringBuilder("setMode(").append(AudioSystem.modeToString(mRequestedMode))
|
||||||
.append(") from package=").append(mPackage)
|
.append(") from package=").append(mPackage)
|
||||||
.append(" pid=").append(mPid).toString();
|
.append(" pid=").append(mRequesterPid)
|
||||||
|
.append(" selected mode=").append(AudioSystem.modeToString(mActualMode))
|
||||||
|
.append(" by pid=").append(mOwnerPid).toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user