[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48485] branches/soc-2011-tomato/source/ blender/windowmanager/intern/wm_playanim.c: code cleanup

Campbell Barton ideasman42 at gmail.com
Mon Jul 2 10:38:01 CEST 2012


Revision: 48485
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48485
Author:   campbellbarton
Date:     2012-07-02 08:37:59 +0000 (Mon, 02 Jul 2012)
Log Message:
-----------
code cleanup

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/windowmanager/intern/wm_playanim.c

Modified: branches/soc-2011-tomato/source/blender/windowmanager/intern/wm_playanim.c
===================================================================
--- branches/soc-2011-tomato/source/blender/windowmanager/intern/wm_playanim.c	2012-07-02 08:30:29 UTC (rev 48484)
+++ branches/soc-2011-tomato/source/blender/windowmanager/intern/wm_playanim.c	2012-07-02 08:37:59 UTC (rev 48485)
@@ -1,6 +1,4 @@
-/**
- * $Id: playanim.c 17755 2008-12-09 04:57:42Z bdiego $
- *
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
@@ -22,26 +20,29 @@
  *
  * The Original Code is: all of this file.
  *
- * Contributor(s): none yet.
+ * Contributor(s): Campbell Barton
  *
  * ***** END GPL LICENSE BLOCK *****
  */
 
+/** \file blender/windowmanager/intern/wm_playanim.c
+ *  \ingroup wm
+ *
+ * \note This file uses ghost directly and none of the WM definitions.
+ *       this could be made into its own module, alongside creator/
+ */
+
 #include <sys/types.h>
 #include <fcntl.h>
 #include <stdlib.h>
 #include <string.h>
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
 #ifndef WIN32
-#include <unistd.h>
-#include <sys/times.h>
-#include <sys/wait.h>
+#  include <unistd.h>
+#  include <sys/times.h>
+#  include <sys/wait.h>
 #else
-#include <io.h>
+#  include <io.h>
 #endif
 #include "MEM_guardedalloc.h"
 
@@ -63,12 +64,12 @@
 #include "BIF_glutil.h"
 
 #ifdef WITH_QUICKTIME
-#ifdef _WIN32
-#include <QTML.h>
-#include <Movies.h>
-#elif defined(__APPLE__)
-#include <QuickTime/Movies.h>
-#endif /* __APPLE__ */
+#  ifdef _WIN32
+#    include <QTML.h>
+#    include <Movies.h>
+#  elif defined(__APPLE__)
+#    include <QuickTime/Movies.h>
+#  endif /* __APPLE__ */
 #endif /* WITH_QUICKTIME */
 
 #include "DNA_scene_types.h"
@@ -168,13 +169,8 @@
 	return(event);
 }
 
-/* ***************** gl_util.c ****************** */
-
-
-
-
-typedef struct pict {
-	struct pict *next, *prev;
+typedef struct PlayAnimPict {
+	struct PlayAnimPict *next, *prev;
 	char *mem;
 	int size;
 	char *name;
@@ -182,9 +178,9 @@
 	struct anim *anim;
 	int frame;
 	int IB_flags;
-}Pict;
+} PlayAnimPict;
 
-static struct ListBase _picsbase = {0, 0};
+static struct ListBase _picsbase = {NULL, NULL};
 static struct ListBase *picsbase = &_picsbase;
 static int fromdisk = FALSE;
 static int fstep = 1;
@@ -203,10 +199,10 @@
 	return (ptottime < 0);
 }
 
