1 /*
2 * gstxcaminterface.c - Gstreamer XCam 3A interface
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 #ifdef HAVE_CONFIG_H
22 #include "config.h"
23 #endif
24 #include "gstxcaminterface.h"
25 #include <string.h>
26
27 static void gst_xcam_3a_iface_init (GstXCam3AInterface *iface);
28
29 GType
gst_xcam_3a_interface_get_type(void)30 gst_xcam_3a_interface_get_type (void)
31 {
32 static GType gst_xcam_3a_interface_type = 0;
33
34 if (!gst_xcam_3a_interface_type) {
35 static const GTypeInfo gst_xcam_3a_interface_info = {
36 sizeof (GstXCam3AInterface),
37 (GBaseInitFunc) gst_xcam_3a_iface_init,
38 NULL,
39 NULL,
40 NULL,
41 NULL,
42 0,
43 0,
44 NULL,
45 NULL
46 };
47
48 gst_xcam_3a_interface_type = g_type_register_static (G_TYPE_INTERFACE,
49 "GsXCam3AInterface", &gst_xcam_3a_interface_info, 0);
50 }
51 return gst_xcam_3a_interface_type;
52 }
53
54 static void
gst_xcam_3a_iface_init(GstXCam3AInterface * iface)55 gst_xcam_3a_iface_init (GstXCam3AInterface * iface)
56 {
57 /* default virtual functions */
58 iface->set_white_balance_mode = NULL;
59 iface->set_awb_speed = NULL;
60 iface->set_wb_color_temperature_range = NULL;
61 iface->set_manual_wb_gain = NULL;
62 iface->set_exposure_mode = NULL;
63 iface->set_ae_metering_mode = NULL;
64 iface->set_exposure_window = NULL;
65 iface->set_exposure_value_offset = NULL;
66 iface->set_ae_speed = NULL;
67 iface->set_exposure_flicker_mode = NULL;
68 iface->get_exposure_flicker_mode = NULL;
69 iface->get_current_exposure_time = NULL;
70 iface->get_current_analog_gain = NULL;
71 iface->set_manual_exposure_time = NULL;
72 iface->set_manual_analog_gain = NULL;
73 iface->set_aperture = NULL;
74 iface->set_max_analog_gain = NULL;
75 iface->get_max_analog_gain = NULL;
76 iface->set_exposure_time_range = NULL;
77 iface->get_exposure_time_range = NULL;
78 iface->set_dvs = NULL;
79 iface->set_noise_reduction_level = NULL;
80 iface->set_temporal_noise_reduction_level = NULL;
81 iface->set_gamma_table = NULL;
82 iface->set_gbce = NULL;
83 iface->set_manual_brightness = NULL;
84 iface->set_manual_contrast = NULL;
85 iface->set_manual_hue = NULL;
86 iface->set_manual_saturation = NULL;
87 iface->set_manual_sharpness = NULL;
88 iface->set_night_mode = NULL;
89 iface->set_hdr_mode = NULL;
90 iface->set_denoise_mode = NULL;
91 iface->set_gamma_mode = NULL;
92 iface->set_dpc_mode = NULL;
93 iface->set_tonemapping_mode = NULL;
94 }
95