Krolyxon
Commit ab28c9a

Branches

Refs →

nsxivab28c9a

Refactored remote changes

Author
Bert Münnich
Date
2013-12-31 16:38 +0100
Parent
078136d
Commit
ab28c9a8b9240d032fa84d50b1858cf553b134d7

+14 −24

4 files changed

  1. M Makefile +1 −1
  2. M config.def.h +1 −1
  3. M image.c +11 −20
  4. M image.h +1 −2
M Makefile View
@@ -1,4 +1,4 @@
1−VERSION = git-20131213
1+VERSION = git-20131231
22
33 PREFIX = /usr/local
44 MANPREFIX = $(PREFIX)/share/man
M config.def.h View
@@ -43,7 +43,7 @@ static const float zoom_levels[] = {
4343 enum {
4444 GIF_DELAY = 100, /* delay time (in ms) */
4545 GIF_AUTOPLAY = 1, /* autoplay when loaded [0/1] */
46− GIF_LOOP = -1 /* endless loop [0 / 1 / -1=as specified in file] */
46+ GIF_LOOP = 0 /* loop? [0: no, 1: endless, -1: as specified in file] */
4747 };
4848
4949 /* gamma correction: the user-visible ranges [-GAMMA_RANGE, 0] and
M image.c View
@@ -83,8 +83,7 @@ void img_init(img_t *img, win_t *win)
8383 img->alpha = !RENDER_WHITE_ALPHA;
8484 img->multi.cap = img->multi.cnt = 0;
8585 img->multi.animate = false;
86− img->multi.anim_repeats = -1;
87− img->multi.repeats_currently_left = 0;
86+ img->multi.repeat = 0;
8887
8988 img->cmod = imlib_create_color_modifier();
9089 img->gamma = MIN(MAX(options->gamma, -GAMMA_RANGE), GAMMA_RANGE);
@@ -146,8 +145,7 @@ bool img_load_gif(img_t *img, const fileinfo_t *file)
146145 }
147146 img->multi.cnt = 0;
148147 img->multi.sel = 0;
149− img->multi.anim_repeats = -1;
150− img->multi.repeats_currently_left = 0;
148+ img->multi.repeat = 0;
151149
152150 #if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5
153151 gif = DGifOpenFileName(file->path, NULL);
@@ -174,7 +172,7 @@ bool img_load_gif(img_t *img, const fileinfo_t *file)
174172
175173 DGifGetExtension(gif, &ext_code, &ext);
176174 while (ext) {
177− if (ext_code == 0xf9) { /*Graphics Control Extension*/
175+ if (ext_code == GRAPHICS_EXT_FUNC_CODE) {
178176 if (ext[1] & 1)
179177 transp = (int) ext[4];
180178 else
@@ -185,15 +183,11 @@ bool img_load_gif(img_t *img, const fileinfo_t *file)
185183 delay = MAX(delay, MIN_GIF_DELAY);
186184
187185 disposal = (unsigned int) ext[1] >> 2 & 0x7;
188− } else if (ext_code == 0xff) { /*Application Extension*/
189− if(ext[0] == 11 && memcmp(ext+1, "NETSCAPE2.0", 11) == 0) {
186+ } else if (ext_code == APPLICATION_EXT_FUNC_CODE) {
187+ if (ext[0] == 11 && memcmp(ext+1, "NETSCAPE2.0", 11) == 0) {
190188 DGifGetExtensionNext(gif, &ext);
191−
192− if(ext && ext[0] == 3 && ext[1] == 1) {
193− img->multi.repeats_currently_left =
194− img->multi.anim_repeats =
195− ((unsigned int) ext[3] << 8 | (unsigned int) ext[2]);
196− }
189+ if (ext && ext[0] == 3 && ext[1] == 1)
190+ img->multi.repeat = ((int) ext[3] << 8 | (int) ext[2]) - 1;
197191 }
198192 }
199193 ext = NULL;
@@ -811,15 +805,12 @@ bool img_frame_animate(img_t *img, bool restart)
811805 return false;
812806
813807 if (img->multi.sel + 1 >= img->multi.cnt) {
814− if (GIF_LOOP == 1 || (GIF_LOOP == -1 && img->multi.anim_repeats == 0) ) {
815− img_frame_goto(img, 0);
816− } else if(restart) {
808+ if (restart || GIF_LOOP == 1) {
817809 img_frame_goto(img, 0);
818− img->multi.repeats_currently_left =
819− (img->multi.anim_repeats != -1 ? img->multi.anim_repeats : 0);
820− } else if(GIF_LOOP == -1 && img->multi.repeats_currently_left != 0) {
810+ } else if (GIF_LOOP == -1 && img->multi.repeat != 0) {
811+ if (img->multi.repeat > 0)
812+ img->multi.repeat--;
821813 img_frame_goto(img, 0);
822− --img->multi.repeats_currently_left;
823814 } else {
824815 img->multi.animate = false;
825816 return false;
M image.h View
@@ -35,8 +35,7 @@ typedef struct {
3535 int cnt;
3636 int sel;
3737 bool animate;
38− int anim_repeats; // -1=don't repeat, 0=repeat infinitely, N=repeat N times
39− unsigned int repeats_currently_left;
38+ int repeat;
4039 } multi_img_t;
4140
4241 typedef struct {