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

📄 callbacks.c

📁 Coriander is a GUI for controlling a Digital Camera (in the sense of the IIDC specs issued by the 1
💻 C
📖 第 1 页 / 共 4 页
字号:
voidon_global_iso_stop_clicked             (GtkButton       *button,                                        gpointer         user_data){  dc1394bool_t status;  camera_t* camera_ptr;  camera_ptr=cameras;  if (preferences.sync_control==1) {    if (dc1394_stop_iso_transmission(camera_ptr->camera_info.handle,63)!=DC1394_SUCCESS) {      MainError("Could not perform broadcast ISO command");    }    usleep(DELAY);    while (camera_ptr!=NULL) {      if (dc1394_get_iso_status(camera_ptr->camera_info.handle, camera_ptr->camera_info.id, &status)!=DC1394_SUCCESS)	MainError("Could not get ISO status");      else {	if (status==DC1394_TRUE) 	  MainError("Broacast ISO stop failed for a camera");	else 	  camera_ptr->misc_info.is_iso_on=DC1394_FALSE;	if (camera_ptr==camera) {	  UpdateIsoFrame();	  UpdateTransferStatusFrame();	}       }      camera_ptr=camera_ptr->next;    }   }  else {    while (camera_ptr!=NULL) {      if (camera_ptr->misc_info.is_iso_on==DC1394_TRUE) {	if (dc1394_stop_iso_transmission(camera_ptr->camera_info.handle,camera_ptr->camera_info.id)!=DC1394_SUCCESS) {	  MainError("Could not stop ISO transmission");	}	else {	  if (dc1394_get_iso_status(camera_ptr->camera_info.handle, camera_ptr->camera_info.id, &status)!=DC1394_SUCCESS)	    MainError("Could not get ISO status");	  else {	    if (status==DC1394_TRUE)	      MainError("Broacast ISO stop failed for a camera");	    else	      camera_ptr->misc_info.is_iso_on=DC1394_FALSE;	  }	} 	if (camera_ptr==camera) {	  UpdateIsoFrame();	  UpdateTransferStatusFrame();	}       }      camera_ptr=camera_ptr->next;    }   }}voidon_global_iso_restart_clicked          (GtkButton       *button,                                        gpointer         user_data){  on_global_iso_stop_clicked(GTK_BUTTON(lookup_widget(main_window,"global_iso_stop")),NULL);  on_global_iso_start_clicked(GTK_BUTTON(lookup_widget(main_window,"global_iso_start")),NULL);}voidon_global_iso_start_clicked            (GtkButton       *button,                                        gpointer         user_data){    dc1394bool_t status;  camera_t* camera_ptr;  camera_ptr=cameras;  if (preferences.sync_control==1) {    if (dc1394_start_iso_transmission(camera_ptr->camera_info.handle,63)!=DC1394_SUCCESS) {      MainError("Could not perform broadcast ISO command");    }    usleep(DELAY);    while (camera_ptr!=NULL) {      if (dc1394_get_iso_status(camera_ptr->camera_info.handle, camera_ptr->camera_info.id, &status)!=DC1394_SUCCESS)	MainError("Could not get ISO status");      else {	if (status==DC1394_FALSE) 	  MainError("Broacast ISO start failed for a camera");	else 	  camera_ptr->misc_info.is_iso_on=DC1394_TRUE;	if (camera_ptr==camera) {	  UpdateIsoFrame();	  UpdateTransferStatusFrame();	}       }      camera_ptr=camera_ptr->next;    }   }  else { // no sync:    while (camera_ptr!=NULL) {      if (camera_ptr->misc_info.is_iso_on==DC1394_FALSE) {	if (dc1394_start_iso_transmission(camera_ptr->camera_info.handle,camera_ptr->camera_info.id)!=DC1394_SUCCESS) {	  MainError("Could not stop ISO transmission");	}	else {	  if (dc1394_get_iso_status(camera_ptr->camera_info.handle, camera_ptr->camera_info.id, &status)!=DC1394_SUCCESS)	    MainError("Could not get ISO status");	  else {	    if (status==DC1394_FALSE)	      MainError("Broacast ISO stop failed for a camera");	    else	      camera_ptr->misc_info.is_iso_on=DC1394_TRUE;	  }	} 	if (camera_ptr==camera) {	  UpdateIsoFrame();	  UpdateTransferStatusFrame();	}       }      camera_ptr=camera_ptr->next;    }   }}voidon_prefs_save_date_tag_toggled         (GtkToggleButton *togglebutton,                                        gpointer         user_data){  savethread_info_t* info;  chain_t* service;  if (togglebutton->active)    camera->prefs.save_datenum=SAVE_TAG_DATE;  gnome_config_set_int("coriander/save/datenum",camera->prefs.save_datenum);  gnome_config_sync();  UpdatePrefsSaveFrame();  service=GetService(camera,SERVICE_SAVE);  if (service!=NULL) {    info=service->data;    info->datenum=camera->prefs.save_datenum;  }}voidon_prefs_save_num_tag_toggled          (GtkToggleButton *togglebutton,                                        gpointer         user_data){  savethread_info_t* info;  chain_t* service;  if (togglebutton->active)    camera->prefs.save_datenum=SAVE_TAG_NUMBER;  gnome_config_set_int("coriander/save/datenum",camera->prefs.save_datenum);  gnome_config_sync();  UpdatePrefsSaveFrame();  service=GetService(camera,SERVICE_SAVE);  if (service!=NULL) {    info=service->data;    info->datenum=camera->prefs.save_datenum;  }}voidon_prefs_ftp_date_tag_toggled          (GtkToggleButton *togglebutton,                                        gpointer         user_data){  ftpthread_info_t* info;  chain_t* service;  if (togglebutton->active)    camera->prefs.ftp_datenum=FTP_TAG_DATE;  gnome_config_set_int("coriander/ftp/datenum",camera->prefs.ftp_datenum);  gnome_config_sync();  UpdatePrefsFtpFrame();  service=GetService(camera,SERVICE_FTP);  if (service!=NULL) {    info=service->data;    info->datenum=camera->prefs.ftp_datenum;  }}voidon_prefs_ftp_num_tag_toggled           (GtkToggleButton *togglebutton,                                        gpointer         user_data){  ftpthread_info_t* info;  chain_t* service;  if (togglebutton->active)    camera->prefs.ftp_datenum=FTP_TAG_NUMBER;  gnome_config_set_int("coriander/ftp/datenum",camera->prefs.ftp_datenum);  gnome_config_sync();  UpdatePrefsFtpFrame();  service=GetService(camera,SERVICE_FTP);  if (service!=NULL) {    info=service->data;    info->datenum=camera->prefs.ftp_datenum;  }}voidon_ram_buffer_toggled                  (GtkToggleButton *togglebutton,                                        gpointer         user_data){  camera->prefs.use_ram_buffer=togglebutton->active;  gnome_config_set_int("coriander/save/use_ram_buffer",camera->prefs.use_ram_buffer);  gnome_config_sync();  UpdatePrefsSaveFrame();}voidon_ram_buffer_size_changed             (GtkEditable     *editable,                                        gpointer         user_data){  camera->prefs.ram_buffer_size=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(lookup_widget(main_window,"ram_buffer_size")));  gnome_config_set_int("coriander/save/ram_buffer_size",camera->prefs.ram_buffer_size);  gnome_config_sync();  UpdatePrefsSaveFrame();}voidon_malloc_test_clicked                 (GtkButton       *button,                                        gpointer         user_data){  unsigned char *temp;  char *stemp;  stemp=(char*)malloc(STRING_SIZE*sizeof(char));  // test if we can allocate enough memory  sprintf(stemp,"Trying to allocate %d MB...", camera->prefs.ram_buffer_size);  MainStatus(stemp);  temp=(unsigned char*)malloc(camera->prefs.ram_buffer_size*1024*1024*sizeof(unsigned char));  if (temp==NULL)    MainStatus("\tFailed to allocate memory");  else {    MainStatus("\tAllocation succeeded");    free(temp);  }  free(stemp);}voidon_dma_buffer_size_changed             (GtkEditable     *editable,                                        gpointer         user_data){  camera->prefs.dma_buffer_size=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(lookup_widget(main_window,"dma_buffer_size")));  gnome_config_set_int("coriander/receive/dma_buffer_size",camera->prefs.dma_buffer_size);  gnome_config_sync();}voidon_display_redraw_toggled              (GtkToggleButton *togglebutton,                                        gpointer         user_data){  if (togglebutton->active)    camera->prefs.display_redraw=DISPLAY_REDRAW_ON;  else    camera->prefs.display_redraw=DISPLAY_REDRAW_OFF;      gnome_config_set_int("coriander/display/redraw",camera->prefs.display_redraw);  gnome_config_sync();  UpdatePrefsDisplayFrame();}voidon_display_redraw_rate_changed         (GtkEditable     *editable,                                        gpointer         user_data){  camera->prefs.display_redraw_rate=gtk_spin_button_get_value_as_float(GTK_SPIN_BUTTON(lookup_widget(main_window,"display_redraw_rate")));  gnome_config_set_float("coriander/display/redraw_rate",camera->prefs.display_redraw_rate);  gnome_config_sync();  UpdatePrefsDisplayFrame();}voidon_sync_control_button_toggled        (GtkToggleButton *togglebutton,                                        gpointer         user_data){  preferences.sync_control=togglebutton->active;  gnome_config_set_int("coriander/global/sync_control",preferences.sync_control);  gnome_config_sync();}voidon_overlay_byte_order_YUYV_toggled     (GtkToggleButton *togglebutton,                                        gpointer         user_data){  if (togglebutton->active)    preferences.overlay_byte_order=OVERLAY_BYTE_ORDER_YUYV;  else    preferences.overlay_byte_order=OVERLAY_BYTE_ORDER_UYVY;  gnome_config_set_int("coriander/global/overlay_byte_order",preferences.overlay_byte_order);  gnome_config_sync();}voidon_overlay_byte_order_UYVY_toggled     (GtkToggleButton *togglebutton,                                        gpointer         user_data){  if (togglebutton->active)    preferences.overlay_byte_order=OVERLAY_BYTE_ORDER_UYVY;  else    preferences.overlay_byte_order=OVERLAY_BYTE_ORDER_YUYV;  gnome_config_set_int("coriander/global/overlay_byte_order",preferences.overlay_byte_order);  gnome_config_sync();}voidon_overlay_type_menu_activate           (GtkMenuItem     *menuitem,					 gpointer         user_data){  camera->prefs.overlay_type=(int)user_data;  gnome_config_set_int("coriander/display/overlay_type",camera->prefs.overlay_type);  gnome_config_sync();  UpdatePrefsDisplayOverlayFrame();}voidon_overlay_pattern_menu_activate        (GtkMenuItem     *menuitem,					 gpointer         user_data){  camera->prefs.overlay_pattern=(int)user_data;  gnome_config_set_int("coriander/display/overlay_pattern",camera->prefs.overlay_pattern);  gnome_config_sync();  UpdatePrefsDisplayOverlayFrame();}voidon_overlay_color_picker_color_set      (GnomeColorPicker *gnomecolorpicker,                                        guint            arg1,                                        guint            arg2,                                        guint            arg3,                                        guint            arg4,                                        gpointer         user_data){  //fprintf(stderr,"0x%x 0x%x 0x%x\n",arg1,arg2,arg3);  camera->prefs.overlay_color_r=arg1>>8;  camera->prefs.overlay_color_g=arg2>>8;  camera->prefs.overlay_color_b=arg3>>8;  gnome_config_set_int("coriander/display/overlay_color_r",camera->prefs.overlay_color_r);  gnome_config_set_int("coriander/display/overlay_color_g",camera->prefs.overlay_color_g);  gnome_config_set_int("coriander/display/overlay_color_b",camera->prefs.overlay_color_b);  gnome_config_sync();}voidon_overlay_file_subentry_changed       (GtkEditable     *editable,                                        gpointer         user_data){  char *tmp_ptr;  tmp_ptr=gtk_entry_get_text(GTK_ENTRY(lookup_widget(main_window,"overlay_file_subentry")));  strcpy(camera->prefs.overlay_filename,tmp_ptr);  gnome_config_set_string("coriander/display/overlay_filename",camera->prefs.overlay_filename);  gnome_config_sync();}voidon_save_filename_subentry_changed      (GtkEditable     *editable,                                        gpointer         user_data){  char *tmp_ptr;  tmp_ptr=gtk_entry_get_text(GTK_ENTRY(lookup_widget(main_window,"save_filename_subentry")));  strcpy(camera->prefs.save_filename,tmp_ptr);  gnome_config_set_string("coriander/save/filename",camera->prefs.save_filename);  gnome_config_sync();}

⌨️ 快捷键说明

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