1/* Copyright (c) 2013-2014, 2016, The Linux Foundation. All rights reserved. 2 * 3 * Redistribution and use in source and binary forms, with or without 4 * modification, are permitted provided that the following conditions are 5 * met: 6 * * Redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer. 8 * * Redistributions in binary form must reproduce the above 9 * copyright notice, this list of conditions and the following 10 * disclaimer in the documentation and/or other materials provided 11 * with the distribution. 12 * * Neither the name of The Linux Foundation nor the names of its 13 * contributors may be used to endorse or promote products derived 14 * from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * 28 */ 29 30#ifndef __MM_QCAMERA_SOCKET_H__ 31#define __MM_QCAMERA_SOCKET_H__ 32 33// System dependencies 34#include <arpa/inet.h> 35 36#undef __FD_SET 37#define __FD_SET(fd, fdsetp) \ 38 (((fd_set *)(fdsetp))->fds_bits[(fd) >> 5] |= (1LU<<((fd) & 31))) 39 40#undef __FD_CLR 41#define __FD_CLR(fd, fdsetp) \ 42 (((fd_set *)(fdsetp))->fds_bits[(fd) >> 5] &= ~(1LU<<((fd) & 31))) 43 44#undef __FD_ISSET 45#define __FD_ISSET(fd, fdsetp) \ 46 ((((fd_set *)(fdsetp))->fds_bits[(fd) >> 5] & (1LU<<((fd) & 31))) != 0) 47 48#undef __FD_ZERO 49#define __FD_ZERO(fdsetp) \ 50 (memset (fdsetp, 0, sizeof (*(fd_set *)(fdsetp)))) 51 52#define TUNESERVER_MAX_RECV 2048 53#define TUNESERVER_MAX(a, b) (((a) > (b)) ? (a) : (b)) 54 55#define TUNESERVER_GET_LIST 1014 56#define TUNESERVER_GET_PARMS 1015 57#define TUNESERVER_SET_PARMS 1016 58#define TUNESERVER_MISC_CMDS 1021 59 60#define TUNE_PREV_GET_INFO 0x0001 61#define TUNE_PREV_CH_CNK_SIZE 0x0002 62#define TUNE_PREV_GET_PREV_FRAME 0x0003 63#define TUNE_PREV_GET_JPG_SNAP 0x0004 64#define TUNE_PREV_GET_RAW_SNAP 0x0005 65#define TUNE_PREV_GET_RAW_PREV 0x0006 66 67typedef struct { 68 char data[128]; 69} tuneserver_misc_cmd; 70 71typedef enum { 72 TUNESERVER_RECV_COMMAND = 1, 73 TUNESERVER_RECV_PAYLOAD_SIZE, 74 TUNESERVER_RECV_PAYLOAD, 75 TUNESERVER_RECV_RESPONSE, 76 TUNESERVERER_RECV_INVALID, 77} tuneserver_recv_cmd_t; 78 79typedef struct { 80 uint16_t current_cmd; 81 tuneserver_recv_cmd_t next_recv_code; 82 uint32_t next_recv_len; 83 void *recv_buf; 84 uint32_t recv_len; 85 uint32_t send_len; 86 void *send_buf; 87} tuneserver_protocol_t; 88 89typedef enum { 90 TUNE_PREV_RECV_COMMAND = 1, 91 TUNE_PREV_RECV_NEWCNKSIZE, 92 TUNE_PREV_RECV_INVALID 93} tune_prev_cmd_t; 94 95typedef struct _eztune_preview_protocol_t { 96 uint16_t current_cmd; 97 tune_prev_cmd_t next_recv_code; 98 uint32_t next_recv_len; 99 int32_t send_len; 100 char* send_buf; 101 uint32_t send_buf_size; 102 uint32_t new_cnk_size; 103 uint32_t new_cmd_available; 104} prserver_protocol_t; 105 106typedef union { 107 struct sockaddr addr; 108 struct sockaddr_in addr_in; 109} mm_qcamera_sock_addr_t; 110 111int eztune_server_start(void *lib_handle); 112 113#endif /*__MM_QCAMERA_SOCKET_H__*/ 114