1 /* ---------------------------------------------------------------------------- 2 * Copyright (c) Huawei Technologies Co., Ltd. 2017-2019. All rights reserved. 3 * Description: LiteOS USB Driver Hicamera Control HeadFile 4 * Author: huangjieliang 5 * Create: 2017-11-25 6 * Redistribution and use in source and binary forms, with or without modification, 7 * are permitted provided that the following conditions are met: 8 * 1. Redistributions of source code must retain the above copyright notice, this list of 9 * conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list 11 * of conditions and the following disclaimer in the documentation and/or other materials 12 * provided with the distribution. 13 * 3. Neither the name of the copyright holder nor the names of its contributors may be used 14 * to endorse or promote products derived from this software without specific prior written 15 * permission. 16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 18 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 20 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 23 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 25 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * --------------------------------------------------------------------------- */ 28 /* ---------------------------------------------------------------------------- 29 * Notice of Export Control Law 30 * =============================================== 31 * Huawei LiteOS may be subject to applicable export control laws and regulations, which might 32 * include those applicable to Huawei LiteOS of U.S. and the country in which you are located. 33 * Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such 34 * applicable export control laws and regulations. 35 * --------------------------------------------------------------------------- */ 36 37 #ifndef HICAMERA_CONTROL_H 38 #define HICAMERA_CONTROL_H 39 40 #ifdef __cplusplus 41 #if __cplusplus 42 extern "C" { 43 #endif /* __cplusplus */ 44 #endif /* __cplusplus */ 45 46 #define CMD_MAX_NUM 32 47 48 #define HICAMERA_GET_VERSION_CONTROL 0x01 49 #define HICAMERA_START_UPDATE_CONTROL 0x02 50 #define HICAMERA_TRUN_ON_CONTROL 0x03 51 #define HICAMERA_TRUN_OFF_CONTROL 0x04 52 #define HICAMERA_RESET_CONTROL 0x05 53 #define HICAMERA_VIBRATOR_UP_CONTROL 0x06 54 #define HICAMERA_VIBRATOR_DOWN_CONTROL 0x07 55 #define HICAMERA_VIBRATOR_LEFT_CONTROL 0x08 56 #define HICAMERA_VIBRATOR_RIGHT_CONTROL 0x09 57 58 enum camera_cmd 59 { 60 CMD_CAMERA_UNIT_CONTROL = 1, 61 CMD_PROCESS_UNIT_CONTROL = 2, 62 CMD_HICAMERA_UNIT_CONTROL = 0x11, /* Extern unit */ 63 CMD_H264_UNIT_CONTROL = 0xa, /* Extern unit */ 64 }; 65 66 typedef uint32_t (*camera_control_func)(void *buf, uint32_t len, uint32_t event_id, uint32_t cmdtype); 67 68 struct uvc_camera_cmd 69 { 70 uint32_t id; 71 uint8_t name[32]; 72 camera_control_func uvc_control_func; 73 }; 74 75 extern void hi_camera_cmd_init(void); 76 extern int hi_camera_register_cmd(struct uvc_camera_cmd *cmd); 77 extern int run_cmd_func(void *buf, uint32_t len, uint32_t event_id, uint32_t cmdtype, uint32_t cmd_id); 78 79 #ifdef __cplusplus 80 #if __cplusplus 81 } 82 #endif /* __cplusplus */ 83 #endif /* __cplusplus */ 84 85 #endif 86