1 /* 2 * hybrid_analyzer_loader.h - hybrid analyzer loader 3 * 4 * Copyright (c) 2015 Intel Corporation 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 * Author: Wind Yuan <feng.yuan@intel.com> 19 * Zong Wei <wei.zong@intel.com> 20 */ 21 22 #ifndef XCAM_HYBRID_ANALYZER_LOADER_H 23 #define XCAM_HYBRID_ANALYZER_LOADER_H 24 25 #include <xcam_std.h> 26 #include <base/xcam_3a_description.h> 27 #include "dynamic_analyzer_loader.h" 28 #include "isp_controller.h" 29 30 namespace XCam { 31 class IspController; 32 class X3aAnalyzer; 33 34 class HybridAnalyzerLoader 35 : public AnalyzerLoader 36 { 37 public: 38 HybridAnalyzerLoader (const char *lib_path, const char *symbol = XCAM_3A_LIB_DESCRIPTION); 39 virtual ~HybridAnalyzerLoader (); 40 41 virtual bool set_cpf_path (const char *cpf_path); 42 virtual bool set_isp_controller (SmartPtr<IspController> &isp); 43 virtual SmartPtr<X3aAnalyzer> load_analyzer (SmartPtr<AnalyzerLoader> &self); 44 45 protected: 46 virtual void *load_symbol (void* handle); 47 48 private: 49 XCAM_DEAD_COPY(HybridAnalyzerLoader); 50 51 private: 52 const char *_cpf_path; 53 SmartPtr<IspController> _isp; 54 }; 55 56 }; 57 58 #endif // XCAM_HYBRID_ANALYZER_LOADER_H