Added EXIF_SUPPORT macro for optional dependency on libexif
This commit is contained in:
parent
bfab4dc328
commit
fdbc5cf76b
57
image.c
57
image.c
@ -18,7 +18,10 @@
|
|||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#ifdef EXIF_SUPPORT
|
||||||
#include <libexif/exif-data.h>
|
#include <libexif/exif-data.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef GIF_SUPPORT
|
#ifdef GIF_SUPPORT
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -38,6 +41,29 @@ enum { MIN_GIF_DELAY = 50 };
|
|||||||
float zoom_min;
|
float zoom_min;
|
||||||
float zoom_max;
|
float zoom_max;
|
||||||
|
|
||||||
|
void img_init(img_t *img, win_t *win) {
|
||||||
|
zoom_min = zoom_levels[0] / 100.0;
|
||||||
|
zoom_max = zoom_levels[ARRLEN(zoom_levels) - 1] / 100.0;
|
||||||
|
|
||||||
|
if (img) {
|
||||||
|
img->im = NULL;
|
||||||
|
img->multi.cap = img->multi.cnt = 0;
|
||||||
|
img->multi.animate = 0;
|
||||||
|
img->zoom = options->zoom;
|
||||||
|
img->zoom = MAX(img->zoom, zoom_min);
|
||||||
|
img->zoom = MIN(img->zoom, zoom_max);
|
||||||
|
img->aa = options->aa;
|
||||||
|
img->alpha = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (win) {
|
||||||
|
imlib_context_set_display(win->env.dpy);
|
||||||
|
imlib_context_set_visual(win->env.vis);
|
||||||
|
imlib_context_set_colormap(win->env.cmap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef EXIF_SUPPORT
|
||||||
void exif_auto_orientate(const fileinfo_t *file) {
|
void exif_auto_orientate(const fileinfo_t *file) {
|
||||||
ExifData *ed;
|
ExifData *ed;
|
||||||
ExifEntry *entry;
|
ExifEntry *entry;
|
||||||
@ -80,28 +106,7 @@ void exif_auto_orientate(const fileinfo_t *file) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* EXIF_SUPPORT */
|
||||||
void img_init(img_t *img, win_t *win) {
|
|
||||||
zoom_min = zoom_levels[0] / 100.0;
|
|
||||||
zoom_max = zoom_levels[ARRLEN(zoom_levels) - 1] / 100.0;
|
|
||||||
|
|
||||||
if (img) {
|
|
||||||
img->im = NULL;
|
|
||||||
img->multi.cap = img->multi.cnt = 0;
|
|
||||||
img->multi.animate = 0;
|
|
||||||
img->zoom = options->zoom;
|
|
||||||
img->zoom = MAX(img->zoom, zoom_min);
|
|
||||||
img->zoom = MIN(img->zoom, zoom_max);
|
|
||||||
img->aa = options->aa;
|
|
||||||
img->alpha = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (win) {
|
|
||||||
imlib_context_set_display(win->env.dpy);
|
|
||||||
imlib_context_set_visual(win->env.vis);
|
|
||||||
imlib_context_set_colormap(win->env.cmap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef GIF_SUPPORT
|
#ifdef GIF_SUPPORT
|
||||||
/* Originally based on, but in its current form merely inspired by Imlib2's
|
/* Originally based on, but in its current form merely inspired by Imlib2's
|
||||||
@ -285,14 +290,16 @@ int img_load(img_t *img, const fileinfo_t *file) {
|
|||||||
imlib_context_set_anti_alias(img->aa);
|
imlib_context_set_anti_alias(img->aa);
|
||||||
|
|
||||||
fmt = imlib_image_format();
|
fmt = imlib_image_format();
|
||||||
|
/* avoid unused-but-set-variable warning */
|
||||||
|
(void) fmt;
|
||||||
|
|
||||||
|
#ifdef EXIF_SUPPORT
|
||||||
if (!strcmp(fmt, "jpeg"))
|
if (!strcmp(fmt, "jpeg"))
|
||||||
exif_auto_orientate(file);
|
exif_auto_orientate(file);
|
||||||
|
#endif
|
||||||
#ifdef GIF_SUPPORT
|
#ifdef GIF_SUPPORT
|
||||||
if (!strcmp(fmt, "gif"))
|
if (!strcmp(fmt, "gif"))
|
||||||
img_load_gif(img, file);
|
img_load_gif(img, file);
|
||||||
#else
|
|
||||||
/* avoid unused-but-set-variable warning */
|
|
||||||
(void) fmt;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
img->scalemode = options->scalemode;
|
img->scalemode = options->scalemode;
|
||||||
|
11
thumbs.c
11
thumbs.c
@ -34,7 +34,9 @@
|
|||||||
#define st_atim st_atimespec
|
#define st_atim st_atimespec
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef EXIF_SUPPORT
|
||||||
void exif_auto_orientate(const fileinfo_t*);
|
void exif_auto_orientate(const fileinfo_t*);
|
||||||
|
#endif
|
||||||
|
|
||||||
const int thumb_dim = THUMB_SIZE + 10;
|
const int thumb_dim = THUMB_SIZE + 10;
|
||||||
char *cache_dir = NULL;
|
char *cache_dir = NULL;
|
||||||
@ -255,11 +257,14 @@ int tns_load(tns_t *tns, int n, const fileinfo_t *file,
|
|||||||
imlib_context_set_image(im);
|
imlib_context_set_image(im);
|
||||||
imlib_context_set_anti_alias(1);
|
imlib_context_set_anti_alias(1);
|
||||||
|
|
||||||
if (!cache_hit) {
|
|
||||||
fmt = imlib_image_format();
|
fmt = imlib_image_format();
|
||||||
if (!strcmp(fmt, "jpeg"))
|
/* avoid unused-but-set-variable warning */
|
||||||
|
(void) fmt;
|
||||||
|
|
||||||
|
#ifdef EXIF_SUPPORT
|
||||||
|
if (!cache_hit !strcmp(fmt, "jpeg"))
|
||||||
exif_auto_orientate(file);
|
exif_auto_orientate(file);
|
||||||
}
|
#endif
|
||||||
|
|
||||||
w = imlib_image_get_width();
|
w = imlib_image_get_width();
|
||||||
h = imlib_image_get_height();
|
h = imlib_image_get_height();
|
||||||
|
Loading…
Reference in New Issue
Block a user