+
+ /*******************
+ * Camera control *
+ *******************/
+
+ /* [Camera] matching table */
+ static conf_info_table conf_ctrl_camera_table[] = {
+ { "InputIndex", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "DeviceName", CONFIGURE_VALUE_STRING, {NULL} },
+ { "PreviewResolution", CONFIGURE_VALUE_INT_PAIR_ARRAY, {NULL} },
+ { "CaptureResolution", CONFIGURE_VALUE_INT_PAIR_ARRAY, {NULL} },
+ { "VideoResolution", CONFIGURE_VALUE_INT_PAIR_ARRAY, {NULL} },
+ { "FPS0", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS1", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS2", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS3", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS4", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS5", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS6", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS7", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS8", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS9", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "PictureFormat", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "Overlay", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "RecommendDisplayRotation", CONFIGURE_VALUE_INT, {.value_int = 3} },
+ { "RecommendPreviewFormatCapture", CONFIGURE_VALUE_INT, {.value_int = MM_PIXEL_FORMAT_YUYV} },
+ { "RecommendPreviewFormatRecord", CONFIGURE_VALUE_INT, {.value_int = MM_PIXEL_FORMAT_NV12} },
+ { "RecommendPreviewResolution", CONFIGURE_VALUE_INT_PAIR_ARRAY, {NULL} },
+ { "FacingDirection", CONFIGURE_VALUE_INT, {.value_int = MM_CAMCORDER_CAMERA_FACING_DIRECTION_REAR} },
+ };
+
+ /* [Strobe] matching table */
+ static conf_info_table conf_ctrl_strobe_table[] = {
+ { "StrobeControl", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "StrobeMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "StrobeEV", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ };
+
+ /* [Effect] matching table */
+ static conf_info_table conf_ctrl_effect_table[] = {
+ { "Brightness", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "BrightnessStepDenominator", CONFIGURE_VALUE_INT, {.value_int = 2} },
+ { "Contrast", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "Saturation", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "Sharpness", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "WhiteBalance", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "ColorTone", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "Flip", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "Rotation", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "WDR", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "PartColorMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "PartColor", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ };
+
+ /* [Photograph] matching table */
+ static conf_info_table conf_ctrl_photograph_table[] = {
+ { "LensInit", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "DigitalZoom", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "OpticalZoom", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "FocusMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "AFType", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "AEType", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "ExposureValue", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "FNumber", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "ShutterSpeed", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "ISO", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "ProgramMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "AntiHandshake", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "VideoStabilization", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FaceZoomMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FaceZoomLevel", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "PanMecha", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "PanElec", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "TiltMecha", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "TiltElec", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ };
+
+ /* [Capture] matching table */
+ static conf_info_table conf_ctrl_capture_table[] = {
+ { "OutputMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "JpegQuality", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "MultishotNumber", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "SensorEncodedCapture", CONFIGURE_VALUE_INT, {.value_int = 1} },
+ { "SupportHDR", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "SupportZSL", CONFIGURE_VALUE_INT, {.value_int = FALSE} },
+ };
+
+ /* [Detect] matching table */
+ static conf_info_table conf_ctrl_detect_table[] = {
+ { "DetectMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "DetectNumber", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "DetectSelect", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "DetectSelectNumber", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ };
+
+ _mmcam_dbg_log("Entered...");
+
+ if (type == CONFIGURE_TYPE_MAIN) {
+ hcamcorder->conf_main_info_table[CONFIGURE_CATEGORY_MAIN_GENERAL] = conf_main_general_table;
+ hcamcorder->conf_main_info_table[CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT] = conf_main_video_input_table;
+ hcamcorder->conf_main_info_table[CONFIGURE_CATEGORY_MAIN_AUDIO_INPUT] = conf_main_audio_input_table;
+ hcamcorder->conf_main_info_table[CONFIGURE_CATEGORY_MAIN_VIDEO_OUTPUT] = conf_main_video_output_table;
+ hcamcorder->conf_main_info_table[CONFIGURE_CATEGORY_MAIN_CAPTURE] = conf_main_capture_table;
+ hcamcorder->conf_main_info_table[CONFIGURE_CATEGORY_MAIN_RECORD] = conf_main_record_table;
+ hcamcorder->conf_main_info_table[CONFIGURE_CATEGORY_MAIN_VIDEO_ENCODER] = conf_main_video_encoder_table;
+ hcamcorder->conf_main_info_table[CONFIGURE_CATEGORY_MAIN_AUDIO_ENCODER] = conf_main_audio_encoder_table;
+ hcamcorder->conf_main_info_table[CONFIGURE_CATEGORY_MAIN_IMAGE_ENCODER] = conf_main_image_encoder_table;
+ hcamcorder->conf_main_info_table[CONFIGURE_CATEGORY_MAIN_MUX] = conf_main_mux_table;
+
+ hcamcorder->conf_main_category_size[CONFIGURE_CATEGORY_MAIN_GENERAL] = sizeof(conf_main_general_table) / info_table_size;
+ hcamcorder->conf_main_category_size[CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT] = sizeof(conf_main_video_input_table) / info_table_size;
+ hcamcorder->conf_main_category_size[CONFIGURE_CATEGORY_MAIN_AUDIO_INPUT] = sizeof(conf_main_audio_input_table) / info_table_size;
+ hcamcorder->conf_main_category_size[CONFIGURE_CATEGORY_MAIN_VIDEO_OUTPUT] = sizeof(conf_main_video_output_table) / info_table_size;
+ hcamcorder->conf_main_category_size[CONFIGURE_CATEGORY_MAIN_CAPTURE] = sizeof(conf_main_capture_table) / info_table_size;
+ hcamcorder->conf_main_category_size[CONFIGURE_CATEGORY_MAIN_RECORD] = sizeof(conf_main_record_table) / info_table_size;
+ hcamcorder->conf_main_category_size[CONFIGURE_CATEGORY_MAIN_VIDEO_ENCODER] = sizeof(conf_main_video_encoder_table) / info_table_size;
+ hcamcorder->conf_main_category_size[CONFIGURE_CATEGORY_MAIN_AUDIO_ENCODER] = sizeof(conf_main_audio_encoder_table) / info_table_size;
+ hcamcorder->conf_main_category_size[CONFIGURE_CATEGORY_MAIN_IMAGE_ENCODER] = sizeof(conf_main_image_encoder_table) / info_table_size;
+ hcamcorder->conf_main_category_size[CONFIGURE_CATEGORY_MAIN_MUX] = sizeof(conf_main_mux_table) / info_table_size;
+
+ category_num = CONFIGURE_CATEGORY_MAIN_NUM;
+ } else {
+ hcamcorder->conf_ctrl_info_table[CONFIGURE_CATEGORY_CTRL_CAMERA] = conf_ctrl_camera_table;
+ hcamcorder->conf_ctrl_info_table[CONFIGURE_CATEGORY_CTRL_STROBE] = conf_ctrl_strobe_table;
+ hcamcorder->conf_ctrl_info_table[CONFIGURE_CATEGORY_CTRL_EFFECT] = conf_ctrl_effect_table;
+ hcamcorder->conf_ctrl_info_table[CONFIGURE_CATEGORY_CTRL_PHOTOGRAPH] = conf_ctrl_photograph_table;
+ hcamcorder->conf_ctrl_info_table[CONFIGURE_CATEGORY_CTRL_CAPTURE] = conf_ctrl_capture_table;
+ hcamcorder->conf_ctrl_info_table[CONFIGURE_CATEGORY_CTRL_DETECT] = conf_ctrl_detect_table;
+
+ hcamcorder->conf_ctrl_category_size[CONFIGURE_CATEGORY_CTRL_CAMERA] = sizeof(conf_ctrl_camera_table) / info_table_size;
+ hcamcorder->conf_ctrl_category_size[CONFIGURE_CATEGORY_CTRL_STROBE] = sizeof(conf_ctrl_strobe_table) / info_table_size;
+ hcamcorder->conf_ctrl_category_size[CONFIGURE_CATEGORY_CTRL_EFFECT] = sizeof(conf_ctrl_effect_table) / info_table_size;
+ hcamcorder->conf_ctrl_category_size[CONFIGURE_CATEGORY_CTRL_PHOTOGRAPH] = sizeof(conf_ctrl_photograph_table) / info_table_size;
+ hcamcorder->conf_ctrl_category_size[CONFIGURE_CATEGORY_CTRL_CAPTURE] = sizeof(conf_ctrl_capture_table) / info_table_size;
+ hcamcorder->conf_ctrl_category_size[CONFIGURE_CATEGORY_CTRL_DETECT] = sizeof(conf_ctrl_detect_table) / info_table_size;
+
+ category_num = CONFIGURE_CATEGORY_CTRL_NUM;