12823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk/* 22823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * Copyright (C) 2015 The Android Open Source Project 32823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * 42823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * Licensed under the Apache License, Version 2.0 (the "License"); 52823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * you may not use this file except in compliance with the License. 62823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * You may obtain a copy of the License at 72823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * 82823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * http://www.apache.org/licenses/LICENSE-2.0 92823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * 102823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * Unless required by applicable law or agreed to in writing, software 112823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * distributed under the License is distributed on an "AS IS" BASIS, 122823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * See the License for the specific language governing permissions and 142823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk * limitations under the License. 152823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk */ 162823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 172823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk#ifndef ANDROID_HARDWARE_ICAMERASERVICEPROXY_H 182823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk#define ANDROID_HARDWARE_ICAMERASERVICEPROXY_H 192823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 202823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk#include <utils/RefBase.h> 212823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk#include <binder/IInterface.h> 222823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk#include <binder/Parcel.h> 232823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 242823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunknamespace android { 252823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 26412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala/** 27412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala * Interface from native camera service to managed-side camera service proxy. 28412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala * 29412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala * Keep in sync with frameworks/base/core/java/android/hardware/ICameraServiceProxy.aidl 30412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala * 31412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala */ 322823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunkclass ICameraServiceProxy : public IInterface { 332823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunkpublic: 342823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk enum { 352823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk PING_FOR_USER_UPDATE = IBinder::FIRST_CALL_TRANSACTION, 36412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala NOTIFY_CAMERA_STATE 37412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala }; 38412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala 39412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala enum CameraState { 40412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala CAMERA_STATE_OPEN, 41412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala CAMERA_STATE_ACTIVE, 42412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala CAMERA_STATE_IDLE, 43412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala CAMERA_STATE_CLOSED 442823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk }; 452823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 462823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk DECLARE_META_INTERFACE(CameraServiceProxy); 472823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 482823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk virtual void pingForUserUpdate() = 0; 49412fe56cd7cf7d73bc5d2bcc3f635bc650d18de9Eino-Ville Talvala virtual void notifyCameraState(String16 cameraId, CameraState newCameraState) = 0; 502823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk}; 512823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 522823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunkclass BnCameraServiceProxy: public BnInterface<ICameraServiceProxy> 532823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk{ 542823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunkpublic: 552823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk virtual status_t onTransact( uint32_t code, 562823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk const Parcel& data, 572823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk Parcel* reply, 582823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk uint32_t flags = 0); 592823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk}; 602823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 612823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 622823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 632823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk}; // namespace android 642823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk 652823ce0ce6f9d508a07de20912c93cce9165027fRuben Brunk#endif // ANDROID_HARDWARE_ICAMERASERVICEPROXY_H 66