|
|
@@ -16,19 +16,19 @@ |
|
|
|
|
|
|
|
#include <stdio.h> |
|
|
|
|
|
|
|
#include <cucul.h> |
|
|
|
#include <caca.h> |
|
|
|
#include <caca.h> |
|
|
|
|
|
|
|
static void do_page(cucul_canvas_t *, int); |
|
|
|
static void runtoilet(cucul_canvas_t *, char const *, char const *); |
|
|
|
static void do_page(caca_canvas_t *, int); |
|
|
|
static void runtoilet(caca_canvas_t *, char const *, char const *); |
|
|
|
|
|
|
|
int main(int argc, char *argv[]) |
|
|
|
{ |
|
|
|
caca_display_t *dp; |
|
|
|
cucul_canvas_t *cv; |
|
|
|
caca_canvas_t *cv; |
|
|
|
int page = 0, npages = 10, changed = 1; |
|
|
|
|
|
|
|
cv = cucul_create_canvas(0, 0); |
|
|
|
cv = caca_create_canvas(0, 0); |
|
|
|
|
|
|
|
dp = caca_create_display(cv); |
|
|
|
if(!dp) |
|
|
@@ -78,71 +78,71 @@ int main(int argc, char *argv[]) |
|
|
|
|
|
|
|
end: |
|
|
|
caca_free_display(dp); |
|
|
|
cucul_free_canvas(cv); |
|
|
|
caca_free_canvas(cv); |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static void do_page(cucul_canvas_t *cv, int page) |
|
|
|
static void do_page(caca_canvas_t *cv, int page) |
|
|
|
{ |
|
|
|
char str[BUFSIZ]; |
|
|
|
cucul_canvas_t *tmp; |
|
|
|
caca_canvas_t *tmp; |
|
|
|
|
|
|
|
cucul_clear_canvas(cv); |
|
|
|
tmp = cucul_create_canvas(0, 0); |
|
|
|
caca_clear_canvas(cv); |
|
|
|
tmp = caca_create_canvas(0, 0); |
|
|
|
|
|
|
|
if(page < 1) goto end; |
|
|
|
sprintf(str, "\x1b[33;93m» \x1b[37;97mEfficient presentations"); |
|
|
|
runtoilet(tmp, "-f smmono12", str); |
|
|
|
cucul_blit(cv, 4, 0, tmp, NULL); |
|
|
|
caca_blit(cv, 4, 0, tmp, NULL); |
|
|
|
|
|
|
|
if(page < 2) goto end; |
|
|
|
sprintf(str, "\x1b[32;92m» \x1b[37;97mWhy text mode?"); |
|
|
|
runtoilet(tmp, "-f smmono9", str); |
|
|
|
cucul_blit(cv, 11, 9, tmp, NULL); |
|
|
|
caca_blit(cv, 11, 9, tmp, NULL); |
|
|
|
|
|
|
|
if(page < 3) goto end; |
|
|
|
sprintf(str, "\x1b[32;92m» \x1b[37;97mExample: \x1b[34mp\x1b[35mo\x1b[36mw\x1b[32me\x1b[31mr\x1b[34mp\x1b[35mi\x1b[36mp\x1b[32mo\x1b[37m™"); |
|
|
|
runtoilet(tmp, "-f smmono9", str); |
|
|
|
cucul_blit(cv, 11, 16, tmp, NULL); |
|
|
|
caca_blit(cv, 11, 16, tmp, NULL); |
|
|
|
|
|
|
|
if(page < 4) goto end; |
|
|
|
sprintf(str, "\x1b[33;93m» \x1b[37;97mAdvanced stuff"); |
|
|
|
runtoilet(tmp, "-f smmono12", str); |
|
|
|
cucul_blit(cv, 4, 24, tmp, NULL); |
|
|
|
caca_blit(cv, 4, 24, tmp, NULL); |
|
|
|
|
|
|
|
if(page < 5) goto end; |
|
|
|
sprintf(str, "\x1b[32;92m» \x1b[37;97mTransition effects"); |
|
|
|
runtoilet(tmp, "-f smmono9", str); |
|
|
|
cucul_blit(cv, 11, 34, tmp, NULL); |
|
|
|
caca_blit(cv, 11, 34, tmp, NULL); |
|
|
|
|
|
|
|
if(page < 6) goto end; |
|
|
|
sprintf(str, "\x1b[32;92m» \x1b[37;97mColor filters"); |
|
|
|
runtoilet(tmp, "-f smmono9 --gay", str); |
|
|
|
cucul_blit(cv, 11, 41, tmp, NULL); |
|
|
|
caca_blit(cv, 11, 41, tmp, NULL); |
|
|
|
|
|
|
|
if(page < 7) goto end; |
|
|
|
sprintf(str, "\x1b[32;92m» \x1b[37;97mPictures and movies"); |
|
|
|
runtoilet(tmp, "-f smmono9", str); |
|
|
|
cucul_blit(cv, 11, 48, tmp, NULL); |
|
|
|
caca_blit(cv, 11, 48, tmp, NULL); |
|
|
|
|
|
|
|
if(page < 8) goto end; |
|
|
|
sprintf(str, "\x1b[32;92m» \x1b[37;97mEmbedded applications"); |
|
|
|
runtoilet(tmp, "-f smmono9", str); |
|
|
|
cucul_blit(cv, 11, 55, tmp, NULL); |
|
|
|
caca_blit(cv, 11, 55, tmp, NULL); |
|
|
|
|
|
|
|
end: |
|
|
|
cucul_printf(cv, 0, 0, "page %i", page); |
|
|
|
caca_printf(cv, 0, 0, "page %i", page); |
|
|
|
} |
|
|
|
|
|
|
|
/* Warning: quotes are not safe */ |
|
|
|
static void runtoilet(cucul_canvas_t *cv, char const *options, char const *str) |
|
|
|
static void runtoilet(caca_canvas_t *cv, char const *options, char const *str) |
|
|
|
{ |
|
|
|
char buf[BUFSIZ], cmd[BUFSIZ]; |
|
|
|
FILE *f; |
|
|
|
int ret; |
|
|
|
|
|
|
|
cucul_set_canvas_size(cv, 0, 0); |
|
|
|
caca_set_canvas_size(cv, 0, 0); |
|
|
|
|
|
|
|
sprintf(cmd, "toilet -w 1000 %s '%s'", options, str); |
|
|
|
f = popen(cmd, "r"); |
|
|
@@ -153,7 +153,7 @@ static void runtoilet(cucul_canvas_t *cv, char const *options, char const *str) |
|
|
|
if(ret <= 0) |
|
|
|
return; |
|
|
|
|
|
|
|
ret = cucul_import_memory(cv, buf, ret, "utf8"); |
|
|
|
ret = caca_import_memory(cv, buf, ret, "utf8"); |
|
|
|
if(ret <= 0) |
|
|
|
return; |
|
|
|
} |
|
|
|