📄 callbacks.c
字号:
gtk_range_set_adjustment(range,adj); } } } int click2_flag=0; int i=0;gbooleanclick2 (GtkWidget *widget, GdkEventButton *event, gpointer user_data){ static int click=0; if(event->type!=GDK_2BUTTON_PRESS) return 0; click2_flag++; if(click2_flag%2==1) { gtk_widget_hide(lookup_widget(window1,"hbox1")); gtk_widget_hide(lookup_widget(window1,"hbox5")); gtk_widget_hide(lookup_widget(window1,"hbox6")); gtk_widget_hide(lookup_widget(window1,"menubar1")); w=1024; h=768; rect.x=0; rect.y=0; info.uWidth=w; info.uHeight=h; rect.uWidth=w; rect.uHeight=h; 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_SetPlayRect(port,rect)<0) fprintf(stderr,"\nHik_PlayM4_SetPlayRect failed!,Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode()); gtk_window_set_resizable (GTK_WINDOW (window1), TRUE); gtk_window_fullscreen(GTK_WINDOW(window1)); i++; } else { int w,h; if(Hik_PlayM4_GetPictureSize(port,&w,&h)<0) fprintf(stderr,"\nHik_PlayM4_GetPictureSize failed! Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode()); rect.x=0; rect.y=0; info.uWidth=w; info.uHeight=h; rect.uWidth=w; rect.uHeight=h; 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_SetPlayRect(port,rect)<0) fprintf(stderr,"\nHik_PlayM4_SetPlayRect failed!,Error 0x%lx",(unsigned long)Hik_PlayM4_GetLastErrorCode()); gtk_widget_set_size_request (lookup_widget(window1,"vbox3"), w, h); gtk_widget_set_size_request (lookup_widget(window1,"w_full_area"), w, h); gtk_widget_set_size_request (window1, w, h+80); gtk_widget_show(lookup_widget(window1,"hbox1")); gtk_widget_show(lookup_widget(window1,"hbox5")); gtk_widget_show(lookup_widget(window1,"hbox6")); gtk_widget_show(lookup_widget(window1,"menubar1")); gtk_window_unfullscreen(GTK_WINDOW(window1)); gtk_widget_set_size_request (lookup_widget(window1,"vbox3"), w, h); gtk_widget_set_size_request (lookup_widget(window1,"w_full_area"), w, h); gtk_widget_set_size_request (window1, w, h+80); } gtk_window_set_resizable (GTK_WINDOW (window1), FALSE); click++; return TRUE;}gbooleanmove_callback (GtkWidget *widget, GdkEventButton *event, gpointer user_data){ if(fileopenok) { int width,height; gdk_window_get_size(GDK_WINDOW(lookup_widget(window1,"w_full_area")->window),&width,&height); info.uWidth=width; info.uHeight=height; rect.x=0; rect.y=0; rect.uWidth=width; rect.uHeight=height; 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_SetPlayRect(port,rect)<0) fprintf(stderr,"\nHik_PlayM4_SetPlayRect failed!,Error 0x%x",(unsigned long)Hik_PlayM4_GetLastErrorCode()); } return TRUE;}voidset_picture_quality_callback (GtkButton *button, gpointer user_data){ int i; i=GPOINTER_TO_INT(user_data); if(i==1) { if(GTK_TOGGLE_BUTTON(button)->active) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog2,"w_low")),FALSE); if(Hik_PlayM4_SetPicQuality(port,1)<0) { fprintf(stderr,"\nHik_PlayM4_SetPicQuality failed! Error 0x%x",Hik_PlayM4_GetLastErrorCode()); } click2_high++; } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog2,"w_low")),TRUE); if(Hik_PlayM4_SetPicQuality(port,0)<0) { fprintf(stderr,"\nHik_PlayM4_SetPicQuality failed! Error 0x%x",Hik_PlayM4_GetLastErrorCode()); } click2_low++; } } else { if(GTK_TOGGLE_BUTTON(button)->active) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog2,"w_high")),FALSE); if(Hik_PlayM4_SetPicQuality(port,0)<0) { fprintf(stderr,"\nHik_PlayM4_SetPicQuality failed! Error 0x%x",Hik_PlayM4_GetLastErrorCode()); } click2_low++; } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog2,"w_high")),TRUE); if(Hik_PlayM4_SetPicQuality(port,1)<0) { fprintf(stderr,"\nHik_PlayM4_SetPicQuality failed! Error 0x%x",Hik_PlayM4_GetLastErrorCode()); } click2_high++; } }} voidon_closebutton1_clicked (GtkButton *button, gpointer user_data){ gtk_widget_hide(dialog);}voidon_file_info_activate (GtkMenuItem *menuitem, gpointer user_data){ dialog2=(gpointer)create_dialog2(); gtk_widget_show(dialog2); count++; char buf[100]; sprintf(buf,"%3d",Hik_PlayM4_GetFileHeadLength()); gtk_entry_set_text(GTK_ENTRY(lookup_widget(dialog2,"entry13")),buf);} voidon_closebutton2_clicked (GtkButton *button, gpointer user_data){ gtk_widget_hide(dialog2);} voidon_w_set_index_file_clicked (GtkButton *button, gpointer user_data){ } voidon_cut_file_activate (GtkMenuItem *menuitem, gpointer user_data){ cut_file=(gpointer)create_dialog3(); gtk_widget_show(cut_file); if(fileopenok) { char buf[100]; sprintf(buf,"0~%ld",Hik_PlayM4_GetFileFrames(port)); gtk_entry_set_text(GTK_ENTRY(lookup_widget(cut_file,"w_frame_num")),buf); sprintf(buf,"0~%ld",Hik_PlayM4_GetFileTime(port)); gtk_entry_set_text(GTK_ENTRY(lookup_widget(cut_file,"w_frame_time")),buf); } } voidon_cancelbutton1_clicked (GtkButton *button, gpointer user_data){ gtk_widget_hide(cut_file);}voidon_okbutton1_clicked (GtkButton *button, gpointer user_data){#if 1 unsigned int begin_pos; unsigned int end_pos; FRAME_POS pos_begin; FRAME_POS pos_end; long newfilelen; char *savefilename; char buf[2048]; long size=2048; long block; long count; long remain; int save_fd; FILE *org_fd; begin_pos=atoi(gtk_entry_get_text(GTK_ENTRY(lookup_widget(cut_file,"w_begin")))); end_pos=atoi(gtk_entry_get_text(GTK_ENTRY(lookup_widget(cut_file,"w_end")))); if(fileopenok) { if(GTK_TOGGLE_BUTTON(lookup_widget(cut_file,"w_by_num"))->active) { if((begin_pos>Hik_PlayM4_GetFileFrames(port))||(end_pos>Hik_PlayM4_GetFileFrames(port))||(begin_pos>end_pos)||(end_pos==0)) { fprintf(stderr,"\nInput value of pos error !\n"); return ; } else { if(Hik_PlayM4_GetKeyFramePos(port,begin_pos,BY_FRAMENUM,&pos_begin)<0) fprintf(stderr,"\nHIk_PlayM4_GetKeyFramePos failed! Error 0x%x",Hik_PlayM4_GetLastErrorCode()); if(Hik_PlayM4_GetNextKeyFramePos(port,end_pos,BY_FRAMENUM,&pos_end)<0) fprintf(stderr,"\nHIk_PlayM4_GetNextKeyFramePos failed! Error 0x%x",Hik_PlayM4_GetLastErrorCode()); newfilelen=pos_end.nFilePos-pos_begin.nFilePos; savefilename=(char*)gtk_entry_get_text(GTK_ENTRY(lookup_widget(cut_file,"w_save_file"))); save_fd=open(savefilename,O_WRONLY|O_CREAT,0777); if(save_fd<0) { perror(">>>open"); } else { ftruncate(save_fd,0); org_fd=fopen(filename,"rb"); if(org_fd==0) fprintf(stderr,"\nRead file %s failed!",filename); else { fseek(org_fd,0,SEEK_SET); if(fread(buf,Hik_PlayM4_GetFileHeadLength(),1,org_fd)==0) fprintf(stderr,"\nRead filehead failed!"); else { fprintf(stderr,"\nRead file head from org_file ok!"); if(write(save_fd,buf,Hik_PlayM4_GetFileHeadLength())<0) fprintf(stderr,"\nWrite file head failed!"); else fprintf(stderr,"\nWrite file head to save_file ok!\n fileheadlen=%d\n",Hik_PlayM4_GetFileHeadLength()); } fseek(org_fd,pos_begin.nFilePos,SEEK_SET); block=newfilelen/size; remain=newfilelen%size; for(count=0;count<block;count++) { if(fread(buf,size,1,org_fd)==0) fprintf(stderr,"\nRead file stream failed!"); else { if(write(save_fd,buf,size)<0) fprintf(stderr,"\nWrite file stream failed!"); } } if(fread(buf,remain,1,org_fd)==0) fprintf(stderr,"\nRead remain failed!"); else { if(write(save_fd,buf,remain)<0) fprintf(stderr,"\nWrite remain failed!"); } } } } } else if(GTK_TOGGLE_BUTTON(lookup_widget(cut_file,"w_by_time"))->active) { if((begin_pos>Hik_PlayM4_GetFileFrames(port))||(end_pos>Hik_PlayM4_GetFileFrames(port))||(begin_pos>end_pos)||(end_pos==0)) { fprintf(stderr,"\nInput value of pos error !"); return ; } else { if(Hik_PlayM4_GetKeyFramePos(port,begin_pos*1000,BY_FRAMETIME,&pos_begin)<0) fprintf(stderr,"\nHIk_PlayM4_GetKeyFramePos failed! Error 0x%x",Hik_PlayM4_GetLastErrorCode()); if(Hik_PlayM4_GetNextKeyFramePos(port,end_pos*1000,BY_FRAMETIME,&pos_end)<0) fprintf(stderr,"\nHIk_PlayM4_GetNextKeyFramePos failed! Error 0x%x",Hik_PlayM4_GetLastErrorCode()); newfilelen=pos_end.nFilePos-pos_begin.nFilePos; savefilename=(char*)gtk_entry_get_text(GTK_ENTRY(lookup_widget(cut_file,"w_save_file"))); save_fd=open(savefilename,O_WRONLY|O_CREAT,0777); if(save_fd<0) { perror(">>>open"); } else { ftruncate(save_fd,0); org_fd=fopen(filename,"rb"); if(org_fd==0) fprintf(stderr,"\nRead file %s failed!",filename); else { fseek(org_fd,0,SEEK_SET); if(fread(buf,Hik_PlayM4_GetFileHeadLength(),1,org_fd)==0) fprintf(stderr,"\nRead filehead failed!"); else { fprintf(stderr,"\nRead file head from org_file ok!"); if(write(save_fd,buf,Hik_PlayM4_GetFileHeadLength())<0) fprintf(stderr,"\nWrite file head failed!"); else fprintf(stderr,"\nWrite file head to save_file ok!\n fileheadlen=%d\n",Hik_PlayM4_GetFileHeadLength()); } fseek(org_fd,pos_begin.nFilePos,SEEK_SET); block=newfilelen/size; remain=newfilelen%size; for(count=0;count<block;count++) { if(fread(buf,size,1,org_fd)==0) fprintf(stderr,"\nRead file stream failed!"); else { if(write(save_fd,buf,size)<0) fprintf(stderr,"\nWrite file stream failed!"); } } if(fread(buf,remain,1,org_fd)==0) fprintf(stderr,"\nRead remain failed!"); else { if(write(save_fd,buf,remain)<0) fprintf(stderr,"\nWrite remain failed!"); } } } } } } gtk_widget_hide(cut_file);#endif } voidon_set_index_file_activate (GtkMenuItem *menuitem, gpointer user_data){ if(GTK_CHECK_MENU_ITEM(menuitem)->active) { select_index_file=(gpointer)create_fileselection2(); gtk_widget_show(select_index_file); } } voidon_button1_clicked (GtkButton *button, gpointer user_data){ gtk_widget_hide(select_index_file); }voidon_button2_clicked (GtkButton *button, gpointer user_data){ indexfile=(char *)(gtk_file_selection_get_filename(GTK_FILE_SELECTION(select_index_file))); set_index_file++; gtk_widget_hide(select_index_file); }voidon_w_use_progress_clicked (GtkButton *button, gpointer user_data){ if(GTK_TOGGLE_BUTTON(button)->active) { progress_click++; } }voidon_w_ok_begin_clicked (GtkButton *button, gpointer user_data){ progress_click=0; static int start_pos; char buf[100]; if(GTK_TOGGLE_BUTTON(lookup_widget(cut_file,"w_ok_begin"))->active) { if(!(GTK_TOGGLE_BUTTON(lookup_widget(cut_file,"w_by_time"))->active)) { start_pos=atoi(gtk_entry_get_text(GTK_ENTRY(lookup_widget(window1,"w_current_frame")))); sprintf(buf,"%3d",start_pos); gtk_entry_set_text(GTK_ENTRY(lookup_widget(cut_file,"w_begin")),buf); } else { start_pos=Hik_PlayM4_GetPlayedTime(port); sprintf(buf,"%3d",start_pos); gtk_entry_set_text(GTK_ENTRY(lookup_widget(cut_file,"w_begin")),buf); } ok_begin++; }}voidon_w_ok_end_clicked (GtkButton *button, gpointer user_data){ int end_pos; char buf[100]; if(ok_begin) { if(GTK_TOGGLE_BUTTON(button)->active) { if(!(GTK_TOGGLE_BUTTON(lookup_widget(cut_file,"w_by_time"))->active)) { end_pos=atoi(gtk_entry_get_text(GTK_ENTRY(lookup_widget(window1,"w_current_frame")))); sprintf(buf,"%3d",end_pos); gtk_entry_set_text(GTK_ENTRY(lookup_widget(cut_file,"w_end")),buf); } else { end_pos=Hik_PlayM4_GetPlayedTime(port); sprintf(buf,"%3d",end_pos); gtk_entry_set_text(GTK_ENTRY(lookup_widget(cut_file,"w_end")),buf); } } ok_begin=0; } }voidon_replay_activate (GtkMenuItem *menuitem, gpointer user_data){ if(GTK_CHECK_MENU_ITEM(menuitem)->active) { replay++; } else { replay=0; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -