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

📄 callbacks.c

📁 海康威视视频采集卡linux开发包4.22版
💻 C
📖 第 1 页 / 共 2 页
字号:
#ifdef HAVE_CONFIG_H#  include <config.h>#endif#include <gtk/gtk.h>#include "callbacks.h"#include "interface.h"#include "support.h"#include "playsdkpu.h"#include <gdk/gdkx.h>#include <SDL/SDL.h>#include <time.h> #include <fcntl.h>int pic_index;int replay=0;int use_progress=0;int progress_click=0;int ok_begin=0;GtkWidget* select_index_file;int set_index_file=0;int click2_low=0;int click2_high=0;char *indexfile;int click_index=0;int fileopencount=0;GtkWidget *dialog2,*dialog,*cut_file;int count=0;int audio=0;int play_audio=0;int step=0;int forword=0;int capture_count=0;char SDL_windowhack[32];GtkWidget*w_drawingarea;extern long current_time;long total_time;int port=0;GtkWidget*file_select;PLAYRECT rect;INITINFO  info;char *filename;int fileopenok=0;extern GtkWidget*window1;int   process_time(gpointer data);extern GtkWidget* range;extern GtkAdjustment*adj;extern int w,h;extern long  total_frame;extern int current_frame;gbooleanmy_exit                                (GtkWidget       *widget,                                        GdkEvent        *event,                                        gpointer         user_data){	gtk_main_quit();	return TRUE;}gbooleanexpose_ev_full                         (GtkWidget       *widget,                                        GdkEventExpose  *event,                                        gpointer         user_data){		GdkColormap *colormap;	GdkColor color;	colormap=gdk_colormap_get_system();	gdk_color_parse("black",&color);	if(gdk_color_alloc(colormap,&color)<0)		g_error("Alloc color failed!");	gdk_window_set_background(widget->window,&color);	gdk_window_clear(widget->window);}voidon_open_activate                      (GtkMenuItem     *menuitem,                                        gpointer         user_data){	if(fileopencount)	{		if(Hik_PlayM4_StopSound(port)<0)		{			if(Hik_PlayM4_GetLastErrorCode()!=0)					fprintf(stderr,"\nHik_PlayM4_StopSound failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());	   		}	}	progress_click=0;	use_progress=0;		file_select=(gpointer)create_fileselection1();        	gtk_widget_show(file_select);}voidon_close_activate                      (GtkMenuItem     *menuitem,                                        gpointer         user_data){	if(fileopenok)	{			if(Hik_PlayM4_Stop(port)<0)			fprintf(stderr,"\nHik_pLAYM4_Stop failed!");			gdk_window_clear(lookup_widget(window1,"w_full_area")->window);		if(fileopencount)		{			if(Hik_PlayM4_StopSound(port)<0)			{				if(Hik_PlayM4_GetLastErrorCode()!=0)				fprintf(stderr,"\nHik_PlayM4_StopSound failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());	   			}		}		progress_click=0;		use_progress=0;	}	}voidon_quit_activate                      (GtkMenuItem     *menuitem,                                        gpointer         user_data){	gtk_main_quit();}voidon_about_activate                     (GtkMenuItem     *menuitem,                                        gpointer         user_data){	dialog=(gpointer)create_dialog1();	gtk_widget_show(dialog);	}void  filerefcallback(int port){        }voidfile_open_ok                           (GtkButton       *button,                                        gpointer         user_data){	if(fileopenok)	{		if(Hik_PlayM4_CloseFile(port)<0)			fprintf(stderr,"\nHik_PlayM4_Closeile failed!,Error  0x%x",(unsigned long)Hik_PlayM4_GetLastErrorCode());				fileopenok=0;	}				long totalframes=-1;	long total_frame;	char buf[30];		GtkWidget*temp_total_frame;		rect.x=0;	rect.y=0;	w_drawingarea=lookup_widget(window1,"w_full_area");	filename=(char *)(gtk_file_selection_get_filename(GTK_FILE_SELECTION(file_select)));		{		#if 1		sprintf(SDL_windowhack, "SDL_WINDOWID=%ld",				GDK_WINDOW_XWINDOW(w_drawingarea->window));		putenv(SDL_windowhack);#endif			}	info.uWidth=1280;  	info.uHeight=1024;  	rect.uWidth=352;	rect.uHeight=288;		if(Hik_PlayM4_Init(info,1)<0)  		fprintf(stderr,"\nHik_PlayM4_Init  failed! Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());  	  	if(Hik_PlayM4_SetDisplay(info.uWidth,info.uHeight)<0)  		fprintf(stderr,"\nHik_PlayM4_SetDisplay failed! Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());  	if(Hik_PlayM4_SetFileRefCallBack(port,filerefcallback)<0)  		fprintf(stderr,"\nHik_PlayM4_SetFileRefCallBack  failed! Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());   	if(set_index_file) 	{  				if(Hik_PlayM4_SetIndexFile(port,indexfile)<0)				fprintf(stderr,"\nHIk_PlayM4_SetIndexFile failed! Error 0x%x",Hik_PlayM4_GetLastErrorCode());		set_index_file=0;		fprintf(stderr,"\nSet index file OK!\n");  	}				     	if(Hik_PlayM4_OpenFile(port,filename)<0)	{		fprintf(stderr,"\nHik_PlayM4_Openfile failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());		return ;	}		if(Hik_PlayM4_Play(port,rect)<0)		fprintf(stderr,"\nHik_PlayM4_Playfailed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());	fileopencount++;	if(Hik_PlayM4_PlaySound(port)<0)		fprintf(stderr,"\nHik_PlayM4_PlaySound failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());	   	gtk_timeout_add(1000/10,(GtkFunction)process_time,NULL);	temp_total_frame=lookup_widget(window1,"w_total_frame");	total_frame=Hik_PlayM4_GetFileFrames(port);	sprintf(buf,"%3ld",total_frame);	gtk_entry_set_text(GTK_ENTRY(temp_total_frame),buf);		total_time=Hik_PlayM4_GetFileTime(port);	sprintf(buf,"%02d:%02d:%02d",total_time/3600,total_time%3600/60,total_time%3600%60);	gtk_entry_set_text(GTK_ENTRY(lookup_widget(window1,"w_end_time")),buf);	gtk_widget_hide(file_select);	fileopenok++;						}voidfile_cancel_ok                         (GtkButton       *button,                                        gpointer         user_data){	gtk_widget_hide(file_select);	}voidplay_callback                          (GtkButton       *button,                                        gpointer         user_data){	if(fileopenok)	{			if(Hik_PlayM4_Play(port,rect)<0)			fprintf(stderr,"\nHik_PlayM4_Play failed!.Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());		if(audio)		{		        if(Hik_PlayM4_PlaySound(port)<0)		     {		             if((unsigned long)Hik_PlayM4_GetLastErrorCode()!=0)		             fprintf(stderr,"\nHik_PlayM4_PlaySouind failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode()); 		     }		 }  	}                if((current_time-1==total_time)||(current_time==total_time))         {                        if(Hik_PlayM4_SetCurrentFrameNum(port,0)<0)        		fprintf(stderr,"\nHik_PlayM4_SetCurrentFrameNum failed! Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());  		                        if (Hik_PlayM4_SetPlayPos(port,0)<0)        		fprintf(stderr,"\nHik_PlayM4_SetPlayPosfailed! Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());         } 		}voidpause_callback                         (GtkButton       *button,                                        gpointer         user_data){	if(fileopenok)	{		if(GTK_TOGGLE_BUTTON(button)->active)		{			if(Hik_PlayM4_Pause(port,1)<0)				fprintf(stderr,"\nHik_PlayM4_Pause  failed!.Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());		}		else		{			if(Hik_PlayM4_Pause(port,0)<0)				fprintf(stderr,"\nHik_PlayM4_Pause  failed!.Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());			if(Hik_PlayM4_PlaySound(port)<0)		        {		                       if((unsigned long)Hik_PlayM4_GetLastErrorCode()!=0)		                       fprintf(stderr,"\nHik_PlayM4_PlaySouind failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode()); 		         }		     							}			}	}voidstop_callback                          (GtkButton       *button,                                        gpointer         user_data){	if(fileopenok)	{		if(GTK_TOGGLE_BUTTON(button)->active)		{			if(Hik_PlayM4_Stop(port)<0)					fprintf(stderr,"\nHik_PlayM4_Stop failed!.Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());		}				audio++;	}				}voidgoto_start_callback                    (GtkButton       *button,                                        gpointer         user_data){	if(fileopenok)	{	      if(Hik_PlayM4_SetCurrentFrameNum(port,0)<0)  		fprintf(stderr,"\nHik_PlayM4_SetCurrentFrameNum failed! Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());  		  	      if (Hik_PlayM4_SetPlayPos(port,0)<0)  		fprintf(stderr,"\nHik_PlayM4_SetPlayPosfailed! Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());   	  	     	     					}}voidforward_callback                       (GtkButton       *button,                                        gpointer         user_data){        if(fileopenok)    {	    step++;	    if(step%3==2)	   {	       	                Hik_PlayM4_ThrowBFrameNum(port, 2);		if(Hik_PlayM4_Fast(port)<0)			fprintf(stderr,"\nHik_PlayM4_Fast failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());            }                 else if(step%3==1)            {		Hik_PlayM4_ThrowBFrameNum(port, 1);		if(Hik_PlayM4_Fast(port)<0)			fprintf(stderr,"\nHik_PlayM4_Fast failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());		    }             else if(step%3==0)	    {			                             Hik_PlayM4_ThrowBFrameNum(port, 0);                            if(Hik_PlayM4_Play(port,rect)<0)		fprintf(stderr,"\nHik_PlayM4_Play  failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());	    }                        }           			}voidback_callback                          (GtkButton       *button,                                        gpointer         user_data){      	if(fileopenok)	{                   if(GTK_TOGGLE_BUTTON(button)->active)           {		if(Hik_PlayM4_Slow(port)<0)			fprintf(stderr,"\nHik_PlayM4_Slow  failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());           }						   else	   {	       	               Hik_PlayM4_ThrowBFrameNum(port, 0);                            if(Hik_PlayM4_Play(port,rect)<0)		fprintf(stderr,"\nHik_PlayM4_Play  failed!,Error  0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());	    }	}	}voidgoto_end_callback                      (GtkButton       *button,                                        gpointer         user_data){	if(fileopenok)	{			Hik_PlayM4_SetCurrentFrameNum(port, total_frame - 1);	}	Hik_PlayM4_SetPlayPos(port, 1);}voidstep_frame_callback                    (GtkButton       *button,                                        gpointer         user_data){             int  i;              i=GPOINTER_TO_INT(user_data);              if(i==1)       {                                                if(fileopenok)              {                                         if(Hik_PlayM4_OneByOne(port)<0)                       {                                                if((unsigned long)Hik_PlayM4_GetLastErrorCode()!=0)                                                  fprintf(stderr,"\nHik_Play_OneByOne failed! Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode());                        }               }       }          else                {                        if(fileopenok)            {                                if(Hik_PlayM4_OneByOneBack(port)<0)                                          fprintf(stderr,"\nHik_Play_OneByOne failed! Error 0x%x",Hik_PlayM4_GetLastErrorCode());           }       }                      }void  DisplayCallBack(int port, char *pBuf, long size, long width, long height, long stamp, long type,long reserved){	static int num = 0;		char bmp_filename[100],jpg_filename[100];	struct tm *tm;	char time_buf[100];		time_t now;		capture_count++;	if(capture_count==1)	{		now=time(NULL);		tm=localtime(&now);		strftime(time_buf,sizeof(time_buf),"%Y-%m-%d",tm);		if(pic_index==0)		{			sprintf(bmp_filename,"%s_%d.bmp",time_buf, num);			num++;			if(Hik_PlayM4_ConvertToBmpFile(pBuf,size,width,height,type,bmp_filename)<0)				fprintf(stderr,"\nHik_PlayM4_COvertToBmpFile  failed!.Error 0x%x",Hik_PlayM4_GetLastErrorCode());		}		else 		{			sprintf(jpg_filename,"%s_%d.jpg",time_buf,num);			num++;			Hik_PlayM4_SetJpegQuality(50);			if(Hik_PlayM4_ConvertToJpegFile(pBuf,size,width,height,type,jpg_filename)<0)				fprintf(stderr,"\nHik_PlayM4_Playm4_CovertToBmpFile  failed!.Error 0x%x",Hik_PlayM4_GetLastErrorCode());		}						}			}voidcapture_picture_callback               (GtkButton       *button,                                        gpointer         user_data){	pic_index=GPOINTER_TO_INT(user_data);	if(Hik_PlayM4_SetDisplayCallBack(port,DisplayCallBack)<0)		fprintf(stderr,"\nHik_PlayM4_DisplayCallBack failed!.Error 0x%x",Hik_PlayM4_GetLastErrorCode());	capture_count=0;}voidplay_audio_callback                    (GtkButton       *button,                                        gpointer         user_data){	if(GTK_TOGGLE_BUTTON(button)->active)	{		if(Hik_PlayM4_PlaySound(port)<0)		{                	       if(Hik_PlayM4_GetLastErrorCode()!=0)			fprintf(stderr,"\nHik_PlaytM4_PlaySound failed!.Error  0x%x",Hik_PlayM4_GetLastErrorCode());	       }	}	else	{		if(Hik_PlayM4_StopSound()<0)		{		    if(Hik_PlayM4_GetLastErrorCode()!=0)			fprintf(stderr,"\nHik_PlaytM4_StopSound failed!.Error  0x%x",Hik_PlayM4_GetLastErrorCode());                }	}	}int j=0;voidprocess_range_callback                 (GtkRange        *range,                                        gpointer         user_data){	int i;	int value;	GtkAdjustment *adju;	i=GPOINTER_TO_INT(user_data);	if(fileopenok)	{		if(i!=2)		{			adju=gtk_range_get_adjustment(range);			value=(gint)adju->value;			if(Hik_PlayM4_SetVolume(port,value)<0)				fprintf(stderr,"\nHik_PlayM4_SetVolume failed!.Error 0x%x",Hik_PlayM4_GetLastErrorCode());					}		else 		{			j++;			use_progress++;			gtk_window_set_resizable (GTK_WINDOW (window1), FALSE);			if(Hik_PlayM4_SetPlayPos(port,(float )(adj->value/100))<0)			{			    			    if(adj->value>0&&adj->value<100)				fprintf(stderr,"\nHik_PlayM4_SetPlayPos  failed!.Error 0x%x",Hik_PlayM4_GetLastErrorCode());		          		        }	

⌨️ 快捷键说明

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