1c0f34386d6ab075aced829996ea357c31abdddacEric Laurent/* 2c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * Copyright (C) 2010 The Android Open Source Project 3c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * 4c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * Licensed under the Apache License, Version 2.0 (the "License"); 5c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * you may not use this file except in compliance with the License. 6c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * You may obtain a copy of the License at 7c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * 8c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * http://www.apache.org/licenses/LICENSE-2.0 9c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * 10c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * Unless required by applicable law or agreed to in writing, software 11c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * distributed under the License is distributed on an "AS IS" BASIS, 12c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * See the License for the specific language governing permissions and 14c0f34386d6ab075aced829996ea357c31abdddacEric Laurent * limitations under the License. 15c0f34386d6ab075aced829996ea357c31abdddacEric Laurent */ 16c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 17c0f34386d6ab075aced829996ea357c31abdddacEric Laurent#ifndef ANDROID_IEFFECT_H 18c0f34386d6ab075aced829996ea357c31abdddacEric Laurent#define ANDROID_IEFFECT_H 19c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 20c0f34386d6ab075aced829996ea357c31abdddacEric Laurent#include <utils/RefBase.h> 21c0f34386d6ab075aced829996ea357c31abdddacEric Laurent#include <binder/IInterface.h> 22c0f34386d6ab075aced829996ea357c31abdddacEric Laurent#include <binder/Parcel.h> 23c0f34386d6ab075aced829996ea357c31abdddacEric Laurent#include <binder/IMemory.h> 24c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 25c0f34386d6ab075aced829996ea357c31abdddacEric Laurentnamespace android { 26c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 27c0f34386d6ab075aced829996ea357c31abdddacEric Laurentclass IEffect: public IInterface 28c0f34386d6ab075aced829996ea357c31abdddacEric Laurent{ 29c0f34386d6ab075aced829996ea357c31abdddacEric Laurentpublic: 30c0f34386d6ab075aced829996ea357c31abdddacEric Laurent DECLARE_META_INTERFACE(Effect); 31c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 32c0f34386d6ab075aced829996ea357c31abdddacEric Laurent virtual status_t enable() = 0; 33c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 34c0f34386d6ab075aced829996ea357c31abdddacEric Laurent virtual status_t disable() = 0; 35c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 36a4c72acfbc6c06588dd26cf41e67a834fc0a54f9Eric Laurent virtual status_t command(uint32_t cmdCode, 37a4c72acfbc6c06588dd26cf41e67a834fc0a54f9Eric Laurent uint32_t cmdSize, 38a4c72acfbc6c06588dd26cf41e67a834fc0a54f9Eric Laurent void *pCmdData, 39a4c72acfbc6c06588dd26cf41e67a834fc0a54f9Eric Laurent uint32_t *pReplySize, 40a4c72acfbc6c06588dd26cf41e67a834fc0a54f9Eric Laurent void *pReplyData) = 0; 41c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 42c0f34386d6ab075aced829996ea357c31abdddacEric Laurent virtual void disconnect() = 0; 43c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 44c0f34386d6ab075aced829996ea357c31abdddacEric Laurent virtual sp<IMemory> getCblk() const = 0; 45c0f34386d6ab075aced829996ea357c31abdddacEric Laurent}; 46c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 47c0f34386d6ab075aced829996ea357c31abdddacEric Laurent// ---------------------------------------------------------------------------- 48c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 49c0f34386d6ab075aced829996ea357c31abdddacEric Laurentclass BnEffect: public BnInterface<IEffect> 50c0f34386d6ab075aced829996ea357c31abdddacEric Laurent{ 51c0f34386d6ab075aced829996ea357c31abdddacEric Laurentpublic: 52c0f34386d6ab075aced829996ea357c31abdddacEric Laurent virtual status_t onTransact( uint32_t code, 53c0f34386d6ab075aced829996ea357c31abdddacEric Laurent const Parcel& data, 54c0f34386d6ab075aced829996ea357c31abdddacEric Laurent Parcel* reply, 55c0f34386d6ab075aced829996ea357c31abdddacEric Laurent uint32_t flags = 0); 56c0f34386d6ab075aced829996ea357c31abdddacEric Laurent}; 57c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 58c0f34386d6ab075aced829996ea357c31abdddacEric Laurent}; // namespace android 59c0f34386d6ab075aced829996ea357c31abdddacEric Laurent 60c0f34386d6ab075aced829996ea357c31abdddacEric Laurent#endif // ANDROID_IEFFECT_H 61