int SensorContext::config_direct_report(
int32_t sensor_handle, int32_t channel_handle, conststruct sensors_direct_cfg_t * config) { int rate_level = config->rate_level; return mHubConnection->configDirectReport(sensor_handle, channel_handle, rate_level);
}
// static int SensorContext::CloseWrapper(struct hw_device_t *dev) { returnreinterpret_cast<SensorContext *>(dev)->close();
}
// static int SensorContext::ActivateWrapper( struct sensors_poll_device_t *dev, int handle, int enabled) { returnreinterpret_cast<SensorContext *>(dev)->activate(handle, enabled);
}
// static int SensorContext::SetDelayWrapper( struct sensors_poll_device_t *dev, int handle, int64_t delayNs) { returnreinterpret_cast<SensorContext *>(dev)->setDelay(handle, delayNs);
}
// static int SensorContext::PollWrapper( struct sensors_poll_device_t *dev, sensors_event_t *data, int count) { returnreinterpret_cast<SensorContext *>(dev)->poll(data, count);
}
// static int SensorContext::BatchWrapper( struct sensors_poll_device_1 *dev, int handle, int flags,
int64_t sampling_period_ns,
int64_t max_report_latency_ns) {
(void) flags; returnreinterpret_cast<SensorContext *>(dev)->batch(
handle, sampling_period_ns, max_report_latency_ns);
}
// static int SensorContext::FlushWrapper(struct sensors_poll_device_1 *dev, int handle) { returnreinterpret_cast<SensorContext *>(dev)->flush(handle);
}
// static int SensorContext::RegisterDirectChannelWrapper(struct sensors_poll_device_1 *dev, conststruct sensors_direct_mem_t* mem, int channel_handle) { returnreinterpret_cast<SensorContext *>(dev)->register_direct_channel(
mem, channel_handle);
}
// static int SensorContext::ConfigDirectReportWrapper(struct sensors_poll_device_1 *dev, int sensor_handle, int channel_handle, const sensors_direct_cfg_t * config) { returnreinterpret_cast<SensorContext *>(dev)->config_direct_report(
sensor_handle, channel_handle, config);
}
int SensorContext::inject_sensor_data(const sensors_event_t *event) {
ALOGV("inject_sensor_data");
// only support set operation parameter, which will have handle == 0 if (event == nullptr || event->type != SENSOR_TYPE_ADDITIONAL_INFO) { return -EINVAL;
}
if (event->sensor != SENSORS_HANDLE_BASE - 1) { return -ENOSYS;
}
int SensorContext::HubConnectionOperation::activate(int handle, int enabled) {
mHubConnection->queueActivate(handle, enabled); return0;
}
int SensorContext::HubConnectionOperation::setDelay(int handle, int64_t delayNs) { // clamp sample rate based on minDelay and maxDelay defined in kSensorList
int64_t delayNsClamped = delayNs; for (size_t i = 0; i < kSensorCount; i++) {
sensor_t sensor = kSensorList[i]; if (sensor.handle != handle) { continue;
}
int SensorContext::HubConnectionOperation::batch( int handle, int64_t sampling_period_ns,
int64_t max_report_latency_ns) { // clamp sample rate based on minDelay and maxDelay defined in kSensorList
int64_t sampling_period_ns_clamped = sampling_period_ns; for (size_t i = 0; i < kSensorCount; i++) {
sensor_t sensor = kSensorList[i]; if (sensor.handle != handle) { continue;
}
// This is no-op because there is no sensor in the hal that system can // inject events. Only operation parameter injection is implemented, which // works in both data injection and normal mode.
(void) mode; return0;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.