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

📄 preferences.c

📁 LINUX下非常有名的视频采集和显示源代码,直接安装后可以使用,效果很好
💻 C
字号:
#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <getopt.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/ioctl.h>#include <sys/mman.h>#include <fcntl.h>#include <pthread.h>#include <linux/types.h> #include <gtk/gtk.h>#include <glib.h>#include <linux/videodev.h>#include <png.h>#include "gqcam.h"#include "frontend.h"#include "preferences.h"#include "save.h"#include "color.h"#include "greyscale.h"#include "timer.h"void pref_dialog(GtkWidget *widget, struct Camera *camera){  /*  GtkWidget *prefdialog;  GtkWidget *prefnotebook;  GtkWidget *generalpage;  GtkWidget *generaltab;  GtkWidget *autobright;  GtkWidget *filterspage;  GtkWidget *filterstab;  GtkWidget *rgbswap;  GtkWidget *button;  GtkWidget *label;  */  camera->pref_dialog.prefdialog = gtk_dialog_new();  camera->pref_dialog.prefnotebook = gtk_notebook_new();  gtk_box_pack_start (GTK_BOX (GTK_DIALOG(camera->pref_dialog.prefdialog)->vbox), camera->pref_dialog.prefnotebook, TRUE, TRUE, 0);  gtk_widget_show(camera->pref_dialog.prefnotebook);  camera->pref_dialog.generalpage = gtk_hbox_new(TRUE, 0);  gtk_widget_show(camera->pref_dialog.generalpage);  camera->pref_dialog.generaltab = gtk_label_new("General");  gtk_widget_show(camera->pref_dialog.generaltab);  camera->pref_dialog.autobright = gtk_check_button_new_with_label ("Autoscale brightness");  gtk_box_pack_start(GTK_BOX(camera->pref_dialog.generalpage), camera->pref_dialog.autobright, TRUE, TRUE, 0);  if(camera->autobright)    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(camera->pref_dialog.autobright), 1);  gtk_widget_show(camera->pref_dialog.autobright);  gtk_notebook_append_page(GTK_NOTEBOOK(camera->pref_dialog.prefnotebook), camera->pref_dialog.generalpage, camera->pref_dialog.generaltab);  camera->pref_dialog.filterspage = gtk_hbox_new(TRUE, 0);  gtk_widget_show(camera->pref_dialog.filterspage);  camera->pref_dialog.filterstab = gtk_label_new("Filters");  gtk_widget_show(camera->pref_dialog.filterstab);  camera->pref_dialog.rgbswap = gtk_check_button_new_with_label ("RGB -> BGR Conversion");  gtk_box_pack_start(GTK_BOX(camera->pref_dialog.filterspage), camera->pref_dialog.rgbswap, TRUE, TRUE, 0);  if(camera->swapcolors)    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(camera->pref_dialog.rgbswap), 1);  gtk_widget_show(camera->pref_dialog.rgbswap);  gtk_notebook_append_page(GTK_NOTEBOOK(camera->pref_dialog.prefnotebook), camera->pref_dialog.filterspage, camera->pref_dialog.filterstab);  camera->pref_dialog.button = gtk_button_new_with_label("Ok");  gtk_box_pack_start (GTK_BOX (GTK_DIALOG(camera->pref_dialog.prefdialog)->action_area), camera->pref_dialog.button, TRUE, TRUE, 0);  gtk_signal_connect (GTK_OBJECT(camera->pref_dialog.button), "clicked", (GtkSignalFunc) ok_prefs, camera);  gtk_widget_show (camera->pref_dialog.button);  camera->pref_dialog.button = gtk_button_new_with_label("Apply");  gtk_box_pack_start (GTK_BOX (GTK_DIALOG(camera->pref_dialog.prefdialog)->action_area), camera->pref_dialog.button, TRUE, TRUE, 0);  gtk_signal_connect (GTK_OBJECT(camera->pref_dialog.button), "clicked", (GtkSignalFunc) apply_prefs, camera);  gtk_widget_show (camera->pref_dialog.button);  camera->pref_dialog.button = gtk_button_new_with_label("Close");  gtk_box_pack_start (GTK_BOX (GTK_DIALOG(camera->pref_dialog.prefdialog)->action_area), camera->pref_dialog.button, TRUE, TRUE, 0);  gtk_signal_connect (GTK_OBJECT(camera->pref_dialog.button), "clicked", (GtkSignalFunc) closedialog, camera->pref_dialog.prefdialog);  gtk_widget_show (camera->pref_dialog.button);  gtk_widget_show(camera->pref_dialog.prefdialog);  return;}void read_pref_file(FILE *input, struct Camera *camera){  char buff[1024], command[1024];    int val=0;    while(fgets(buff, sizeof(buff), input) != NULL){    if((buff[0] != '#') && (buff[0] != '\n'))      {	sscanf(buff, " %s %d", command, &val);	//printf("%s: %d\n", command, val);	if(!strcmp(command, "autobrightness"))	  camera->autobright = val;	else if(!strcmp(command, "swaprgb")){	  camera->swapcolors = val;	}		else	  printf("Unknown preference: %s\n", command);	      }  }}void save_pref_file(FILE *output, struct Camera *camera){  fprintf(output, "autobrightness %d\n", camera->autobright);  fprintf(output, "swaprgb %d\n", camera->swapcolors);}void ok_prefs(GtkWidget *widget, struct Camera *camera){  apply_prefs(widget, camera);  closedialog(widget, camera->pref_dialog.prefdialog);}void apply_prefs(GtkWidget *widget, struct Camera *camera){  if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(camera->pref_dialog.rgbswap)))    camera->swapcolors=1;  else    camera->swapcolors=0;    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(camera->pref_dialog.autobright)))    camera->autobright = 1;  else    camera->autobright = 0;}

⌨️ 快捷键说明

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