[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31217] trunk/blender/source: moved idcode functions into their own file ( was added as a todo in the comments), these were mixed in with file reading code - BLO_readfile. h bot these functions are not spesific to reading.

Campbell Barton ideasman42 at gmail.com
Tue Aug 10 17:14:19 CEST 2010


Revision: 31217
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31217
Author:   campbellbarton
Date:     2010-08-10 17:14:19 +0200 (Tue, 10 Aug 2010)

Log Message:
-----------
moved idcode functions into their own file (was added as a todo in the comments), these were mixed in with file reading code - BLO_readfile.h bot these functions are not spesific to reading.

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/BLO_readfile.h
    trunk/blender/source/blender/blenloader/intern/readblenentry.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/space_console/space_console.c
    trunk/blender/source/blender/editors/space_file/filelist.c
    trunk/blender/source/blender/editors/space_file/filesel.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c
    trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp

Added Paths:
-----------
    trunk/blender/source/blender/blenkernel/BKE_idcode.h
    trunk/blender/source/blender/blenkernel/intern/idcode.c

Added: trunk/blender/source/blender/blenkernel/BKE_idcode.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_idcode.h	                        (rev 0)
+++ trunk/blender/source/blender/blenkernel/BKE_idcode.h	2010-08-10 15:14:19 UTC (rev 31217)
@@ -0,0 +1,75 @@
+/**
+ * 
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef BKE_ID_INFO_H
+#define BKE_ID_INFO_H
+
+/**
+ * Convert an idcode into a name.
+ * 
+ * @param code The code to convert.
+ * @return A static string representing the name of
+ * the code.
+ */
+const char *BKE_idcode_to_name(int code);
+
+/**
+ * Convert an idcode into a name (plural).
+ * 
+ * @param code The code to convert.
+ * @return A static string representing the name of
+ * the code.
+ */
+const char *BKE_idcode_to_name_plural(int code);
+
+/**
+ * Convert a name into an idcode (ie. ID_SCE)
+ * 
+ * @param name The name to convert.
+ * @return The code for the name, or 0 if invalid.
+ */
+int BKE_idcode_from_name(const char *name);
+
+/**
+ * Return non-zero when an ID type is linkable.
+ * 
+ * @param code The code to check.
+ * @return Boolean, 0 when non linkable.
+ */
+int BKE_idcode_is_linkable(int code);
+
+/**
+ * Return if the ID code is a valid ID code.
+ * 
+ * @param code The code to check.
+ * @return Boolean, 0 when invalid.
+ */
+int BKE_idcode_is_valid(int code);
+
+#endif

Added: trunk/blender/source/blender/blenkernel/intern/idcode.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/idcode.c	                        (rev 0)
+++ trunk/blender/source/blender/blenkernel/intern/idcode.c	2010-08-10 15:14:19 UTC (rev 31217)
@@ -0,0 +1,128 @@
+/**
+ * $Id: readblenentry.c 31028 2010-08-04 04:01:27Z campbellbarton $
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ * return info about ID types
+ */
+ 
+#include <stdlib.h>
+#include <string.h>
+
+#include "DNA_ID.h"
+
+typedef struct {
+	unsigned short code;
+	char *name, *plural;
+	
+	int flags;
+#define IDTYPE_FLAGS_ISLINKABLE	(1<<0)
+} IDType;
+
+/* plural need to match rna_main.c's MainCollectionDef */
+static IDType idtypes[]= {
+	{ ID_AC,		"Action",	"actions",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_AR,		"Armature", "armatures",	IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_BR,		"Brush",	"brushes",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_CA,		"Camera",	"cameras",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_CU,		"Curve",	"curves",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_GD,		"GPencil",	"gpencil",		IDTYPE_FLAGS_ISLINKABLE},  /* rename gpencil */
+	{ ID_GR,		"Group",	"groups",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_ID,		"ID",		"ids",			0}, /* plural is fake */
+	{ ID_IM,		"Image",	"images",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_IP,		"Ipo",		"ipos",			IDTYPE_FLAGS_ISLINKABLE},  /* deprecated */
+	{ ID_KE,		"Key",		"keys",			0}, 
+	{ ID_LA,		"Lamp",		"lamps",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_LI,		"Library",	"libraries",	0}, 
+	{ ID_LT,		"Lattice",	"lattices",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_MA,		"Material", "materials",	IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_MB,		"Metaball", "metaballs",	IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_ME,		"Mesh",		"meshes",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_NT,		"NodeTree",	"node_groups",	IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_OB,		"Object",	"objects",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_PA,		"ParticleSettings",	"particles", 0},
+	{ ID_SCE,		"Scene",	"scenes",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_SCR,		"Screen",	"screens",		0}, 
+	{ ID_SEQ,		"Sequence",	"sequences",	0}, /* not actually ID data */
+	{ ID_SO,		"Sound",	"sounds",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_TE,		"Texture",	"textures",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_TXT,		"Text",		"texts",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_VF,		"VFont",	"fonts",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_WO,		"World",	"worlds",		IDTYPE_FLAGS_ISLINKABLE}, 
+	{ ID_WM,		"WindowManager", "window_managers",	0}, 
+};
+static int nidtypes= sizeof(idtypes)/sizeof(idtypes[0]);
+
+static IDType *idtype_from_name(const char *str) 
+{
+	int i= nidtypes;
+	
+	while (i--)
+		if (strcmp(str, idtypes[i].name)==0)
+			return &idtypes[i];
+
+	return NULL;
+}
+static IDType *idtype_from_code(int code) 
+{
+	int i= nidtypes;
+	
+	while (i--)
+		if (code==idtypes[i].code)
+			return &idtypes[i];
+	
+	return NULL;
+}
+
+int BKE_idcode_is_valid(int code) 
+{
+	return idtype_from_code(code)?1:0;
+}
+
+int BKE_idcode_is_linkable(int code) {
+	IDType *idt= idtype_from_code(code);
+	return idt?(idt->flags&IDTYPE_FLAGS_ISLINKABLE):0;
+}
+
+const char *BKE_idcode_to_name(int code) 
+{
+	IDType *idt= idtype_from_code(code);
+	
+	return idt?idt->name:NULL;
+}
+
+int BKE_idcode_from_name(const char *name) 
+{
+	IDType *idt= idtype_from_name(name);
+	
+	return idt?idt->code:0;
+}
+
+const char *BKE_idcode_to_name_plural(int code) 
+{
+	IDType *idt= idtype_from_code(code);
+	
+	return idt?idt->plural:NULL;
+}

Modified: trunk/blender/source/blender/blenloader/BLO_readfile.h
===================================================================
--- trunk/blender/source/blender/blenloader/BLO_readfile.h	2010-08-10 13:16:23 UTC (rev 31216)
+++ trunk/blender/source/blender/blenloader/BLO_readfile.h	2010-08-10 15:14:19 UTC (rev 31217)
@@ -111,40 +111,8 @@
 	void
 BLO_blendfiledata_free(
 	BlendFileData *bfd);
-
-/**
- * Convert an idcode into a name.
- * 
- * @param code The code to convert.
- * @return A static string representing the name of
- * the code.
- */
-	char*
-BLO_idcode_to_name(
-	int code);
 	
 /**
- * Convert an idcode into a name (plural).
- * 
- * @param code The code to convert.
- * @return A static string representing the name of
- * the code.
- */
-	char*
-BLO_idcode_to_name_plural(
-	int code);
-
-/**
- * Convert a name into an idcode (ie. ID_SCE)
- * 
- * @param name The name to convert.
- * @return The code for the name, or 0 if invalid.
- */
-	int
-BLO_idcode_from_name(
-	char *name);
-	
-/**
  * Open a blendhandle from a file path.
  * 
  * @param file The file path to open.

Modified: trunk/blender/source/blender/blenloader/intern/readblenentry.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readblenentry.c	2010-08-10 13:16:23 UTC (rev 31216)
+++ trunk/blender/source/blender/blenloader/intern/readblenentry.c	2010-08-10 15:14:19 UTC (rev 31217)
@@ -46,6 +46,7 @@
 
 #include "BKE_main.h"
 #include "BKE_library.h" // for free_main
+#include "BKE_idcode.h"
 #include "BKE_report.h"
 
 #include "BLO_readfile.h"
@@ -61,111 +62,9 @@
 #include "BLI_winstuff.h"
 #endif
 
-	/**
-	 * IDType stuff, I plan to move this
-	 * out into its own file + prefix, and
-	 * make sure all IDType handling goes through
-	 * these routines.
-	 */
-
-typedef struct {
-	unsigned short code;
-	char *name, *plural;
-	
-	int flags;
-#define IDTYPE_FLAGS_ISLINKABLE	(1<<0)
-} IDType;
-
-/* plural need to match rna_main.c's MainCollectionDef */
-static IDType idtypes[]= {
-	{ ID_AC,		"Action",	"actions",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_AR,		"Armature", "armatures",	IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_BR,		"Brush",	"brushes",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_CA,		"Camera",	"cameras",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_CU,		"Curve",	"curves",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_GD,		"GPencil",	"gpencil",		IDTYPE_FLAGS_ISLINKABLE},  /* rename gpencil */
-	{ ID_GR,		"Group",	"groups",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_ID,		"ID",		"ids",			0}, /* plural is fake */
-	{ ID_IM,		"Image",	"images",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_IP,		"Ipo",		"ipos",			IDTYPE_FLAGS_ISLINKABLE},  /* deprecated */
-	{ ID_KE,		"Key",		"keys",			0}, 
-	{ ID_LA,		"Lamp",		"lamps",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_LI,		"Library",	"libraries",	0}, 
-	{ ID_LT,		"Lattice",	"lattices",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_MA,		"Material", "materials",	IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_MB,		"Metaball", "metaballs",	IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_ME,		"Mesh",		"meshes",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_NT,		"NodeTree",	"node_groups",	IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_OB,		"Object",	"objects",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_PA,		"ParticleSettings",	"particles", 0},
-	{ ID_SCE,		"Scene",	"scenes",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_SCR,		"Screen",	"screens",		0}, 
-	{ ID_SEQ,		"Sequence",	"sequences",	0}, /* not actually ID data */
-	{ ID_SO,		"Sound",	"sounds",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_TE,		"Texture",	"textures",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_TXT,		"Text",		"texts",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_VF,		"VFont",	"fonts",		IDTYPE_FLAGS_ISLINKABLE}, 
-	{ ID_WO,		"World",	"worlds",		IDTYPE_FLAGS_ISLINKABLE}, 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list