/******************************************************************************* * lib_smartfb_priv.h * * History: * 2017/07/25 - [Hao Qian] created file * * Copyright (c) 2017 Ambarella, Inc. * * This file and its contents ( "Software" ) are protected by intellectual * property rights including, without limitation, U.S. and/or foreign * copyrights. This Software is also the confidential and proprietary * information of Ambarella, Inc. and its licensors. You may not use, reproduce, * disclose, distribute, modify, or otherwise prepare derivative works of this * Software or any portion thereof except pursuant to a signed license agreement * or nondisclosure agreement with Ambarella, Inc. or its authorized affiliates. * In the absence of such an agreement, you agree to promptly notify and return * this Software to Ambarella, Inc. * * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, * MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL AMBARELLA, INC. OR ITS AFFILIATES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; COMPUTER FAILURE OR MALFUNCTION; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * ******************************************************************************/ #ifndef _SMARTFB_LIB_PRIV_H #define _SMARTFB_LIB_PRIV_H #include "lib_smartfb.h" #ifndef LINE_SPACING #define LINE_SPACING(x) ((x) * 3 / 2) #endif #define SMARTFB_MAX_STRING_LEN (32) #define SMARTFB_BITS_PER_PIXEL_8 (8) #define SMARTFB_BITS_PER_PIXEL_32 (32) #define SMARTFB_MOSAIC_USED_COLOR_TAB_NUM (64) #define SMARTFB_USED_COLOR_TAB_NUM (SMARTFB_COLOR_NUM * SMARTFB_ALPHA_NUM) enum line_type { SMARTFB_LINE_DEGREE0_0 = 0, SMARTFB_LINE_DEGREE0_45 = 1, SMARTFB_LINE_DEGREE45_90 = 2, SMARTFB_LINE_DEGREE90_90 = 3, SMARTFB_LINE_DEGREE90_135 = 4, SMARTFB_LINE_DEGREE135_180 = 5, SMARTFB_LINE_TYPE_NUM, }; typedef struct fb_color_s { u16 r; u16 g; u16 b; } fb_color_t; struct fb_cmap_user { u32 start; /* First entry */ u32 len; /* Number of entries */ u16 *r; u16 *g; u16 *b; u16 *transparent; /* transparency, can be NULL */ }; typedef struct smartfb_saved_cap_area_params_s { u16 offset_x; u16 offset_y; u16 width; u16 height; char name[MAX_NAME_SIZE]; u8 *buffer; } smartfb_saved_cap_area_params_t; typedef struct smartfb_saved_cap_area_s { smartfb_saved_cap_area_params_t params[MAX_CAP_AREA_NUM]; u32 used_map : MAX_CAP_AREA_NUM; u32 reserved : (32 - MAX_CAP_AREA_NUM); } smartfb_saved_cap_area_t; typedef struct smartfb_context_s { u8 *fb_mem; u32 init_done : 1; u32 cycle_buffer_num : 4; u32 cur_cycle_buffer : 4; u32 drawed_cycle_buffer : 4; u32 mode_name : 1; u32 reserved : 18; int fb; // linux fb header struct fb_var_screeninfo var; struct fb_fix_screeninfo fix; // saved capture area smartfb_saved_cap_area_t saved_areas; } smartfb_context_t; #endif //_SMARTFB_LIB_PRIV_H