示例#1
0
文件: gtkam-save.c 项目: ndim/gtkam
static void
store_save_settings(GtkamSave *save)
{
	gchar *savedir,*t;
	gchar buf[5];

	/* Directory */
	savedir = g_strdup (gtk_file_chooser_get_filename (
			      GTK_FILE_CHOOSER_DIALOG (save)));
	if (savedir) {
		if (strlen (savedir) > 255)
			savedir[255] = '\0';

		if (!g_file_test (savedir, G_FILE_TEST_IS_DIR)) {
			t = g_path_get_dirname (savedir);
			g_free (savedir);
			savedir = t;
		}
		gp_setting_set ("gtkam", "save-dir", savedir);
		g_free (savedir);
	}
	
	/* toggle buttons */
#define STORE_TOGGLE(NAME) \
	snprintf(buf,sizeof(buf), "%d", gtk_toggle_button_get_active(	\
		save->priv->toggle_ ## NAME)); 				\
	gp_setting_set("gtkam","save-" #NAME,buf)
	
	STORE_TOGGLE(preview);
	STORE_TOGGLE(normal);
	STORE_TOGGLE(raw);
	STORE_TOGGLE(audio);
	STORE_TOGGLE(exif);
	STORE_TOGGLE(filename_camera);

	/* prefix entry */
	if (g_slist_length (save->priv->data) > 1) {
		/* only when saving several files */
		gp_setting_set("gtkam", "save-prefix", (gchar *)
			gtk_entry_get_text (GTK_ENTRY (save->priv->prefix_entry)));
	}
}
示例#2
0
static int
camera_exit (Camera *camera, GPContext *context) 
{
	char buf[2];

	if (camera->pl != NULL) {
		buf[0] = '0' + camera->pl->syncdatetime;
		buf[1] = 0;
		gp_setting_set ("st2205", "syncdatetime", buf);
		gp_setting_set ("st2205", "orientation", orientation_to_string
						(camera->pl->orientation));
#ifdef HAVE_ICONV
		if (camera->pl->cd != (iconv_t) -1)
			iconv_close (camera->pl->cd);
#endif
		st2205_close (camera);
		free (camera->pl);
		camera->pl = NULL;
	}
	return GP_OK;
}
示例#3
0
static int
camera_set_config (Camera *camera, CameraWidget *window, GPContext *context)
{
	CameraWidget *w;
	char *wvalue;
	int val;
	char str[16];

	GP_DEBUG ("camera_set_config()");

	gp_widget_get_child_by_label (window, _("Exposure level on preview"), &w);
	if (gp_widget_changed (w)) {
		gp_widget_get_value (w, &wvalue);
		camera->pl->exposure = MAX(MIN_EXPOSURE,MIN(MAX_EXPOSURE,atoi(wvalue)));
		gp_setting_set ("dimera3500", "exposure", wvalue);
		GP_DEBUG ("set exposure");
	}

	gp_widget_get_child_by_label (window, _("Automatic exposure adjustment on preview"), &w);
	if (gp_widget_changed (w)) {
		gp_widget_get_value (w, &val);
		camera->pl->auto_exposure = val;
		sprintf(str, "%d", val);
		gp_setting_set ("dimera3500", "auto_exposure", str);
		GP_DEBUG ("set auto_exposure");
	}

	gp_widget_get_child_by_label (window, _("Automatic flash on capture"), &w);
	if (gp_widget_changed (w)) {
		gp_widget_get_value (w, &val);
		camera->pl->auto_flash = val;
		sprintf(str, "%d", val);
		gp_setting_set ("dimera3500", "auto_flash", str);
		GP_DEBUG ("set auto_flash");
	}

	GP_DEBUG ("done configuring driver.");

	return GP_OK;
}
示例#4
0
static int
camera_exit (Camera *camera, GPContext *context) 
{
	char buf[2];

	if (camera->pl != NULL) {
		buf[0] = '0' + camera->pl->syncdatetime;
		buf[1] = 0;
		gp_setting_set("tp6801", "syncdatetime", buf);
		tp6801_close (camera);
		free (camera->pl);
		camera->pl = NULL;
	}
	return GP_OK;
}
示例#5
0
/**
 * ptp_nikon_getwifiguid:
 *
 * This command gets the GUID of this machine. If it does not exists, it creates
 * one.
 *  
 * params:	PTPParams*
 *
 * Return values: Some PTP_RC_* code.
 *
 **/
void
ptp_nikon_getptpipguid (unsigned char* guid) {
	char buffer[1024];
	int i;
	long val;
	int valid;
	char* endptr;
	char* pos;
	
	gp_setting_get("ptp2_ip","guid",buffer);
	
	if (strlen(buffer) == 47) { /* 47 = 16*2 (numbers) + 15 (semi-colons) */
		pos = buffer;
		valid = 1;
		for (i = 0; i < 16; i++) {
			val = strtol(pos, &endptr, 16);
			if (((*endptr != ':') && (*endptr != 0)) || (endptr != pos+2)) {
				valid = 0;
				break;
			}
			guid[i] = (unsigned char)val;
			pos += 3;
		}
		/*printf("GUID ");
		for (i = 0; i < 16; i++) {
			printf("%02x:", guid[i]);
		}
		printf("\n");*/
		if (valid)
			return;
	}
	
	/*fprintf(stderr, "Invalid GUID\n");*/
	
	/* Generate an ID */
	srand(time(NULL));
	buffer[0] = 0;
	pos = buffer;
	for (i = 0; i < 16; i++) {
		guid[i] = (unsigned char) ((256.0 * rand()) / RAND_MAX);
		pos += sprintf(pos, "%02x:", guid[i]);
	}
	buffer[47] = 0;
	
	/*printf("New GUID: %s\n", buffer);*/
	
	gp_setting_set("ptp2_ip","guid",buffer);
}
示例#6
0
static int
camera_config_set (Camera *camera, CameraWidget *window, GPContext *context) 
{
	int ret;
	CameraWidget *turbo;

	ret = gp_widget_get_child_by_name (window, "turbo", &turbo);
	if (ret != GP_OK) {
		gp_log (GP_LOG_ERROR, "camera_config_set", "did not find turbo menu entry?\n");
		return GP_OK;
	}
	if (gp_widget_changed (turbo)) {
		const char* val;
		int ival;

		ret = gp_widget_get_value (turbo, &val);
		if (ret == GP_OK) {
			ival = !strcmp (val, _("On"));
			gp_log (GP_LOG_DEBUG, "camera_config_set", "val %s, ival %d\n", val, ival);
			gp_setting_set ("topfield", "turbo", ival?"yes":"no");
		}
	}
	return GP_OK;
}