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