1589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian/* 2589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * Copyright (C) 2010 The Android Open Source Project 3589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * 4589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * Licensed under the Apache License, Version 2.0 (the "License"); 5589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * you may not use this file except in compliance with the License. 6589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * You may obtain a copy of the License at 7589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * 8589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * http://www.apache.org/licenses/LICENSE-2.0 9589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * 10589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * Unless required by applicable law or agreed to in writing, software 11589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * distributed under the License is distributed on an "AS IS" BASIS, 12589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * See the License for the specific language governing permissions and 14589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian * limitations under the License. 15589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian */ 16589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 17801ea093b0e923a61b832f2adba698a273479880Mathias Agopian#pragma once 18589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 19589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian#include <stdint.h> 20589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian#include <sys/types.h> 21589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 22589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian#include <utils/Errors.h> 23801ea093b0e923a61b832f2adba698a273479880Mathias Agopian#include <utils/StrongPointer.h> 24801ea093b0e923a61b832f2adba698a273479880Mathias Agopian#include <utils/Vector.h> 25589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 26589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian#include <binder/IInterface.h> 27589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 28e36e34731cbe77a49aa5e7d687dde041d83d0370Peng Xustruct native_handle; 29e36e34731cbe77a49aa5e7d687dde041d83d0370Peng Xutypedef struct native_handle native_handle_t; 30589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopiannamespace android { 31589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian// ---------------------------------------------------------------------------- 32589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 33589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopianclass ISensorEventConnection; 34801ea093b0e923a61b832f2adba698a273479880Mathias Agopianclass Parcel; 35801ea093b0e923a61b832f2adba698a273479880Mathias Agopianclass Sensor; 364949c50372de4c7fdb57de1dc0c1f5bb3ac463ebAravind Akellaclass String8; 37801ea093b0e923a61b832f2adba698a273479880Mathias Agopianclass String16; 38589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 39589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopianclass ISensorServer : public IInterface 40589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian{ 41589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopianpublic: 4217576de056a57753eb4af797545db88ef4f81ef0Colin Cross DECLARE_META_INTERFACE(SensorServer) 43589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 44b412f6e203b38f8047f760261a5e3dc6d0722f08Svetoslav virtual Vector<Sensor> getSensorList(const String16& opPackageName) = 0; 452576cb63b3fe1592f54816625036566b9eb0793aPeng Xu virtual Vector<Sensor> getDynamicSensorList(const String16& opPackageName) = 0; 462576cb63b3fe1592f54816625036566b9eb0793aPeng Xu 47a9e6cc387072e25706a6d847a97b02a6f25a918bAravind Akella virtual sp<ISensorEventConnection> createSensorEventConnection(const String8& packageName, 48b412f6e203b38f8047f760261a5e3dc6d0722f08Svetoslav int mode, const String16& opPackageName) = 0; 495c538053346107a8ec704d8769059ab6a23ebeefAravind Akella virtual int32_t isDataInjectionEnabled() = 0; 50e36e34731cbe77a49aa5e7d687dde041d83d0370Peng Xu 51e36e34731cbe77a49aa5e7d687dde041d83d0370Peng Xu virtual sp<ISensorEventConnection> createSensorDirectConnection(const String16& opPackageName, 52e36e34731cbe77a49aa5e7d687dde041d83d0370Peng Xu uint32_t size, int32_t type, int32_t format, const native_handle_t *resource) = 0; 53dd5c5cb3b8f3df9b458dff74e247b9a542befee7Peng Xu 54dd5c5cb3b8f3df9b458dff74e247b9a542befee7Peng Xu virtual int setOperationParameter( 55dd5c5cb3b8f3df9b458dff74e247b9a542befee7Peng Xu int32_t type, const Vector<float> &floats, const Vector<int32_t> &ints) = 0; 56589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian}; 57589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 58589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian// ---------------------------------------------------------------------------- 59589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 60589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopianclass BnSensorServer : public BnInterface<ISensorServer> 61589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian{ 62589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopianpublic: 63589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian virtual status_t onTransact( uint32_t code, 64589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian const Parcel& data, 65589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian Parcel* reply, 66589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian uint32_t flags = 0); 67589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian}; 68589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian 69589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian// ---------------------------------------------------------------------------- 70589ce85ee4174829cfedce91b6b2509d2a4002ebMathias Agopian}; // namespace android 71