/* SINGLE experimental and/or testing code, do not use in production. */ #include #include #include #include "../floatimg.h" #include "sfx.h" #include "filterstack.h" #include "crapulator.h" #include "single.h" /* -------------------------------------------------------------- */ /* * singleton/private variables */ static int nextpng, counter; static char *destination; /* -------------------------------------------------------------- */ int single_init(int next, char *dest, char *sfxchain) { int foo; struct stat stbuf; fprintf(stderr, ">>> %s ( %d '%s' )\n", __func__, next, dest); nextpng = next; foo = stat(dest, &stbuf); if (foo) { perror("stat dest dir"); return -2; } // fprintf(stderr, "\t%s type = %04x\n", dest, stbuf.st_mode & S_IFMT); if (S_IFDIR != (stbuf.st_mode & S_IFMT)) { fprintf(stderr, "! %s must be a directory\n", dest); return -3; } destination = dest; return 0; } /* -------------------------------------------------------------- */ int single_push_picture(FloatImg *pimg) { int foo; char line[1000], buff[100]; #if DEBUG_LEVEL fprintf(stderr, ">>> %s ( %p )\n", __func__, pimg); #endif strncpy(line, destination, 100); if ('/' != line[strlen(line)-1]) { fprintf(stderr, "adding '/'\n"); strcat(line, "/"); } // fprintf(stderr, " destdir = '%s'\n", line); sprintf(buff, "%05d.png", nextpng); strcat(line, buff); // fprintf(stderr, "writing %p to '%s'\n", pimg, line); foo = fimg_export_picture(pimg, line, 0); if (foo) { fprintf(stderr, "%s: err %d on export\n", __func__, foo); return foo; } nextpng++; return 0; } /* -------------------------------------------------------------- */ int single_print_state(char *title, int k) { #if DEBUG_LEVEL fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, title, k); #endif fprintf(stderr, "nextpng %d\n", nextpng); fprintf(stderr, "counter %d\n", counter); return -1; } /* -------------------------------------------------------------- */