Remove impl from InputClassifier HAL
Make the reference implementation for InputClassifier HAL do nothing. This is to allow cuttlefish to install this implementation. It is safe for any device to install this implementation, and is equivalent to not having the HAL running at all. Test: boot up cuttlefish, and interact with the virtual device to ensure that input works okay. Then 'ps -A | grep -i input' and ensure that the HAL is running on the device. Bug: 122600147 Change-Id: I841811bc0da3d78db8d7c1589cf1c59819d901a1
This commit is contained in:
parent
312f58e1a0
commit
443e98b12d
3 changed files with 11 additions and 28 deletions
|
@ -1,6 +1,6 @@
|
|||
cc_binary {
|
||||
name: "android.hardware.input.classifier@1.0-service-example",
|
||||
init_rc: ["android.hardware.input.classifier@1.0-service-example.rc"],
|
||||
name: "android.hardware.input.classifier@1.0-service.default",
|
||||
init_rc: ["android.hardware.input.classifier@1.0-service.default.rc"],
|
||||
relative_install_path: "hw",
|
||||
vendor: true,
|
||||
vintf_fragments: ["manifest_input.classifier.xml"],
|
||||
|
|
|
@ -31,41 +31,24 @@ namespace V1_0 {
|
|||
namespace implementation {
|
||||
|
||||
// Methods from ::android::hardware::input::classifier::V1_0::IInputClassifier follow.
|
||||
Return<Classification> InputClassifier::classify(const MotionEvent& event) {
|
||||
Return<Classification> InputClassifier::classify(const MotionEvent& /*event*/) {
|
||||
/**
|
||||
* In this example implementation, we will see how many "pixels" inside the video frame
|
||||
* exceed the value of 250. If more than 6 such pixels are present, then treat the event
|
||||
* as a "DEEP_PRESS".
|
||||
* The touchscreen data is highly device-dependent.
|
||||
* As a result, the implementation of this method will likely be hardware-specific.
|
||||
* Here we just report gesture as not having any classification, which means that the
|
||||
* default action will be taken in the framework.
|
||||
* This is equivalent to not having the InputClassifier HAL at all.
|
||||
*/
|
||||
if (event.frames.size() == 0) {
|
||||
return Classification::NONE;
|
||||
}
|
||||
ALOGI("Frame(O) timestamp = %" PRIu64 ", received %zu frame(s)", event.frames[0].timestamp,
|
||||
event.frames.size());
|
||||
for (const VideoFrame& frame : event.frames) {
|
||||
size_t count = 0;
|
||||
for (size_t i = 0; i < frame.data.size(); i++) {
|
||||
if (frame.data[i] > 250) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if (count > 6) {
|
||||
return Classification::DEEP_PRESS;
|
||||
}
|
||||
}
|
||||
|
||||
return Classification::NONE;
|
||||
}
|
||||
|
||||
Return<void> InputClassifier::reset() {
|
||||
// We don't have any internal state in this example implementation,
|
||||
// so no work needed here.
|
||||
// We don't have any internal state, so no work needed here.
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<void> InputClassifier::resetDevice(int32_t /*deviceId*/) {
|
||||
// We don't have any internal per-device state in this example implementation,
|
||||
// so no work needed here.
|
||||
// We don't have any internal per-device state, so no work needed here.
|
||||
return Void();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
service vendor.input.classifier-1-0 /vendor/bin/hw/android.hardware.input.classifier@1.0-service-example
|
||||
service vendor.input.classifier-1-0 /vendor/bin/hw/android.hardware.input.classifier@1.0-service.default
|
||||
# Must be specified if "disabled" is set. This HAL will only start if requested via getService
|
||||
interface android.hardware.input.classifier@1.0::IInputClassifier default
|
||||
class hal
|
Loading…
Reference in a new issue