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