[hackers] [sent] load slide image on-demand || Hiltjo Posthuma

From: <git_AT_suckless.org>
Date: Sat, 4 Jun 2016 17:28:06 +0200 (CEST)

commit 44a50ad94828d6375ebba9560109d06e9a163e5d
Author: Hiltjo Posthuma <hiltjo_AT_codemadness.org>
AuthorDate: Sat Jun 4 16:33:15 2016 +0200
Commit: Markus Teich <markus.teich_AT_stusta.mhn.de>
CommitDate: Sat Jun 4 17:26:50 2016 +0200

    load slide image on-demand
    
    previously an image file would be opened but only ffread when advancing to
    the slide, but when the slide was not used it gave an error:
    
            /usr/local/bin/2ff: failed to convert image/png
    
    this changes it to load the image on-demand once and "cache" it.

diff --git a/sent.c b/sent.c
index bde0de8..05902bf 100644
--- a/sent.c
+++ b/sent.c
_AT_@ -55,6 +55,7 @@ typedef struct {
         unsigned int linecount;
         char **lines;
         Image *img;
+ char *embed;
 } Slide;
 
 /* Purely graphic info */
_AT_@ -436,7 +437,7 @@ load(FILE *fp)
                         /* only make image slide if first line of a slide starts with _AT_ */
                         if (s->linecount == 0 && s->lines[0][0] == '_AT_') {
                                 memmove(s->lines[0], &s->lines[0][1], blen);
- s->img = ffopen(s->lines[0]);
+ s->embed = s->lines[0];
                         }
 
                         if (s->lines[s->linecount][0] == '\\')
_AT_@ -447,6 +448,9 @@ load(FILE *fp)
                 if (!p)
                         break;
         }
+
+ if (slidecount && slides[0].embed && slides[0].embed[0])
+ slides[0].img = ffopen(slides[0].embed);
 }
 
 void
_AT_@ -458,6 +462,8 @@ advance(const Arg *arg)
                 if (slides[idx].img)
                         slides[idx].img->state &= ~(DRAWN | SCALED);
                 idx = new_idx;
+ if (!slides[idx].img && slides[idx].embed && slides[idx].embed[0])
+ slides[idx].img = ffopen(slides[idx].embed);
                 xdraw();
                 if (slidecount > idx + 1 && slides[idx + 1].img)
                         ffread(slides[idx + 1].img);
Received on Sat Jun 04 2016 - 17:28:06 CEST

This archive was generated by hypermail 2.3.0 : Sat Jun 04 2016 - 17:36:13 CEST