blob: dae66175420a7402d335a91bb584610406f934e7 [file] [log] [blame]
Wind Yuan75564b12015-01-15 06:51:15 -05001/*
2 * x3a_analyzer_aiq.h - 3a analyzer from AIQ
3 *
4 * Copyright (c) 2014-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 */
20
21#ifndef XCAM_3A_ANALYZER_AIQ_H
22#define XCAM_3A_ANALYZER_AIQ_H
23
Wind Yuan75564b12015-01-15 06:51:15 -050024#include "xcam_utils.h"
25#include "x3a_analyzer.h"
26#include <linux/atomisp.h>
27
28namespace XCam {
29
30class AiqCompositor;
31class IspController;
32
33class X3aAnalyzerAiq
34 : public X3aAnalyzer
35{
36public:
37 explicit X3aAnalyzerAiq (SmartPtr<IspController> &isp, const char *cpf_path);
38 ~X3aAnalyzerAiq ();
39
40private:
41
42 XCAM_DEAD_COPY (X3aAnalyzerAiq);
43
44protected:
45 virtual SmartPtr<AeHandler> create_ae_handler ();
46 virtual SmartPtr<AwbHandler> create_awb_handler ();
47 virtual SmartPtr<AfHandler> create_af_handler ();
48 virtual SmartPtr<CommonHandler> create_common_handler ();
49
Wind Yuan60aa8ce2015-01-26 16:56:09 +080050 virtual XCamReturn internal_init (uint32_t width, uint32_t height, double framerate);
Wind Yuan75564b12015-01-15 06:51:15 -050051 virtual XCamReturn internal_deinit ();
52
53 virtual XCamReturn configure_3a ();
Wind Yuan1d5f5ce2015-04-15 19:59:28 +080054 virtual XCamReturn pre_3a_analyze (SmartPtr<X3aStats> &stats);
Wind Yuan75564b12015-01-15 06:51:15 -050055 virtual XCamReturn post_3a_analyze (X3aResultList &results);
56
57private:
58 SmartPtr <AiqCompositor> _aiq_compositor;
59
60 SmartPtr <IspController> _isp;
61 struct atomisp_sensor_mode_data _sensor_mode_data;
62 char *_cpf_path;
63};
64
65};
66#endif //XCAM_3A_ANALYZER_AIQ_H