1be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent/*
2be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent * Copyright (C) 2010 The Android Open Source Project
3be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent *
4be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent * Licensed under the Apache License, Version 2.0 (the "License");
5be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent * you may not use this file except in compliance with the License.
6be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent * You may obtain a copy of the License at
7be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent *
8be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent *      http://www.apache.org/licenses/LICENSE-2.0
9be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent *
10be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent * Unless required by applicable law or agreed to in writing, software
11be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent * distributed under the License is distributed on an "AS IS" BASIS,
12be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent * See the License for the specific language governing permissions and
14be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent * limitations under the License.
15be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent */
16be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
17be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent#ifndef ANDROID_EFFECTCBASESHARED_H
18be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent#define ANDROID_EFFECTCBASESHARED_H
19be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
20be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent#include <stdint.h>
21be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent#include <sys/types.h>
22be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
23be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent#include <utils/threads.h>
24be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
25be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurentnamespace android {
26be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
27be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent// ----------------------------------------------------------------------------
28be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
29be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent// Size of buffer used to exchange parameters between application and mediaserver processes.
30be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent#define EFFECT_PARAM_BUFFER_SIZE 1024
31be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
32be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
33be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent// Shared memory area used to exchange parameters between application and mediaserver
34be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent// process.
35be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurentstruct effect_param_cblk_t
36be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent{
37be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent                Mutex       lock;
38be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent    volatile    uint32_t    clientIndex;    // Current read/write index for application
39be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent    volatile    uint32_t    serverIndex;    // Current read/write index for mediaserver
40be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent                uint8_t*    buffer;         // start of parameter buffer
41be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
42be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent                effect_param_cblk_t()
43be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent                    : lock(Mutex::SHARED), clientIndex(0), serverIndex(0) {}
44be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent};
45be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
46be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
47be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent// ----------------------------------------------------------------------------
48be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
49be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent}; // namespace android
50be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent
51be916aa1267e2e6b1c148f51d11bcbbc79cb864cEric Laurent#endif // ANDROID_EFFECTCBASESHARED_H
52