/* 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; }