1334de520b0369215b7931fefa424fb92d295f0ebJames Dong/* 2334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Copyright (C) 2009 The Android Open Source Project 3334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 4334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Licensed under the Apache License, Version 2.0 (the "License"); 5334de520b0369215b7931fefa424fb92d295f0ebJames Dong * you may not use this file except in compliance with the License. 6334de520b0369215b7931fefa424fb92d295f0ebJames Dong * You may obtain a copy of the License at 7334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 8334de520b0369215b7931fefa424fb92d295f0ebJames Dong * http://www.apache.org/licenses/LICENSE-2.0 9334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 10334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Unless required by applicable law or agreed to in writing, software 11334de520b0369215b7931fefa424fb92d295f0ebJames Dong * distributed under the License is distributed on an "AS IS" BASIS, 12334de520b0369215b7931fefa424fb92d295f0ebJames Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13334de520b0369215b7931fefa424fb92d295f0ebJames Dong * See the License for the specific language governing permissions and 14334de520b0369215b7931fefa424fb92d295f0ebJames Dong * limitations under the License. 15334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 16334de520b0369215b7931fefa424fb92d295f0ebJames Dong 17334de520b0369215b7931fefa424fb92d295f0ebJames Dong#ifndef OMX_PLUGIN_BASE_H_ 18334de520b0369215b7931fefa424fb92d295f0ebJames Dong 19334de520b0369215b7931fefa424fb92d295f0ebJames Dong#define OMX_PLUGIN_BASE_H_ 20334de520b0369215b7931fefa424fb92d295f0ebJames Dong 21334de520b0369215b7931fefa424fb92d295f0ebJames Dong#include <sys/types.h> 22334de520b0369215b7931fefa424fb92d295f0ebJames Dong 23334de520b0369215b7931fefa424fb92d295f0ebJames Dong#include <OMX_Component.h> 24334de520b0369215b7931fefa424fb92d295f0ebJames Dong 25334de520b0369215b7931fefa424fb92d295f0ebJames Dong#include <utils/String8.h> 26334de520b0369215b7931fefa424fb92d295f0ebJames Dong#include <utils/Vector.h> 27334de520b0369215b7931fefa424fb92d295f0ebJames Dong 28334de520b0369215b7931fefa424fb92d295f0ebJames Dongnamespace android { 29334de520b0369215b7931fefa424fb92d295f0ebJames Dong 30334de520b0369215b7931fefa424fb92d295f0ebJames Dongstruct OMXPluginBase { 31334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMXPluginBase() {} 32334de520b0369215b7931fefa424fb92d295f0ebJames Dong virtual ~OMXPluginBase() {} 33334de520b0369215b7931fefa424fb92d295f0ebJames Dong 34334de520b0369215b7931fefa424fb92d295f0ebJames Dong virtual OMX_ERRORTYPE makeComponentInstance( 35334de520b0369215b7931fefa424fb92d295f0ebJames Dong const char *name, 36334de520b0369215b7931fefa424fb92d295f0ebJames Dong const OMX_CALLBACKTYPE *callbacks, 37334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_PTR appData, 38334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_COMPONENTTYPE **component) = 0; 39334de520b0369215b7931fefa424fb92d295f0ebJames Dong 40334de520b0369215b7931fefa424fb92d295f0ebJames Dong virtual OMX_ERRORTYPE destroyComponentInstance( 41334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_COMPONENTTYPE *component) = 0; 42334de520b0369215b7931fefa424fb92d295f0ebJames Dong 43334de520b0369215b7931fefa424fb92d295f0ebJames Dong virtual OMX_ERRORTYPE enumerateComponents( 44334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_STRING name, 45334de520b0369215b7931fefa424fb92d295f0ebJames Dong size_t size, 46334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 index) = 0; 47334de520b0369215b7931fefa424fb92d295f0ebJames Dong 48334de520b0369215b7931fefa424fb92d295f0ebJames Dong virtual OMX_ERRORTYPE getRolesOfComponent( 49334de520b0369215b7931fefa424fb92d295f0ebJames Dong const char *name, 50334de520b0369215b7931fefa424fb92d295f0ebJames Dong Vector<String8> *roles) = 0; 51334de520b0369215b7931fefa424fb92d295f0ebJames Dong 52334de520b0369215b7931fefa424fb92d295f0ebJames Dongprivate: 53334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMXPluginBase(const OMXPluginBase &); 54334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMXPluginBase &operator=(const OMXPluginBase &); 55334de520b0369215b7931fefa424fb92d295f0ebJames Dong}; 56334de520b0369215b7931fefa424fb92d295f0ebJames Dong 57334de520b0369215b7931fefa424fb92d295f0ebJames Dong} // namespace android 58334de520b0369215b7931fefa424fb92d295f0ebJames Dong 59334de520b0369215b7931fefa424fb92d295f0ebJames Dong#endif // OMX_PLUGIN_BASE_H_ 60