diff options
author | Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | 2018-09-18 12:43:59 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | 2018-09-18 12:43:59 -0300 |
commit | 2ba02b7f99a05655feca585c27bd2e55bcefe014 (patch) | |
tree | 271e3a744d46f6d6d3068ba62c5b31d47023dc13 | |
parent | 5e9cf9ad9a646921f36c49e9f2a40d3b66e0a49f (diff) |
preserve last used resolution if not changed via command lineschemas
Store the last used resolution at Gconf's schema. This way, when
camorama is restarted, it will re-use it.
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
-rw-r--r-- | data/camorama.schemas.in | 24 | ||||
-rw-r--r-- | src/callbacks.c | 3 | ||||
-rw-r--r-- | src/interface.h | 2 | ||||
-rw-r--r-- | src/main.c | 12 |
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" @@ -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); |