forked from bartvdbraak/blender
RNA: packing functions for vfont & sound
D389 by @kevindietrich
This commit is contained in:
parent
5ebae1c0c0
commit
e7c7f57481
@ -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
|
||||
)
|
||||
|
||||
|
@ -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},
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
71
source/blender/makesrna/intern/rna_sound_api.c
Normal file
71
source/blender/makesrna/intern/rna_sound_api.c
Normal file
@ -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
|
@ -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
|
||||
|
71
source/blender/makesrna/intern/rna_vfont_api.c
Normal file
71
source/blender/makesrna/intern/rna_vfont_api.c
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user