/* * x3a_result_factory.h - 3A result factory * * Copyright (c) 2015 Intel Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Author: Wind Yuan */ #ifndef XCAM_3A_RESULT_FACTORY_H #define XCAM_3A_RESULT_FACTORY_H #include #include #include namespace XCam { class X3aResultFactory { public: virtual ~X3aResultFactory (); static SmartPtr instance (); SmartPtr create_3a_result (XCam3aResultHead *from); SmartPtr create_whitebalance (XCam3aResultWhiteBalance *from = NULL); SmartPtr create_blacklevel (XCam3aResultBlackLevel *from = NULL); SmartPtr create_rgb2yuv_colormatrix (XCam3aResultColorMatrix *from = NULL); SmartPtr create_yuv2rgb_colormatrix (XCam3aResultColorMatrix *from = NULL); SmartPtr create_exposure (XCam3aResultExposure *from = NULL); SmartPtr create_focus (XCam3aResultFocus *from = NULL); SmartPtr create_demosaicing (XCam3aResultDemosaic *from = NULL); SmartPtr create_defectpixel (XCam3aResultDefectPixel *from = NULL); SmartPtr create_noise_reduction (XCam3aResultNoiseReduction *from = NULL); SmartPtr create_3d_noise_reduction (XCam3aResultTemporalNoiseReduction *from = NULL); SmartPtr create_yuv_temp_noise_reduction (XCam3aResultTemporalNoiseReduction *from = NULL); SmartPtr create_edge_enhancement (XCam3aResultEdgeEnhancement *from = NULL); SmartPtr create_y_gamma_table (XCam3aResultGammaTable *from = NULL); SmartPtr create_r_gamma_table (XCam3aResultGammaTable *from = NULL); SmartPtr create_g_gamma_table (XCam3aResultGammaTable *from = NULL); SmartPtr create_b_gamma_table (XCam3aResultGammaTable *from = NULL); SmartPtr create_macc (XCam3aResultMaccMatrix *from = NULL); SmartPtr create_chroma_tone_control (XCam3aResultChromaToneControl *from = NULL); SmartPtr create_bayer_noise_reduction (XCam3aResultBayerNoiseReduction *from = NULL); SmartPtr create_brightness (XCam3aResultBrightness *from = NULL); SmartPtr create_wavelet_noise_reduction (XCam3aResultWaveletNoiseReduction *from = NULL); SmartPtr create_face_detection (XCamFDResult *from = NULL); SmartPtr create_digital_video_stabilizer (XCamDVSResult *from = NULL); protected: explicit X3aResultFactory (); XCAM_DEAD_COPY (X3aResultFactory); private: static Mutex _mutex; static SmartPtr _instance; }; }; #endif // XCAM_3A_RESULT_FACTORY_H