⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pthread_live.h

📁 1、基于韩国at2041芯片开发的Linux环境的DVR代码。 2、以原来代码进行了修改。 3、主要修改网络通讯出现异常问题处理 4、硬盘覆盖录像不起作用
💻 H
字号:
/* set tabstop=4 */
/********************************************************************************
 *                                                                              *
 * Copyright(C) 2004  Penta-Micro                                               *
 *                                                                              *
 * ALL RIGHT RESERVED                                                           *
 *                                                                              *
 * This software is the property of Penta-Micro and is furnished under          *
 * license by Penta-Micro. This software may be used only in accordance         *	
 * with the terms of said license. This copyright notice may not be             *
 * removed, modified or obliterated without the prior written permission        *
 * of Penta-Micro.                                                              *
 *                                                                              *
 * This software may not be copyed, transmitted, provided to or otherwise       *
 * made available to any other person, company, corporation	or other entity     *
 * except as specified in the terms of said license.                            *
 *                                                                              *
 * No right, title, ownership or other interest in the software is hereby       *
 * granted or transferred.                                                      *
 *                                                                              *
 * The information contained herein is subject to change without notice and     *
 * should not be construed as a commitment by Penta-Micro.                      *
 *                                                                              *
 ********************************************************************************
 
  MODULE NAME:  PTHREAD_LIVE.H
  
  REVISION HISTORY:
  
  Date       Ver Name                  Description
  ---------- --- --------------------- -----------------------------------------
 06/30/2004 2.0 CheulBeck(whitefe)       Created 
 07/20/2005 2.1 JiGwanKang(xchannel)  Modified 
 ...............................................................................
 
  DESCRIPTION:
  
  This Module contains definition for Live function.
  
 ...............................................................................
*/    
 
#ifndef __PTHREAD_LIVE_H
#define __PTHREAD_LIVE_H


/** ************************************************************************* ** 
 ** includes
 ** ************************************************************************* **/
#include "typedef.h"

 
/** ************************************************************************* ** 
 ** defines
 ** ************************************************************************* **/

/** ************************************************************************* ** 
 ** typedefs
 ** ************************************************************************* **/
typedef enum {
	LIVE_MAIN = 0,
	LIVE_SINGLE_CH1,
	LIVE_SINGLE_CH2,	
	LIVE_SINGLE_CH3,	
	LIVE_SINGLE_CH4,	
	LIVE_SINGLE_PB,	
	LIVE_MULTI_4CH,
	LIVE_DISP_TIME,
	LIVE_MAX_ID
} LIVE_ID;

typedef enum {
	LM_REC_CH1 = 0,
	LM_MOTION_CH1,
	LM_SENSOR_CH1,	
	LM_REC_CH2,	
	LM_MOTION_CH2,
	LM_SENSOR_CH2,	
	LM_REC_CH3,	
	LM_MOTION_CH3,
	LM_SENSOR_CH3,	
	LM_REC_CH4,	
	LM_MOTION_CH4,	// 10
	LM_SENSOR_CH4
} ITEM_LIVE_MAIN;

typedef enum {
	LS_REC_CH1 = 0,
	LS_MOTION_CH1,
	LS_SENSOR_CH1	
} ITEM_LIVE_SINGLE_CH1;

typedef enum {
	LS_REC_CH2 = 0,
	LS_MOTION_CH2,
	LS_SENSOR_CH2	
} ITEM_LIVE_SINGLE_CH2;

typedef enum {
	LS_REC_CH3 = 0,
	LS_MOTION_CH3,
	LS_SENSOR_CH3	
} ITEM_LIVE_SINGLE_CH3;

typedef enum {
	LS_REC_CH4 = 0,
	LS_MOTION_CH4,
	LS_SENSOR_CH4	
} ITEM_LIVE_SINGLE_CH4;

typedef enum {
	LS_REC_PB = 0
} ITEM_LIVE_SINGLE_PB;

typedef enum {
	LM4_REC_CH1 = 0,
	LM4_MOTION_CH1,
	LM4_SENSOR_CH1,	
	LM4_REC_CH2,	
	LM4_MOTION_CH2,
	LM4_SENSOR_CH2,	
	LM4_REC_CH3,	
	LM4_MOTION_CH3,
	LM4_SENSOR_CH3,	
	LM4_REC_PB
} ITEM_LIVE_MULTI_4CH;