-static void toscreen(Pict *picture, struct ImBuf *ibuf)
+static void toscreen(PlayAnimPict *picture, struct ImBuf *ibuf)
 {
 
-	if (ibuf == 0) {
+	if (ibuf == NULL) {
 		printf("no ibuf !\n");
 		return;
 	}
@@ -224,10 +220,10 @@
 	pupdate_time();
 
 	if (picture && (qualN & (SHIFT | LMOUSE))) {
-		char str[512];
+		char str[32 + FILE_MAX];
 		cpack(-1);
-		glRasterPos2f(0.02f,  0.03f);
-		sprintf(str, "%s | %.2f frames/s\n", picture->name, fstep / swaptime);
+		glRasterPos2f(0.02f, 0.03f);
+		BLI_snprintf(str, sizeof(str), "%s | %.2f frames/s\n", picture->name, fstep / swaptime);
 #if 0 // XXX25
 		BMF_DrawString(G.fonts, str);
 #endif
@@ -239,12 +235,12 @@
 static void build_pict_list(char *first, int totframes, int fstep)
 {
 	int size, pic, file;
-	char *mem, name[512];
+	char *mem, filepath[FILE_MAX];
 //	short val;
-	struct pict *picture = 0;
-	struct ImBuf *ibuf = 0;
+	PlayAnimPict *picture = NULL;
+	struct ImBuf *ibuf = NULL;
 	int count = 0;
-	char str[512];
+	char str[32 + FILE_MAX];
 	struct anim *anim;
 
 	if (IMB_isanim(first)) {
@@ -257,40 +253,42 @@
 			}
 
 			for (pic = 0; pic < IMB_anim_get_duration(anim, IMB_TC_NONE); pic++) {
-				picture = (Pict *)MEM_callocN(sizeof(Pict), "Pict");
+				picture = (PlayAnimPict *)MEM_callocN(sizeof(PlayAnimPict), "Pict");
 				picture->anim = anim;
 				picture->frame = pic;
 				picture->IB_flags = IB_rect;
-				sprintf(str, "%s : %d", first, pic + 1);
+				BLI_snprintf(str, sizeof(str), "%s : %d", first, pic + 1);
 				picture->name = strdup(str);
 				BLI_addtail(picsbase, picture);
 			}
 		}
-		else printf("couldn't open anim %s\n", first);
+		else {
+			printf("couldn't open anim %s\n", first);
+		}
 	}
 	else {
 
-		strcpy(name, first);
+		BLI_strncpy(filepath, first, sizeof(filepath));
 
 		pupdate_time();
 		ptottime = 1.0;
 
-/*
-     O_DIRECT
-            If set, all reads and writes on the resulting file descriptor will
-            be performed directly to or from the user program buffer, provided
-            appropriate size and alignment restrictions are met.  Refer to the
-            F_SETFL and F_DIOINFO commands in the fcntl(2) manual entry for
-            information about how to determine the alignment constraints.
-            O_DIRECT is a Silicon Graphics extension and is only supported on
-            local EFS and XFS file systems.
- */
+		/* O_DIRECT
+		 *
+		 * If set, all reads and writes on the resulting file descriptor will
+		 * be performed directly to or from the user program buffer, provided
+		 * appropriate size and alignment restrictions are met.  Refer to the
+		 * F_SETFL and F_DIOINFO commands in the fcntl(2) manual entry for
+		 * information about how to determine the alignment constraints.
+		 * O_DIRECT is a Silicon Graphics extension and is only supported on
+		 * local EFS and XFS file systems.
+		 */
 
-		while (IMB_ispic(name) && totframes) {
-			file = open(name, O_BINARY | O_RDONLY, 0);
+		while (IMB_ispic(filepath) && totframes) {
+			file = open(filepath, O_BINARY | O_RDONLY, 0);
 			if (file < 0) return;
-			picture = (struct pict *)MEM_callocN(sizeof(struct pict), "picture");
-			if (picture == 0) {
+			picture = (PlayAnimPict *)MEM_callocN(sizeof(PlayAnimPict), "picture");
+			if (picture == NULL) {
 				printf("Not enough memory for pict struct \n");
 				close(file);
 				return;
@@ -308,7 +306,7 @@
 
 			if (fromdisk == FALSE) {
 				mem = (char *)MEM_mallocN(size, "build pic list");
-				if (mem == 0) {
+				if (mem == NULL) {
 					printf("Couldn't get memory\n");
 					close(file);
 					MEM_freeN(picture);
@@ -316,17 +314,19 @@
 				}
 
 				if (read(file, mem, size) != size) {
-					printf("Error while reading %s\n", name);
+					printf("Error while reading %s\n", filepath);
 					close(file);
 					MEM_freeN(picture);
 					MEM_freeN(mem);
 					return;
 				}
 			}
-			else mem = 0;
+			else {
+				mem = NULL;
+			}
 
 			picture->mem = mem;
-			picture->name = strdup(name);
+			picture->name = strdup(filepath);
 			close(file);
 			BLI_addtail(picsbase, picture);
 			count++;
@@ -334,8 +334,13 @@
 			pupdate_time();
 
 			if (ptottime > 1.0) {
-				if (picture->mem) ibuf = IMB_ibImageFromMemory((unsigned char *)picture->mem, picture->size, picture->IB_flags, picture->name);
-				else ibuf = IMB_loadiffname(picture->name, picture->IB_flags);
+				if (picture->mem) {
+					ibuf = IMB_ibImageFromMemory((unsigned char *)picture->mem, picture->size,
+					                             picture->IB_flags, picture->name);
+				}
+				else {
+					ibuf = IMB_loadiffname(picture->name, picture->IB_flags);
+				}
 				if (ibuf) {
 					toscreen(picture, ibuf);
 					IMB_freeImBuf(ibuf);
@@ -344,7 +349,7 @@
 				ptottime = 0.0;
 			}
 
-			BLI_newname(name, +fstep);
+			BLI_newname(filepath, +fstep);
 
 #if 0 // XXX25
 			while (qtest()) {
@@ -406,12 +411,13 @@
 void playanim(int argc, const char **argv)
 {
 	struct ImBuf *ibuf = 0;
-	struct pict *picture = 0;
-	char name[512];
+	PlayAnimPict *picture = 0;
+	char filepath[FILE_MAX];
 	short val = 0, go = TRUE, ibufx = 0, ibufy = 0;
 	int event, stopped = FALSE;
 	GHOST_TUns32 maxwinx, maxwiny;
-	short /*  c233 = FALSE, */ /*  yuvx = FALSE, */ once = FALSE, sstep = FALSE, wait2 = FALSE, /*  resetmap = FALSE, */ pause = 0;
+	/* short c233 = FALSE, yuvx = FALSE; */ /* UNUSED */
+	short once = FALSE, sstep = FALSE, wait2 = FALSE, /*  resetmap = FALSE, */ pause = 0;
 	short pingpong = FALSE, direction = 1, next = 1, turbo = FALSE, /*  doubleb = TRUE, */ noskip = FALSE;
 	int sizex, sizey, ofsx, ofsy, i;
 	/* This was done to disambiguate the name for use under c++. */
@@ -442,7 +448,7 @@
 					if (argc > 3) {
 						double fps = atof(argv[2]);
 						double fps_base = atof(argv[3]);
-						if (fps == 0) {
+						if (fps == 0.0) {
 							fps = 1;
 							printf("invalid fps,"
 							       "forcing 1\n");
@@ -478,7 +484,9 @@
 			argc--;
 			argv++;
 		}
-		else break;
+		else {
+			break;
+		}
 	}
 
 #ifdef WITH_QUICKTIME
@@ -501,27 +509,32 @@
 	G.have_quicktime = TRUE;
 #endif /* WITH_QUICKTIME */
 
-	if (argc > 1) strcpy(name, argv[1]);
+	if (argc > 1) {
+		BLI_strncpy(filepath, argv[1], sizeof(filepath));
+	}
 	else {
-		BLI_current_working_dir(name, sizeof(name));
-		if (name[strlen(name) - 1] != '/') strcat(name, "/");
+		BLI_current_working_dir(filepath, sizeof(filepath));
+		BLI_add_slash(filepath);
 	}
 
-	if (IMB_isanim(name)) {
-		anim = IMB_open_anim(name, IB_rect, 0);
+	if (IMB_isanim(filepath)) {
+		anim = IMB_open_anim(filepath, IB_rect, 0);
 		if (anim) {
 			ibuf = IMB_anim_absolute(anim, 0, IMB_TC_NONE, IMB_PROXY_NONE);
 			IMB_close_anim(anim);
 			anim = NULL;
 		}
 	}
-	else if (!IMB_ispic(name)) {
+	else if (!IMB_ispic(filepath)) {
 		exit(1);
 	}
 
-	if (ibuf == 0) ibuf = IMB_loadiffname(name, IB_rect);
-	if (ibuf == 0) {
-		printf("couldn't open %s\n", name);
+	if (ibuf == NULL) {
+		ibuf = IMB_loadiffname(filepath, IB_rect);
+	}
+
+	if (ibuf == NULL) {
+		printf("couldn't open %s\n", filepath);
 		exit(1);
 	}
 
@@ -575,15 +588,15 @@
 		efra = MAXFRAME;
 	}
 
-	build_pict_list(name, (efra - sfra) + 1, fstep);
+	build_pict_list(filepath, (efra - sfra) + 1, fstep);
 
 	for (i = 2; i < argc; i++) {
-		strcpy(name, argv[i]);
-		build_pict_list(name, (efra - sfra) + 1, fstep);
+		BLI_strncpy(filepath, argv[i], sizeof(filepath));
+		build_pict_list(filepath, (efra - sfra) + 1, fstep);
 	}
 
 	IMB_freeImBuf(ibuf);
-	ibuf = 0;
+	ibuf = NULL;
 
 	pupdate_time();
 	ptottime = 0;
@@ -591,29 +604,46 @@
 	while (go) {
 		if (pingpong) direction = -direction;
 
-		if (direction == 1) picture = picsbase->first;
-		else picture = picsbase->last;
+		if (direction == 1) {
+			picture = picsbase->first;
+		}
+		else {
+			picture = picsbase->last;
+		}
 
-		if (picture == 0) {
+		if (picture == NULL) {
 			printf("couldn't find pictures\n");
 			go = FALSE;
 		}
 		if (pingpong) {
-			if (direction == 1) picture = picture->next;
-			else picture = picture->prev;
+			if (direction == 1) {
+				picture = picture->next;
+			}
+			else {
+				picture = picture->prev;
+			}
 		}
 		if (ptottime > 0.0) ptottime = 0.0;
 
 		while (picture) {
-			if (ibuf != 0 && ibuf->ftype == 0) IMB_freeImBuf(ibuf);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list