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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bert
						Bert