the do / gr-peach-opencv-project

Fork of gr-peach-opencv-project by the do

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers define.h Source File

define.h

00001 #ifndef DEFINE_H
00002 #define DEFINE_H
00003 
00004 #define VIDEO_CVBS             (0)                 /* Analog  Video Signal */
00005 #define VIDEO_CMOS_CAMERA      (1)                 /* Digital Video Signal */
00006 #define VIDEO_YCBCR422         (0)
00007 #define VIDEO_RGB888           (1)
00008 #define VIDEO_RGB565           (2)
00009 
00010 /**** User Selection *********/
00011 /** Camera setting **/
00012 #define VIDEO_INPUT_METHOD     (VIDEO_CMOS_CAMERA) /* Select  VIDEO_CVBS or VIDEO_CMOS_CAMERA                       */
00013 #define VIDEO_INPUT_FORMAT     (VIDEO_RGB565 )    /* Select  VIDEO_YCBCR422 or VIDEO_RGB888 or VIDEO_RGB565        */
00014 #define USE_VIDEO_CH           (0)                 /* Select  0 or 1            If selecting VIDEO_CMOS_CAMERA, should be 0.)               */
00015 #define VIDEO_PAL              (0)                 /* Select  0(NTSC) or 1(PAL) If selecting VIDEO_CVBS, this parameter is not referenced.) */
00016 /** LCD setting **/
00017 #define LCD_TYPE               (0)                 /* Select  0(4.3inch) or 1(7.1inch) */
00018 /*****************************/
00019 
00020 /** LCD shield config **/
00021 #if (LCD_TYPE == 0)
00022   #include "LCD_shield_config_4_3inch.h"
00023 #else
00024   #include "LCD_shield_config_7_1inch.h"
00025 #endif
00026 
00027 /** Video and Grapics (GRAPHICS_LAYER_0) parameter **/
00028 /* video input */
00029 #if USE_VIDEO_CH == (0)
00030   #define VIDEO_INPUT_CH       (DisplayBase::VIDEO_INPUT_CHANNEL_0)
00031   #define VIDEO_INT_TYPE       (DisplayBase::INT_TYPE_S0_VFIELD)
00032 #else
00033   #define VIDEO_INPUT_CH       (DisplayBase::VIDEO_INPUT_CHANNEL_1)
00034   #define VIDEO_INT_TYPE       (DisplayBase::INT_TYPE_S1_VFIELD)
00035 #endif
00036 
00037 /* NTSC or PAL */
00038 #if VIDEO_PAL == 0
00039   #define COL_SYS              (DisplayBase::COL_SYS_NTSC_358)
00040 #else
00041   #define COL_SYS              (DisplayBase::COL_SYS_PAL_443)
00042 #endif
00043 
00044 /* Video input and LCD layer 0 output */
00045 #if VIDEO_INPUT_FORMAT == VIDEO_YCBCR422
00046   #define VIDEO_FORMAT         (DisplayBase::VIDEO_FORMAT_YCBCR422)
00047   #define GRAPHICS_FORMAT      (DisplayBase::GRAPHICS_FORMAT_YCBCR422)
00048   #define WR_RD_WRSWA          (DisplayBase::WR_RD_WRSWA_NON)
00049 #elif VIDEO_INPUT_FORMAT == VIDEO_RGB565
00050   #define VIDEO_FORMAT         (DisplayBase::VIDEO_FORMAT_RGB565)
00051   #define GRAPHICS_FORMAT      (DisplayBase::GRAPHICS_FORMAT_RGB565)
00052   #define WR_RD_WRSWA          (DisplayBase::WR_RD_WRSWA_32_16BIT)
00053 #else
00054   #define VIDEO_FORMAT         (DisplayBase::VIDEO_FORMAT_RGB888)
00055   #define GRAPHICS_FORMAT      (DisplayBase::GRAPHICS_FORMAT_RGB888)
00056   #define WR_RD_WRSWA          (DisplayBase::WR_RD_WRSWA_32BIT)
00057 #endif
00058 
00059 /* The size of the video input is adjusted to the LCD size. */
00060 #define VIDEO_PIXEL_HW                LCD_PIXEL_WIDTH
00061 #define VIDEO_PIXEL_VW                LCD_PIXEL_HEIGHT
00062 
00063 /*! Frame buffer stride: Frame buffer stride should be set to a multiple of 32 or 128
00064     in accordance with the frame buffer burst transfer mode. */
00065 /* FRAME BUFFER Parameter GRAPHICS_LAYER_0 */
00066 #define FRAME_BUFFER_NUM              (3u)
00067 #if ( VIDEO_INPUT_FORMAT == VIDEO_YCBCR422 || VIDEO_INPUT_FORMAT == VIDEO_RGB565 )
00068   #define FRAME_BUFFER_BYTE_PER_PIXEL (2u)
00069 #else
00070   #define FRAME_BUFFER_BYTE_PER_PIXEL (4u)
00071 #endif
00072 #define FRAME_BUFFER_STRIDE           (((LCD_PIXEL_WIDTH * FRAME_BUFFER_BYTE_PER_PIXEL) + 31u) & ~31u)
00073 
00074 /* DRAW BUFFER Parameter GRAPHICS_LAYER_1 */
00075 #define DRAW_BUFFER_BYTE_PER_PIXEL   (2u)
00076 #define DRAW_BUFFER_STRIDE           (((LCD_PIXEL_WIDTH * DRAW_BUFFER_BYTE_PER_PIXEL) + 31u) & ~31u)
00077 
00078 //thedo__
00079 #define DRAW_BUFFER_STRIDE_LAYER_3           (((LCD_PIXEL_WIDTH * 4) + 31u) & ~31u)
00080 
00081 /* Draw panel parameter */
00082 #define DRAW_POINT                    (1u)
00083 
00084 /* IMAGE DOWN SAMPLE*/
00085 #define IMG_DOWN_SAMPLE                (2u)
00086 
00087 /* Touch number point */
00088 #define TOUCH_NUM                      (1u)
00089 
00090 #define SDCARD_NAME "SD"
00091 #define SDCARD_PATH "/SD"
00092 
00093 #define STORAGE_NAME                    "fs"
00094 #define HAAR_CASCADE_FACE_PATH          "/fs/lbpcascade_frontalface.xml"
00095 
00096 #define MODE_BTN_X                      16
00097 #define MODE_BTN_Y                      235
00098 
00099 #define REGIS_FACE_BTN_X                5
00100 #define REGIS_FACE_BTN_Y                130
00101 
00102 #define FACE_REG_ID_MENU_X              100
00103 #define FACE_REG_ID_MENU_Y              50
00104 
00105 #define FACE_REG_ACT_MENU_X             410
00106 #define FACE_REG_ACT_MENU_Y             80
00107 
00108 #define GESTURE_SAMPLING_BTN_X          410
00109 #define GESTURE_SAMPLING_BTN_Y          110
00110 
00111 #define M_PI                            (3.14159)
00112 #define HAAR_FILE_SIZE                  (51856)//(0xCA90)
00113 
00114 
00115 enum APP_MODE{
00116     FACE_DETECTION = 0,
00117     MOTION_DETECTION,
00118     FACE_RECOGNITION,
00119     GUESTURE_RECOGNITION,
00120     MODE_UNKNOWN
00121 };
00122 
00123 enum CLICKED_CODE
00124 {
00125     CLICKED_UNKNOWN = 0,
00126     CLICKED_REGIS_FACE,
00127     CLICKED_CHANGE_ID,
00128     CLICKED_ADD,
00129     CLICKED_IGNORE,
00130     CLICKED_HAND_SAMPLING
00131 };
00132 
00133 #define MAX_COUNTOURS (500)
00134 
00135 #if defined(__ICCARM__)
00136 /* 32 bytes aligned */
00137 #pragma data_alignment=32
00138 static uint8_t user_frame_buffer0[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT];
00139 #pragma data_alignment=32
00140 static uint8_t user_frame_buffer1[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT];
00141 #pragma data_alignment=32
00142 static uint8_t user_frame_buffer2[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT];
00143 #else
00144 /* 32 bytes aligned */
00145 static uint8_t user_frame_buffer0[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
00146 static uint8_t user_frame_buffer1[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
00147 static uint8_t user_frame_buffer2[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
00148 static uint8_t user_frame_buffer_draw[DRAW_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
00149 static uint8_t user_frame_buffer_draw_button[DRAW_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
00150 static uint8_t user_buf_draw_action_888[DRAW_BUFFER_STRIDE_LAYER_3 * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
00151 static uint8_t my_frame[FRAME_BUFFER_STRIDE * LCD_PIXEL_HEIGHT]__attribute((aligned(32)));
00152 #endif
00153 static uint8_t * FrameBufferTbl[FRAME_BUFFER_NUM] = {user_frame_buffer0, user_frame_buffer1, user_frame_buffer2};
00154 #if VIDEO_INPUT_METHOD == VIDEO_CVBS
00155 static volatile int32_t vfield_count = 0;
00156 #endif
00157 
00158 #endif //DEFINE_H