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