diff --git a/src/client/blender.c b/src/client/blender.c new file mode 100644 --- /dev/null +++ b/src/client/blender.c @@ -0,0 +1,63 @@ +/* + Copyright 2008 Nathan Phillip Brink, Ethan Zonca, Matt Orlando + + This file is a part of DistRen. + + DistRen is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + DistRen is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with DistRen. If not, see . +*/ + +#include /* sprintf, printf */ +#include /* malloc, free */ +#include /* strlen */ + + +int blend() +{ + + char *blendercmd; + char *filename = "file.blend"; /* declares a variable to hold the file name */ + char *format = "blender.exe -b \"%s\" -o //tmp/frame -f %d -F JPEG -x 1"; /* the format string to pass to sprintf */ + unsigned int frame_to_render; + size_t blenderstrlen; + + int toreturn; + + //just prove that linking to the shared lib werkz + genericfunc(); + execlisten(); + + // blender = // gets blender structure from server + + /*-- blender structure-- + * file_name + * frame_to_render + * url to dl .blend file + */ + + + frame_to_render = 10; // temporary, the number 10 will be replaced with a function call + + // file_name = job.file_name // retrieves file name from the blender structure ? + + blenderstrlen = strlen(format) - 2 * 2 /* format string minus placeholders */ + strlen(filename) + intstrlen(frame_to_render) + 1 /* NULL terminator */; + blendercmd = malloc(blenderstrlen); + snprintf(blendercmd, blenderstrlen, format, filename, frame_to_render); + + fprintf(stderr, "will run ``%s''\n", blendercmd); + + toreturn = system(blendercmd); + free(blendercmd); + + return toreturn; +}