www.pudn.com > HC_v4.22_scn_20070821.zip > main.c
/* * Initial main.c file generated by Glade. Edit as required. * Glade will not overwrite this file. */ #ifdef HAVE_CONFIG_H # include#endif #include #include "interface.h" #include "support.h" #include "hikplay.h" #include "playsdkpu.h" #include #include #include extern int replay; extern ok_begin; extern int use_progress; extern GtkWidget*cut_file; extern int progress_click; extern int click2_low,click2_high; extern int count; extern GtkWidget* dialog2; extern int click2_flag; extern int start_count; extern int end_count; SDL_Surface *pOverlayScreen; SDL_Overlay*pOverlaySurface; long current_time; GtkAdjustment *adj; long current_time; long total_time; extern int port; GtkWidget *window1; int current_frame; GtkWidget*temp; GTimer *countime=NULL; extern int fileopenok; extern PLAYRECT rect; int temp_width; int temp_height; long total_frame; extern INITINFO info; extern char *filename; int w=530,h=450; extern char SDL_windowhack[32]; GtkWidget* range; void xpm_button(GtkWidget* widget,const char ** xpm_name,const gchar *key) { GtkWidget*pixmap; GdkPixmap*gdk_pixmap; GdkBitmap *mask; GtkStyle*style; style=gtk_widget_get_default_style(); gdk_pixmap=gdk_pixmap_create_from_xpm_d(window1->window,&mask,&style->bg[GTK_STATE_NORMAL],(gchar**)xpm_name); pixmap=gtk_pixmap_new(gdk_pixmap,mask); gtk_widget_show(pixmap); gtk_container_add(GTK_CONTAINER(temp),pixmap); gtk_object_set_data_full(GTK_OBJECT(window1),key, temp,(GtkDestroyNotify)0); } void ch_seek(GtkAdjustment *adjust, gpointer data) { Hik_PlayM4_SetPlayPos(port, (float)adjust->value/100.0); } void Hik_ToggleFullScreen() { SDL_Surface *screen; screen = SDL_GetVideoSurface(); if(screen != NULL) printf("screen is not NULL\n"); if(SDL_WM_ToggleFullScreen(screen)) { printf("Toggled full screen - now %s\n", screen->flags & SDL_FULLSCREEN ? "fullscreen":"windowed"); } } int process_time(gpointer data) { GtkWidget*temp_total_frame; char buf[20]; char time_buf[20]; int retval; static w_temp,h_temp; int value; range=lookup_widget(window1,"w_time"); temp=lookup_widget(window1,"w_current_frame"); if((current_frame=Hik_PlayM4_GetCurrentFrameNum(port))<0) fprintf(stderr,"\nHik_PlayM4_GetPlayedFrames failed!,Error 0x%lx",(unsigned long )Hik_PlayM4_GetLastErrorCode()); sprintf(buf,"%3d",current_frame); gtk_entry_set_text(GTK_ENTRY(temp),buf); current_time=Hik_PlayM4_GetPlayedTime(port); sprintf(time_buf,"%02d:%02d:%02d",current_time/3600,current_time%3600/60,current_time%3600%60); gtk_entry_set_text(GTK_ENTRY(lookup_widget(window1,"w_start_time")),time_buf); adj=gtk_range_get_adjustment(GTK_RANGE(range)); adj->value = (current_time* 100)/total_time; gtk_window_set_resizable (GTK_WINDOW (window1), TRUE); if(replay) { if(current_time==total_time) { 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()); } } } if(fileopenok) { w_temp=w; h_temp=h; if(Hik_PlayM4_GetPictureSize(port,&w,&h)<0) fprintf(stderr,"\nHik_PlayM4_GetPictureSize failed! Error 0x%lx",(unsigned long )Hik_PlayM4_GetLastErrorCode()); if(((w_temp!=w)||(h_temp!=h))&&(click2_flag%2==0)) { 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%x",(unsigned long)Hik_PlayM4_GetLastErrorCode()); gtk_window_set_resizable (GTK_WINDOW (window1), FALSE); 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); } if(count) { int frame_rate; int abs_frame; frame_rate=Hik_PlayM4_GetCurrentFrameRate(port); sprintf(buf,"%3d",frame_rate); gtk_entry_set_text(GTK_ENTRY(lookup_widget(dialog2,"entry11")),buf); long int played_frame; played_frame=Hik_PlayM4_GetPlayedFrames(port); sprintf(buf,"%3ld",played_frame); gtk_entry_set_text(GTK_ENTRY(lookup_widget(dialog2,"entry12")),buf); abs_frame=Hik_PlayM4_GetAbsFrameNum(port); sprintf(buf,"%3d",abs_frame); gtk_entry_set_text(GTK_ENTRY(lookup_widget(dialog2,"entry14")),buf); } if(progress_click) { if(use_progress) { char buf[100]; if((GTK_TOGGLE_BUTTON(lookup_widget(cut_file,"w_by_time"))->active)) { sprintf(buf,"%3d",Hik_PlayM4_GetPlayedTime(port)); gtk_entry_set_text(GTK_ENTRY(lookup_widget(cut_file,"w_begin")),buf); } else { sprintf(buf,"%3d",atoi(gtk_entry_get_text(GTK_ENTRY(lookup_widget(window1,"w_current_frame"))))); gtk_entry_set_text(GTK_ENTRY(lookup_widget(cut_file,"w_begin")),buf); } } } if(ok_begin) { char buf[100]; if(!(GTK_TOGGLE_BUTTON(lookup_widget(cut_file,"w_by_time"))->active)) { sprintf(buf,"%3d",atoi(gtk_entry_get_text(GTK_ENTRY(lookup_widget(window1,"w_current_frame"))))); gtk_entry_set_text(GTK_ENTRY(lookup_widget(cut_file,"w_end")),buf); } else { sprintf(buf,"%3d",Hik_PlayM4_GetPlayedTime(port)); gtk_entry_set_text(GTK_ENTRY(lookup_widget(cut_file,"w_end")),buf); } } } return TRUE; } int main (int argc, char *argv[]) { #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif gtk_set_locale (); gtk_init (&argc, &argv); char sdl_windowhack[32]; /* * The following code was added by Glade to create one of each component * (except popup menus), just so that you see something after building * the project. Delete any components that you don't want shown initially. */ window1 = create_window1 (); gtk_widget_show (window1); temp=lookup_widget(window1,"w_play"); xpm_button(temp,xpm_play,"play"); temp=lookup_widget(window1,"w_pause"); xpm_button(temp,xpm_pause,"pause"); temp=lookup_widget(window1,"w_stop"); xpm_button(temp,xpm_stop,"stop"); temp=lookup_widget(window1,"w_goto_start"); xpm_button(temp,xpm_goto_start,"goto_start"); temp=lookup_widget(window1,"w_goto_end"); xpm_button(temp,xpm_goto_end,"goto_end"); temp=lookup_widget(window1,"w_back"); xpm_button(temp,xpm_back,"back"); temp=lookup_widget(window1,"w_forward"); xpm_button(temp,xpm_forward,"forward"); gtk_main (); return 0; }