typedef enum {
	LDT_YEAR = 0,
	LDT_MONTH,
	LDT_DAY,	
	LDT_HOUR,
	LDT_MINUTE,
	LDT_SECOND	,
	LDT_PTZ
} ITEM_LIVE_DISP_TIME;

typedef struct __LIVE_DISPLAY__ {
	UNS16	state_enc;
	UNS16	state_motionosd;
} LIVE_DISPLAY;

typedef struct __LIVE_OBJECT__ {	
	UNS16		      sig_id;
	UNS16		      sig_value;
	LIVE_ID		      prev_id;	
	LIVE_ID		      cur_id;
	LIVE_ID		      next_id;
	S16			      cur_loc;	
	S16			      osd_loc;
	UNS16		      create_menu;
	LIVE_MON		cur_mode;		// mode for live video monitoring 
	LIVE_MON		prev_mode;
	LIVE_DISPLAY	disp;	
	SETUP_PARAM	*param;
} LIVE_OBJECT;

typedef struct __LIVE_FUNC__
{
	RETURN (*func_ptr)(LIVE_OBJECT *pso);
} LIVE_FUNC;

typedef struct __FUNC_ID__ {
	LIVE_FUNC func_id[LIVE_MAX_ID];	
} FUNC_ID;

/* Definition fot LIVE MENU */
typedef struct{
	S16    xstart;
	S16    ystart;
	S16    color;
	UNS8 str[50];
	S16    attribute;
	S16    font_space;
	S16    active;
	S16    value;
} MENU_FONT_t;

typedef struct{
	S16    start;
	S16    end;
} MENU_ACTIVE_ITEM_t;

#define LIVE_MAX_ITEMS 60

#define font_xstart(x)		(x)
#define font_ystart(x)		(x)
#define MAX_SPOT_OUT_TIME 5

static MENU_ACTIVE_ITEM_t live_menu_active[LIVE_MAX_ID] = {
	{0,11},{0,2},{0,2},{0,2},{0,2},{0,1},{0,10},{0,0}
};
static MENU_FONT_t live_menu_font[LIVE_MAX_ID][LIVE_MAX_ITEMS] = {
	{      //LIVE MAIN
		  {	font_xstart( 3), font_ystart( 1), WHITE, "CH1",	      0,0,1,0	// 0
		},{	font_xstart( 7), font_ystart( 1), RED, "",		            0,0,1,0
		},{	font_xstart( 9), font_ystart( 1), RED, "",		            0,0,1,0
		},{	font_xstart(26), font_ystart( 1), WHITE, "CH2",	      0,0,1,0
		},{	font_xstart(30), font_ystart( 1), RED, "",		      0,0,1,0
		},{	font_xstart(32), font_ystart( 1), RED, "",		      0,0,1,0
		},{	font_xstart( 3), font_ystart(13), WHITE, "CH3",	      0,0,1,0
		},{	font_xstart( 7), font_ystart(13), RED, "",	            0,0,1,0
		},{	font_xstart( 9), font_ystart(13), RED, "",	            0,0,1,0
		},{	font_xstart(26), font_ystart(13), WHITE, "CH4",	      0,0,1,0
		},{	font_xstart(30), font_ystart(13), RED, "",	            0,0,1,0	// 10
		},{	font_xstart(32), font_ystart(13), RED, "",	            0,0,1,0
		},{	-1,			      -1,			        FILL, "",			1,0,-1
		},
	},	
	{      //LIVE_SINGLE_CH1 
		  {	font_xstart( 3), font_ystart( 1), WHITE, "CH1",	      0,0,1,0
		},{	font_xstart( 7), font_ystart( 1), RED, "",		            0,0,1,0
		},{	font_xstart( 9), font_ystart( 1), RED, "",		            0,0,1,0
		},{	-1,			      -1,			      FILL, "",			      1,0,-1
		},
	},	
	{      //LIVE_SINGLE_CH2 
		  {	font_xstart( 3), font_ystart( 1), WHITE, "CH2",	      0,0,1,0
		},{	font_xstart( 7), font_ystart( 1), RED, "",		            0,0,1,0
		},{	font_xstart( 9), font_ystart( 1), RED, "",		            0,0,1,0
		},{	-1,			      -1,			       FILL, "",			1,0,-1
		},
	},
	{      //LIVE_SINGLE_CH3 
		  {	font_xstart( 3), font_ystart( 1), WHITE, "CH3",	      0,0,1,0
		},{	font_xstart( 7), font_ystart( 1), RED, "",		            0,0,1,0
		},{	font_xstart( 9), font_ystart( 1), RED, "",		            0,0,1,0
		},{	-1,			      -1,			       FILL,"",			      1,0,-1
		},
	},
	{      //LIVE_SINGLE_CH4 
		  {	font_xstart( 3), font_ystart( 1), WHITE, "CH4",		0,0,1,0
		},{	font_xstart( 7), font_ystart( 1), RED, "",		            0,0,1,0
		},{	font_xstart( 9), font_ystart( 1), RED, "",		            0,0,1,0
		},{	-1,			      -1,			       FILL,"",			      1,0,-1
		},
	},
	{      //LIVE_SINGLE_PB 
		  {	font_xstart( 3), font_ystart( 1), WHITE, "PB:     MULTI CH",0,0,1,0
		},{	font_xstart(26), font_ystart(20), RED, "        ",		0,0,1,0
		},{	-1,			      -1,			       FILL,     "",			1,0,-1
		},
	},	
	{      //LIVE_MULTI_4CH
		  {	font_xstart( 3), font_ystart( 1), WHITE, "CH1",	       0,0,1,0	// 0
		},{	font_xstart( 7), font_ystart( 1), RED, "",		             0,0,1,0
		},{	font_xstart( 9), font_ystart( 1), RED, "",		             0,0,1,0
		},{	font_xstart(26), font_ystart( 1), WHITE, "CH2",	       0,0,1,0
		},{	font_xstart(30), font_ystart( 1), RED, "",		       0,0,1,0
		},{	font_xstart(32), font_ystart( 1), RED, "",		       0,0,1,0
		},{	font_xstart( 3), font_ystart(13), WHITE, "CH3",	       0,0,1,0
		},{	font_xstart( 7), font_ystart(13), RED, "",	             0,0,1,0
		},{	font_xstart( 9), font_ystart(13), RED, "",	             0,0,1,0
		},{	font_xstart(26), font_ystart(13), WHITE, "PB:     MULTI CH",      0,0,1,0
		},{	font_xstart(26), font_ystart(20), RED, "        ",	 	 0,0,1,0
		},{	-1,			      -1,			        FILL,"",			 1,0,-1
		},
	},	
	{      //LIVE_DISP_TIME 
		  {	font_xstart( 3), font_ystart(21), WHITE, "2005/",        0,0,1,0
		},{	font_xstart( 8), font_ystart(21), WHITE, "01/",	       0,0,1,0
		},{	font_xstart(11), font_ystart(21),  WHITE, "01/",	       0,0,1,0
		},{	font_xstart(14), font_ystart(21), WHITE, "12:",           0,0,1,0
		},{	font_xstart(17), font_ystart(21), WHITE, "00:",	       0,0,1,0
		},{	font_xstart(20), font_ystart(21), WHITE, "00",	       0,0,1,0		
	      },{	font_xstart(24), font_ystart(21), RED, "         ",         0,0,1,0	
             /* for disk free space display*/
	      },{	font_xstart(36), font_ystart(18), WHITE, "",               0,0,1,0	
	      },{	font_xstart(36), font_ystart(19), WHITE, "",               0,0,1,0	
	      },{	font_xstart(36), font_ystart(20), WHITE, "",               0,0,1,0	
	      },{	font_xstart(36), font_ystart(21), WHITE, "",               0,0,1,0	
		},{	-1,			       -1,			        FILL,    "",			 1,0,-1
		},
	}			  
};


  
/** ************************************************************************* ** 
 ** function prototypes
 ** ************************************************************************* **/
void	            *pthread_live(void *args);
RETURN	live_create_menu(LIVE_ID id);
void	            live_clear_menu(LIVE_ID id);
void	            live_select_menu(LIVE_OBJECT *pso, S16 up_down);
void         	live_update_osd(LIVE_OBJECT *pso);
RETURN	live_set_monitoring(LIVE_MON mode);
void 		update_display(LIVE_MON mode);
void	            live_font_ystart_init(VIDEO_MODE mode);
RETURN	autoselect_spotout(UNS16 ch);
void            set_motion_block_print(UNS8 ch);
RETURN     get_disk_space(void);
#endif 
/* __PTHREAD_LIVE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -