aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--data/camorama.schemas.in24
-rw-r--r--src/callbacks.c3
-rw-r--r--src/interface.h2
-rw-r--r--src/main.c12
4 files changed, 38 insertions, 3 deletions
diff --git a/data/camorama.schemas.in b/data/camorama.schemas.in
index a902ce2..d248247 100644
--- a/data/camorama.schemas.in
+++ b/data/camorama.schemas.in
@@ -14,6 +14,30 @@
</schema>
<schema>
+ <key>/schemas/apps/camorama/width</key>
+ <applyto>/apps/camorama/width</applyto>
+ <owner>camorama</owner>
+ <type>int</type>
+ <default>0</default>
+ <locale name="C">
+ <short>Image width</short>
+ <long>Image width used by the camera. Zero means autoselect</long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/camorama/height</key>
+ <applyto>/apps/camorama/height</applyto>
+ <owner>camorama</owner>
+ <type>int</type>
+ <default>0</default>
+ <locale name="C">
+ <short>Image height</short>
+ <long>Image height used by the camera. Zero means autoselect</long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/camorama/preferences/append_ts_to_file</key>
<applyto>/apps/camorama/preferences/append_ts_to_file</applyto>
<owner>camorama</owner>
diff --git a/src/callbacks.c b/src/callbacks.c
index 1e81fba..7966014 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -394,6 +394,9 @@ void set_image_scale(cam_t *cam)
gtk_window_set_title(GTK_WINDOW(GTK_WIDGET(gtk_builder_get_object(cam->xml, "main_window"))),
title);
g_free(title);
+
+ gconf_client_set_int(cam->gc, GCONF_WIDTH, cam->width, NULL);
+ gconf_client_set_int(cam->gc, GCONF_HEIGHT, cam->height, NULL);
}
void on_change_size_activate(GtkWidget *widget, cam_t *cam)
diff --git a/src/interface.h b/src/interface.h
index 639b0a3..7083b38 100644
--- a/src/interface.h
+++ b/src/interface.h
@@ -2,6 +2,8 @@
#define GCONF_PREFS GCONF_PARENT "/preferences"
#define GCONF_DEVICE GCONF_PARENT "/device"
+#define GCONF_WIDTH GCONF_PARENT "/width"
+#define GCONF_HEIGHT GCONF_PARENT "/height"
#define GCONF_SAVE_DIR GCONF_PREFS "/save_dir"
#define GCONF_SAVE_FILE GCONF_PREFS "/save_file"
#define GCONF_FILE_TYPE GCONF_PREFS "/file_type"
diff --git a/src/main.c b/src/main.c
index 6447f51..d49e1f2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -129,9 +129,6 @@ static void activate(GtkApplication *app)
cam->debug = buggery;
- cam->width = x;
- cam->height = y;
-
get_geometry(cam);
if (ver) {
@@ -221,6 +218,15 @@ static void activate(GtkApplication *app)
NULL);
cam->show_effects = gconf_client_get_bool(cam->gc,
GCONF_SHOW_EFFECTS, NULL);
+ if (x)
+ cam->width = x;
+ else
+ cam->width = gconf_client_get_int(cam->gc, GCONF_WIDTH, NULL);
+
+ if (y)
+ cam->height = y;
+ else
+ cam->height = gconf_client_get_int(cam->gc, GCONF_HEIGHT, NULL);
if (use_read)
cam->dev = v4l2_open(cam->video_dev, O_RDWR);

Privacy Policy