Loading core/proto/android/server/vibrator/vibratormanagerservice.proto +35 −3 Original line number Original line Diff line number Diff line Loading @@ -86,7 +86,7 @@ message VibrationAttributesProto { optional int32 flags = 3; optional int32 flags = 3; } } // Next id: 8 // Next Tag: 9 message VibrationProto { message VibrationProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional int64 start_time = 1; optional int64 start_time = 1; Loading @@ -94,11 +94,43 @@ message VibrationProto { optional CombinedVibrationEffectProto effect = 3; optional CombinedVibrationEffectProto effect = 3; optional CombinedVibrationEffectProto original_effect = 4; optional CombinedVibrationEffectProto original_effect = 4; optional VibrationAttributesProto attributes = 5; optional VibrationAttributesProto attributes = 5; optional int32 status = 6; optional int64 duration_ms = 7; optional int64 duration_ms = 7; optional Status status = 8; reserved 6; // prev int32 status // Also used by VibrationReported from frameworks/proto_logging/stats/atoms.proto. // Next Tag: 26 enum Status { UNKNOWN = 0; RUNNING = 1; FINISHED = 2; FINISHED_UNEXPECTED = 3; // Didn't terminate in the usual way. FORWARDED_TO_INPUT_DEVICES = 4; CANCELLED_BINDER_DIED = 5; CANCELLED_BY_SCREEN_OFF = 6; CANCELLED_BY_SETTINGS_UPDATE = 7; CANCELLED_BY_USER = 8; CANCELLED_BY_UNKNOWN_REASON = 9; CANCELLED_SUPERSEDED = 10; IGNORED_ERROR_APP_OPS = 11; IGNORED_ERROR_CANCELLING = 12; IGNORED_ERROR_SCHEDULING = 13; IGNORED_ERROR_TOKEN= 14; IGNORED_APP_OPS = 15; IGNORED_BACKGROUND = 16; IGNORED_UNKNOWN_VIBRATION = 17; IGNORED_UNSUPPORTED = 18; IGNORED_FOR_EXTERNAL = 19; IGNORED_FOR_HIGHER_IMPORTANCE = 20; IGNORED_FOR_ONGOING = 21; IGNORED_FOR_POWER = 22; IGNORED_FOR_RINGER_MODE = 23; IGNORED_FOR_SETTINGS = 24; IGNORED_SUPERSEDED = 25; } } } // Next id: 25 // Next Tag: 25 message VibratorManagerServiceDumpProto { message VibratorManagerServiceDumpProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; option (.android.msg_privacy).dest = DEST_AUTOMATIC; repeated int32 vibrator_ids = 1; repeated int32 vibrator_ids = 1; Loading services/core/java/com/android/server/vibrator/AbstractVibratorStep.java +4 −0 Original line number Original line Diff line number Diff line Loading @@ -96,6 +96,7 @@ abstract class AbstractVibratorStep extends Step { "Turning off vibrator " + getVibratorId()); "Turning off vibrator " + getVibratorId()); } } controller.off(); controller.off(); getVibration().stats().reportVibratorOff(); } } protected void changeAmplitude(float amplitude) { protected void changeAmplitude(float amplitude) { Loading @@ -104,6 +105,7 @@ abstract class AbstractVibratorStep extends Step { "Amplitude changed on vibrator " + getVibratorId() + " to " + amplitude); "Amplitude changed on vibrator " + getVibratorId() + " to " + amplitude); } } controller.setAmplitude(amplitude); controller.setAmplitude(amplitude); getVibration().stats().reportSetAmplitude(); } } /** /** Loading Loading @@ -147,6 +149,8 @@ abstract class AbstractVibratorStep extends Step { if (nextSegmentIndex >= effectSize && repeatIndex >= 0) { if (nextSegmentIndex >= effectSize && repeatIndex >= 0) { // Count the loops that were played. // Count the loops that were played. int loopSize = effectSize - repeatIndex; int loopSize = effectSize - repeatIndex; int loopSegmentsPlayed = nextSegmentIndex - repeatIndex; getVibration().stats().reportRepetition(loopSegmentsPlayed / loopSize); nextSegmentIndex = repeatIndex + ((nextSegmentIndex - effectSize) % loopSize); nextSegmentIndex = repeatIndex + ((nextSegmentIndex - effectSize) % loopSize); } } Step nextStep = conductor.nextVibrateStep(nextStartTime, controller, effect, Step nextStep = conductor.nextVibrateStep(nextStartTime, controller, effect, Loading services/core/java/com/android/server/vibrator/ComposePrimitivesVibratorStep.java +4 −3 Original line number Original line Diff line number Diff line Loading @@ -67,9 +67,10 @@ final class ComposePrimitivesVibratorStep extends AbstractVibratorStep { Slog.d(VibrationThread.TAG, "Compose " + primitives + " primitives on vibrator " Slog.d(VibrationThread.TAG, "Compose " + primitives + " primitives on vibrator " + controller.getVibratorInfo().getId()); + controller.getVibratorInfo().getId()); } } mVibratorOnResult = controller.on( PrimitiveSegment[] primitivesArray = primitives.toArray(new PrimitiveSegment[primitives.size()]), primitives.toArray(new PrimitiveSegment[primitives.size()]); getVibration().id); mVibratorOnResult = controller.on(primitivesArray, getVibration().id); getVibration().stats().reportComposePrimitives(mVibratorOnResult, primitivesArray); return nextSteps(/* segmentsPlayed= */ primitives.size()); return nextSteps(/* segmentsPlayed= */ primitives.size()); } finally { } finally { Loading services/core/java/com/android/server/vibrator/ComposePwleVibratorStep.java +3 −2 Original line number Original line Diff line number Diff line Loading @@ -68,8 +68,9 @@ final class ComposePwleVibratorStep extends AbstractVibratorStep { Slog.d(VibrationThread.TAG, "Compose " + pwles + " PWLEs on vibrator " Slog.d(VibrationThread.TAG, "Compose " + pwles + " PWLEs on vibrator " + controller.getVibratorInfo().getId()); + controller.getVibratorInfo().getId()); } } mVibratorOnResult = controller.on(pwles.toArray(new RampSegment[pwles.size()]), RampSegment[] pwlesArray = pwles.toArray(new RampSegment[pwles.size()]); getVibration().id); mVibratorOnResult = controller.on(pwlesArray, getVibration().id); getVibration().stats().reportComposePwle(mVibratorOnResult, pwlesArray); return nextSteps(/* segmentsPlayed= */ pwles.size()); return nextSteps(/* segmentsPlayed= */ pwles.size()); } finally { } finally { Loading services/core/java/com/android/server/vibrator/PerformPrebakedVibratorStep.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -62,6 +62,7 @@ final class PerformPrebakedVibratorStep extends AbstractVibratorStep { VibrationEffect fallback = getVibration().getFallback(prebaked.getEffectId()); VibrationEffect fallback = getVibration().getFallback(prebaked.getEffectId()); mVibratorOnResult = controller.on(prebaked, getVibration().id); mVibratorOnResult = controller.on(prebaked, getVibration().id); getVibration().stats().reportPerformEffect(mVibratorOnResult, prebaked); if (mVibratorOnResult == 0 && prebaked.shouldFallback() if (mVibratorOnResult == 0 && prebaked.shouldFallback() && (fallback instanceof VibrationEffect.Composed)) { && (fallback instanceof VibrationEffect.Composed)) { Loading Loading
core/proto/android/server/vibrator/vibratormanagerservice.proto +35 −3 Original line number Original line Diff line number Diff line Loading @@ -86,7 +86,7 @@ message VibrationAttributesProto { optional int32 flags = 3; optional int32 flags = 3; } } // Next id: 8 // Next Tag: 9 message VibrationProto { message VibrationProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional int64 start_time = 1; optional int64 start_time = 1; Loading @@ -94,11 +94,43 @@ message VibrationProto { optional CombinedVibrationEffectProto effect = 3; optional CombinedVibrationEffectProto effect = 3; optional CombinedVibrationEffectProto original_effect = 4; optional CombinedVibrationEffectProto original_effect = 4; optional VibrationAttributesProto attributes = 5; optional VibrationAttributesProto attributes = 5; optional int32 status = 6; optional int64 duration_ms = 7; optional int64 duration_ms = 7; optional Status status = 8; reserved 6; // prev int32 status // Also used by VibrationReported from frameworks/proto_logging/stats/atoms.proto. // Next Tag: 26 enum Status { UNKNOWN = 0; RUNNING = 1; FINISHED = 2; FINISHED_UNEXPECTED = 3; // Didn't terminate in the usual way. FORWARDED_TO_INPUT_DEVICES = 4; CANCELLED_BINDER_DIED = 5; CANCELLED_BY_SCREEN_OFF = 6; CANCELLED_BY_SETTINGS_UPDATE = 7; CANCELLED_BY_USER = 8; CANCELLED_BY_UNKNOWN_REASON = 9; CANCELLED_SUPERSEDED = 10; IGNORED_ERROR_APP_OPS = 11; IGNORED_ERROR_CANCELLING = 12; IGNORED_ERROR_SCHEDULING = 13; IGNORED_ERROR_TOKEN= 14; IGNORED_APP_OPS = 15; IGNORED_BACKGROUND = 16; IGNORED_UNKNOWN_VIBRATION = 17; IGNORED_UNSUPPORTED = 18; IGNORED_FOR_EXTERNAL = 19; IGNORED_FOR_HIGHER_IMPORTANCE = 20; IGNORED_FOR_ONGOING = 21; IGNORED_FOR_POWER = 22; IGNORED_FOR_RINGER_MODE = 23; IGNORED_FOR_SETTINGS = 24; IGNORED_SUPERSEDED = 25; } } } // Next id: 25 // Next Tag: 25 message VibratorManagerServiceDumpProto { message VibratorManagerServiceDumpProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; option (.android.msg_privacy).dest = DEST_AUTOMATIC; repeated int32 vibrator_ids = 1; repeated int32 vibrator_ids = 1; Loading
services/core/java/com/android/server/vibrator/AbstractVibratorStep.java +4 −0 Original line number Original line Diff line number Diff line Loading @@ -96,6 +96,7 @@ abstract class AbstractVibratorStep extends Step { "Turning off vibrator " + getVibratorId()); "Turning off vibrator " + getVibratorId()); } } controller.off(); controller.off(); getVibration().stats().reportVibratorOff(); } } protected void changeAmplitude(float amplitude) { protected void changeAmplitude(float amplitude) { Loading @@ -104,6 +105,7 @@ abstract class AbstractVibratorStep extends Step { "Amplitude changed on vibrator " + getVibratorId() + " to " + amplitude); "Amplitude changed on vibrator " + getVibratorId() + " to " + amplitude); } } controller.setAmplitude(amplitude); controller.setAmplitude(amplitude); getVibration().stats().reportSetAmplitude(); } } /** /** Loading Loading @@ -147,6 +149,8 @@ abstract class AbstractVibratorStep extends Step { if (nextSegmentIndex >= effectSize && repeatIndex >= 0) { if (nextSegmentIndex >= effectSize && repeatIndex >= 0) { // Count the loops that were played. // Count the loops that were played. int loopSize = effectSize - repeatIndex; int loopSize = effectSize - repeatIndex; int loopSegmentsPlayed = nextSegmentIndex - repeatIndex; getVibration().stats().reportRepetition(loopSegmentsPlayed / loopSize); nextSegmentIndex = repeatIndex + ((nextSegmentIndex - effectSize) % loopSize); nextSegmentIndex = repeatIndex + ((nextSegmentIndex - effectSize) % loopSize); } } Step nextStep = conductor.nextVibrateStep(nextStartTime, controller, effect, Step nextStep = conductor.nextVibrateStep(nextStartTime, controller, effect, Loading
services/core/java/com/android/server/vibrator/ComposePrimitivesVibratorStep.java +4 −3 Original line number Original line Diff line number Diff line Loading @@ -67,9 +67,10 @@ final class ComposePrimitivesVibratorStep extends AbstractVibratorStep { Slog.d(VibrationThread.TAG, "Compose " + primitives + " primitives on vibrator " Slog.d(VibrationThread.TAG, "Compose " + primitives + " primitives on vibrator " + controller.getVibratorInfo().getId()); + controller.getVibratorInfo().getId()); } } mVibratorOnResult = controller.on( PrimitiveSegment[] primitivesArray = primitives.toArray(new PrimitiveSegment[primitives.size()]), primitives.toArray(new PrimitiveSegment[primitives.size()]); getVibration().id); mVibratorOnResult = controller.on(primitivesArray, getVibration().id); getVibration().stats().reportComposePrimitives(mVibratorOnResult, primitivesArray); return nextSteps(/* segmentsPlayed= */ primitives.size()); return nextSteps(/* segmentsPlayed= */ primitives.size()); } finally { } finally { Loading
services/core/java/com/android/server/vibrator/ComposePwleVibratorStep.java +3 −2 Original line number Original line Diff line number Diff line Loading @@ -68,8 +68,9 @@ final class ComposePwleVibratorStep extends AbstractVibratorStep { Slog.d(VibrationThread.TAG, "Compose " + pwles + " PWLEs on vibrator " Slog.d(VibrationThread.TAG, "Compose " + pwles + " PWLEs on vibrator " + controller.getVibratorInfo().getId()); + controller.getVibratorInfo().getId()); } } mVibratorOnResult = controller.on(pwles.toArray(new RampSegment[pwles.size()]), RampSegment[] pwlesArray = pwles.toArray(new RampSegment[pwles.size()]); getVibration().id); mVibratorOnResult = controller.on(pwlesArray, getVibration().id); getVibration().stats().reportComposePwle(mVibratorOnResult, pwlesArray); return nextSteps(/* segmentsPlayed= */ pwles.size()); return nextSteps(/* segmentsPlayed= */ pwles.size()); } finally { } finally { Loading
services/core/java/com/android/server/vibrator/PerformPrebakedVibratorStep.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -62,6 +62,7 @@ final class PerformPrebakedVibratorStep extends AbstractVibratorStep { VibrationEffect fallback = getVibration().getFallback(prebaked.getEffectId()); VibrationEffect fallback = getVibration().getFallback(prebaked.getEffectId()); mVibratorOnResult = controller.on(prebaked, getVibration().id); mVibratorOnResult = controller.on(prebaked, getVibration().id); getVibration().stats().reportPerformEffect(mVibratorOnResult, prebaked); if (mVibratorOnResult == 0 && prebaked.shouldFallback() if (mVibratorOnResult == 0 && prebaked.shouldFallback() && (fallback instanceof VibrationEffect.Composed)) { && (fallback instanceof VibrationEffect.Composed)) { Loading