blob: 1df0bda469b4d4ef2bf2c1a3c7ef5a83a8c1b3b0 [file] [log] [blame]
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.automotive.occupant_awareness;
import android.hardware.automotive.occupant_awareness.OccupantAwarenessStatus;
import android.hardware.automotive.occupant_awareness.Role;
import android.hardware.automotive.occupant_awareness.IOccupantAwarenessClientCallback;
import android.hardware.automotive.occupant_awareness.OccupantDetections;
@VintfStability
interface IOccupantAwareness {
/*
* System not able to generate any occupancy awareness.
*/
const int CAP_NONE = 0;
/*
* System is able to detect the presence of humans.
*/
const int CAP_PRESENCE_DETECTION = 1 << 0;
/*
* System is able to detect the gaze of humans.
*/
const int CAP_GAZE_DETECTION = 1 << 1;
/*
* System is able to compute the attention details of humans.
*/
const int CAP_DRIVER_MONITORING_DETECTION = 1 << 2;
/**
* Starts the occupant awareness detection system. This is a non-blocking function call.
* Once system is ready, state will be modified. State update can be inrquired using callback
* or getState() function.
* @return status is the current system state.
*/
OccupantAwarenessStatus startDetection();
/**
* Stops the occupant awareness detection system. This is a non-blocking function call.
* Once system is reset, state will be modified. State update can be inrquired using callback
* or getState() function.
* @return status is the current system state.
*/
OccupantAwarenessStatus stopDetection();
/**
* Returns list of Awareness Capability supported for the given type of occupants.
*
* @param out Bitwise OR of supported capabilities (CAP_* mask).
*/
int getCapabilityForRole(in Role occupantRole);
/**
* Inquires the current state of the occupant awareness system.
* @param occupantRole specifies the role of occupants of interest.
* @param detectionCapability specifies a single detection capability (CAP_* ) of interest.
*
* @return status is the current system state.
*/
OccupantAwarenessStatus getState(in Role occupantRole, in int detectionCapability);
/**
* Registers a callback for data streaming. Only single callback is supported. setCallback()
* should replace existing callback with new callback.
* @return: returns ok if successful.
*/
void setCallback(in IOccupantAwarenessClientCallback callback);
/**
* Returns the most recent set of detections.
* @param OccupantDetections output detections.
* @return returns ok if successful.
*/
void getLatestDetection(out OccupantDetections detections);
}