📄 main.h
字号:
ALL = 0,
CONTI,
MOTION,
SENSOR,
} MODE_REC;
typedef enum {
MB_SIZE_1X = 1,
MB_SIZE_2X,
MB_SIZE_3X,
MB_SIZE_4X
} MOTION_BLOCK_SIZE;
typedef struct __ENC_CH__ {
UNS16 motion;
UNS16 sensor;
UNS16 schedule;
} ENC_CH;
typedef struct __STATE_ENC__ {
MAIN_STATE state;
UNS16 manual_rec;
UNS16 schedule_rec;
ENC_CH enc_ch[MAX_CH_NUM];
} STATE_ENC;
typedef enum {
D_PLAY = 0,
D_STOP,
D_PAUSE,
D_SLOW,
D_REW,
D_STEP_B,
D_FF,
D_STEP_F,
D_IDLE
} MODE_PLAY;
typedef struct __STATE_DEC__ {
MAIN_STATE state;
MODE_REC mode_rec;
MODE_PLAY mode_play;
UNS16 play_step;
UNS16 play_change;
S8 play_file[32];
PTHREAD_BUF signal;
} STATE_DEC;
typedef enum {
L_QUAD,
L_CH1,
L_CH2,
L_CH3,
L_CH4,
L_1CH_PB,
L_4CH_PB,
} LIVE_MON;
typedef enum {
MIN_01 = 01,
MIN_02 = 02,
MIN_05 = 05,
MIN_10 = 10,
MIN_15 = 15,
MIN_20 = 20,
MIN_25 = 25,
MIN_30 = 30,
MIN_60 = 60
} REC_TIME;
typedef struct __STATE_LIVE__ {
LIVE_MON mode_mon;
struct tm cur_time;
} STATE_LIVE;
typedef struct __STATE_DB__ {
sem_t search_sem;
} STATE_DB;
typedef struct __STATE_PTZ__ {
MAIN_STATE state;
} STATE_PTZ;
typedef enum {
ENOUGH = 0,
FULL
} DISK_STATE;
typedef struct __STATE_DISKM__ {
DISK_STATE state;
} STATE_DISKM;
typedef struct __PTHREAD_STATE__ {
STATE_MAIN state_main;
STATE_ENC state_enc;
STATE_DEC state_dec;
STATE_LIVE state_live;
STATE_DB state_db;
STATE_PTZ state_ptz;
STATE_DISKM state_diskm;
} PTHREAD_STATE;
/* ================TYPEDEF for SETUP_PARAM================== */
typedef struct __MOTION_PARAM__ {
UNS32 flag;
UNS32 sensitivity;
UNS32 area[AT2041_MB_TABLE];
} MOTION_PARAM;
typedef struct __SENSOR_PARAM__ {
UNS32 flag_in;
UNS32 flag_out;
UNS16 flag_in_noc;
UNS16 flag_out_noc;
UNS16 flag_out_duration;
} SENSOR_PARAM;
typedef struct __SCHEDULE_PARAM__ {
UNS32 flag;
// pentamicro 2006.01.11
struct tm from_time[MAX_DAY_OF_WEEK + 1]; /* for batch time set, add +1 */
struct tm to_time[MAX_DAY_OF_WEEK + 1]; /* for batch time set, add +1 */
} SCHEDULE_PARAM;
typedef struct __GLOBAL_PARAM__ {
UNS32 video_form;
UNS32 resolution;
} GLOBAL_PARAM;
typedef struct __ENCODER_PARAM__ {
UNS32 flag_conti_rec;
UNS32 frame_rate;
// UNS32 bit_rate;
// UNS32 vbr_q;
UNS32 cbr_q;
// UNS32 gop_nm;
// UNS32 gop_m;
MOTION_PARAM motion;
SENSOR_PARAM sensor;
SCHEDULE_PARAM schedule;
} ENCODER_PARAM;
// pentamicro 2006.01.11
typedef struct __WATERMARK_PARAM__ {
UNS32 flag_wm;
UNS32 strength;
UNS32 key;
} WATERMARK_PARAM;
typedef struct __ENC_ATTR__ {
UNS32 encoding_type;
WATERMARK_PARAM wm;
} ENC_ATTR;
typedef struct __DECODER_PARAM__ {
UNS32 play_conti;
} DECODER_PARAM;
typedef struct __NETWORK_PARAM__ {
UNS32 ipaddr;
UNS32 netmask;
UNS32 gateway;
UNS8 enetaddr[MAXLEN_ETHADDR];
UNS8 hostname[MAXLEN_HOSTNAME];
} NETWORK_PARAM;
typedef struct __PASSWORD_PARAM__ {
UNS16 id;
UNS16 value;
} PASSWORD_PARAM;
typedef struct __CAMERA_PARAM__ {
S16 brightness;
S16 contrast;
S16 color;
} CAMERA_PARAM;
typedef struct __PTZ_PARAM__ {
UNS16 cam_vendor;
UNS16 cam_speed;
UNS16 cam_ch;
UNS16 preset_start_pos;
UNS16 preset_end_pos;
UNS16 preset_interval;
UNS16 preset_seq_flag;
} PTZ_PARAM;
typedef struct __DISK_PARAM__ {
UNS16 slice_time;
UNS16 over_wt_flag;
UNS16 alive_hdd[MAX_DISK_NUM];
} DISK_PARAM;
typedef struct __SYSTEM_PARAM__ {
NETWORK_PARAM network;
CAMERA_PARAM camera[MAX_CH_NUM];
PASSWORD_PARAM password[USER_NUM];
PTZ_PARAM ptz;
DISK_PARAM disk;
} SYSTEM_PARAM;
typedef struct __SETUP_PARAM__ {
UNS32 magic_num;
GLOBAL_PARAM gp;
ENCODER_PARAM enc_ch[MAX_CH_NUM];
// pentamicro 2006.01.11
ENC_ATTR enc_attr;
DECODER_PARAM dec;
SYSTEM_PARAM sys;
} SETUP_PARAM;
/* ================TYPEDEF for RECORD DB================== */
typedef struct __DB_RECORD__ {
S8 fname[32];
UNS16 conti;
UNS16 motion;
UNS16 sensor;
S8 start_time[10];
S8 end_time[8];
UNS32 end_fp;
UNS32 prev_db_fp;
UNS32 next_db_fp;
} DB_RECORD;
/* type definition for picture info */
typedef struct __INFO_PICTURE__ {
UNS16 data_type;
UNS16 type;
UNS16 ch;
UNS16 loss;
UNS16 motion_start;
UNS16 motion_end;
UNS16 sensor_start;
UNS16 sensor_end;
UNS16 start_flag;
UNS16 last_flag;
UNS16 dummy;
UNS32 size;
UNS32 time;
UNS32 start_fp;
UNS16 event_indicator;
} INFO_PICTURE;
/* ================TYPEDEF for PTHREAD_DEC================== */
typedef enum {
TM_PLAY = 0,
TM_FAST,
TM_SLOW,
TM_STEP,
TM_PAUSE,
TM_NON_REAL_TIME
} TRICK_MODE;
typedef enum {
TD_FORWARD = 0,
TD_BACKWARD
} TRICK_DIR;
typedef enum {
TME_NORMAL = 0,
TME_REAL
} TRICK_METHOD;
typedef enum {
HDDA = 0,
HDDB,
HDDC,
HDDD
} HDD_ID;
// pentamicro 2006.01.11
#define MAX_SPOT_OUT_TIME 5
/* value list for CBR */
static UNS32 d1_cbr_val_list[5] = { 5, 10, 20, 40, 60 };
static UNS32 cif_cbr_val_list[5] = { 3, 5, 8, 10, 15 };
/* enc fps list */
#define MAX_NTSC_FPS_LIST 8
#define MAX_PAL_FPS_LIST 7
static UNS32 fps_list[MAX_NTSC_FPS_LIST] = { 0, 1, 5, 10, 15, 20, 25, 30 };
// pentamicro 2006.01.11
static UNS32 jpeg_q_val_list[5] = { 30, 40, 50, 60, 70 };
/** ************************************************************************* **
** function prototypes
** ************************************************************************* **/
RETURN nvram_check_magic_num(SETUP_PARAM *psp);
RETURN nvram_load_setup_value(SETUP_PARAM *psp);
#if 0//org code
RETURN set_sys_network(SETUP_PARAM *psp);
#endif
S32 db_record_count(void);
RETURN recreate_main_db(UNS32 all_record_cnt);
S32 compare(const void *a, const void *b);
BOOL pthread_read_signal(PTHREAD_BUF *rbuf, PTHREAD_ID thread_num, BOOL wait);
BOOL pthread_send_signal(PTHREAD_BUF *sbuf, PTHREAD_ID thread_num);
BOOL pthread_broadcast_signal(PTHREAD_BUF *sbuf, PTHREAD_ID thread_num);
RETURN pthread_initialize_mutex(void);
RETURN pthread_destory_mutex(void);
RETURN pthread_initialize_cond(void);
RETURN pthread_destroy_cond(void);
RETURN pthread_create_manager(void);
RETURN pthread_create_input(void);
RETURN pthread_create_live(void);
RETURN pthread_create_diskm(void);
RETURN pthread_create_setup(void);
RETURN pthread_create_search(void);
RETURN pthread_create_enc(void);
RETURN pthread_create_dec(void);
RETURN pthread_create_schedule(void);
#ifdef __TRANS_THR__
RETURN pthread_create_trans(void);
#endif
RETURN pthread_create_gpio(void);
RETURN pthread_create_ptz(void);
RETURN pthread_create_mouse(void);
RETURN load_font(void);
RETURN printregion(S16 x_offset, S16 y_offset, S16 x_size, S16 y_size, S16 color, S16 blend);
RETURN printfont(S16 x_offset, S16 y_offset, UNS8 *str, S16 color, S16 blend);
RETURN clear_osd_all(void);
void appversionprint(void);
#if 0//org code
void set_timesync(void);
#endif
void tw2834_motion_mask_set(SETUP_PARAM *psp);
// pentamicro 2006.01.11
void set_video_vertical_offset(VIDEO_MODE mode);
#endif /* __MAIN_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -