Commit: e7c7f574818cbe7e6a940ad303019e07b1a8fdde
Author: Campbell Barton
Date:   Sat Feb 7 22:31:00 2015 +1100
Branches: master
https://developer.blender.org/rBe7c7f574818cbe7e6a940ad303019e07b1a8fdde

RNA: packing functions for vfont & sound

D389 by @kevindietrich

===================================================================

M       source/blender/makesrna/intern/CMakeLists.txt
M       source/blender/makesrna/intern/makesrna.c
M       source/blender/makesrna/intern/rna_internal.h
M       source/blender/makesrna/intern/rna_sound.c
A       source/blender/makesrna/intern/rna_sound_api.c
M       source/blender/makesrna/intern/rna_vfont.c
A       source/blender/makesrna/intern/rna_vfont_api.c

===================================================================

diff --git a/source/blender/makesrna/intern/CMakeLists.txt 
b/source/blender/makesrna/intern/CMakeLists.txt
index 0778b14..6df9e3c 100644
--- a/source/blender/makesrna/intern/CMakeLists.txt
+++ b/source/blender/makesrna/intern/CMakeLists.txt
@@ -117,9 +117,11 @@ set(APISRC
        rna_scene_api.c
        rna_sensor_api.c
        rna_sequencer_api.c
+       rna_sound_api.c
        rna_space_api.c
        rna_text_api.c
        rna_ui_api.c
+       rna_vfont_api.c
        rna_wm_api.c
 )
 
diff --git a/source/blender/makesrna/intern/makesrna.c 
b/source/blender/makesrna/intern/makesrna.c
index ec285bc..14c3986 100644
--- a/source/blender/makesrna/intern/makesrna.c
+++ b/source/blender/makesrna/intern/makesrna.c
@@ -3325,10 +3325,10 @@ static RNAProcessItem PROCESS_ITEMS[] = {
        {"rna_test.c", NULL, RNA_def_test},
        {"rna_text.c", "rna_text_api.c", RNA_def_text},
        {"rna_timeline.c", NULL, RNA_def_timeline_marker},
-       {"rna_sound.c", NULL, RNA_def_sound},
+       {"rna_sound.c", "rna_sound_api.c", RNA_def_sound},
        {"rna_ui.c", "rna_ui_api.c", RNA_def_ui},
        {"rna_userdef.c", NULL, RNA_def_userdef},
-       {"rna_vfont.c", NULL, RNA_def_vfont},
+       {"rna_vfont.c", "rna_vfont_api.c", RNA_def_vfont},
        {"rna_wm.c", "rna_wm_api.c", RNA_def_wm},
        {"rna_world.c", NULL, RNA_def_world},
        {"rna_movieclip.c", NULL, RNA_def_movieclip},
diff --git a/source/blender/makesrna/intern/rna_internal.h 
b/source/blender/makesrna/intern/rna_internal.h
index bd1d969..d0be858 100644
--- a/source/blender/makesrna/intern/rna_internal.h
+++ b/source/blender/makesrna/intern/rna_internal.h
@@ -297,6 +297,8 @@ void RNA_api_texture(struct StructRNA *srna);
 void RNA_api_environment_map(struct StructRNA *srna);
 void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop);
 void RNA_api_sequence_elements(BlenderRNA *brna, PropertyRNA *cprop);
+void RNA_api_sound(struct StructRNA *srna);
+void RNA_api_vfont(struct StructRNA *srna);
 
 /* main collection functions */
 void RNA_def_main_cameras(BlenderRNA *brna, PropertyRNA *cprop);
diff --git a/source/blender/makesrna/intern/rna_sound.c 
b/source/blender/makesrna/intern/rna_sound.c
index aa39e81..4b745c6 100644
--- a/source/blender/makesrna/intern/rna_sound.c
+++ b/source/blender/makesrna/intern/rna_sound.c
@@ -98,6 +98,8 @@ static void rna_def_sound(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Mono",
                                 "If the file contains multiple audio channels 
they are rendered to a single one");
        RNA_def_property_update(prop, 0, "rna_Sound_update");
+
+       RNA_api_sound(srna);
 }
 
 void RNA_def_sound(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_sound_api.c 
b/source/blender/makesrna/intern/rna_sound_api.c
new file mode 100644
index 0000000..07b6598
--- /dev/null
+++ b/source/blender/makesrna/intern/rna_sound_api.c
@@ -0,0 +1,71 @@
+/*
+ * ***** 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) 2015 by the Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Kevin Dietrich
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/makesrna/intern/rna_sound_api.c
+ *  \ingroup RNA
+ */
+
+#include "DNA_packedFile_types.h"
+
+#include "RNA_define.h"
+#include "RNA_enum_types.h"
+
+#ifdef RNA_RUNTIME
+
+#include "BKE_packedFile.h"
+
+static void rna_Sound_pack(bSound *sound, Main *bmain, ReportList *reports)
+{
+       sound->packedfile = newPackedFile(reports, sound->name, 
ID_BLEND_PATH(bmain, &sound->id));
+}
+
+static void rna_Sound_unpack(bSound *sound, Main *bmain, ReportList *reports, 
int method)
+{
+       if (!sound->packedfile) {
+               BKE_report(reports, RPT_ERROR, "Sound not packed");
+       }
+       else {
+               /* reports its own error on failure */
+               unpackSound(bmain, reports, sound, method);
+       }
+}
+
+#else
+
+void RNA_api_sound(StructRNA *srna)
+{
+       FunctionRNA *func;
+
+       func = RNA_def_function(srna, "pack", "rna_Sound_pack");
+       RNA_def_function_ui_description(func, "Pack the sound into the current 
blend file");
+       RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_MAIN);
+
+       func = RNA_def_function(srna, "unpack", "rna_Sound_unpack");
+       RNA_def_function_ui_description(func, "Unpack the sound to the samples 
filename");
+       RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_MAIN);
+       RNA_def_enum(func, "method", unpack_method_items, PF_USE_LOCAL, 
"method", "How to unpack");
+}
+
+#endif
diff --git a/source/blender/makesrna/intern/rna_vfont.c 
b/source/blender/makesrna/intern/rna_vfont.c
index f24f942..0879f4d 100644
--- a/source/blender/makesrna/intern/rna_vfont.c
+++ b/source/blender/makesrna/intern/rna_vfont.c
@@ -84,6 +84,8 @@ void RNA_def_vfont(BlenderRNA *brna)
        prop = RNA_def_property(srna, "packed_file", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "packedfile");
        RNA_def_property_ui_text(prop, "Packed File", "");
+
+       RNA_api_vfont(srna);
 }
 
 #endif
diff --git a/source/blender/makesrna/intern/rna_vfont_api.c 
b/source/blender/makesrna/intern/rna_vfont_api.c
new file mode 100644
index 0000000..6e6c08d
--- /dev/null
+++ b/source/blender/makesrna/intern/rna_vfont_api.c
@@ -0,0 +1,71 @@
+/*
+ * ***** 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) 2015 by the Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Kevin Dietrich
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/makesrna/intern/rna_vfont_api.c
+ *  \ingroup RNA
+ */
+
+#include "DNA_packedFile_types.h"
+
+#include "RNA_define.h"
+#include "RNA_enum_types.h"
+
+#ifdef RNA_RUNTIME
+
+#include "BKE_packedFile.h"
+
+static void rna_VectorFont_pack(VFont *vfont, Main *bmain, ReportList *reports)
+{
+       vfont->packedfile = newPackedFile(reports, vfont->name, 
ID_BLEND_PATH(bmain, &vfont->id));
+}
+
+static void rna_VectorFont_unpack(VFont *vfont, ReportList *reports, int 
method)
+{
+       if (!vfont->packedfile) {
+               BKE_report(reports, RPT_ERROR, "Font not packed");
+       }
+       else {
+               /* reports its own error on failure */
+               unpackVFont(reports, vfont, method);
+       }
+}
+
+#else
+
+void RNA_api_vfont(StructRNA *srna)
+{
+       FunctionRNA *func;
+
+       func = RNA_def_function(srna, "pack", "rna_VectorFont_pack");
+       RNA_def_function_ui_description(func, "Pack the font into the current 
blend file");
+       RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_MAIN);
+
+       func = RNA_def_function(srna, "unpack", "rna_VectorFont_unpack");
+       RNA_def_function_ui_description(func, "Unpack the font to the samples 
filename");
+       RNA_def_function_flag(func, FUNC_USE_REPORTS);
+       RNA_def_enum(func, "method", unpack_method_items, PF_USE_LOCAL, 
"method", "How to unpack");
+}
+
+#endif

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to