📄 callbacks.c
字号:
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 + -