Files
test/source/blender/makesrna/intern/rna_sound_api.cc

58 lines
1.5 KiB
C++

/* SPDX-FileCopyrightText: 2015 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup RNA
*/
#include "RNA_define.hh"
#include "RNA_enum_types.hh"
#include "BKE_packedFile.hh"
#include "rna_internal.hh"
#ifdef RNA_RUNTIME
static void rna_Sound_pack(bSound *sound, Main *bmain, ReportList *reports)
{
sound->packedfile = BKE_packedfile_new(
reports, sound->filepath, 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");
return;
}
if (!ID_IS_EDITABLE(&sound->id)) {
BKE_report(reports, RPT_ERROR, "Sound is not editable");
return;
}
/* reports its own error on failure */
BKE_packedfile_unpack_sound(bmain, reports, sound, ePF_FileStatus(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", rna_enum_unpack_method_items, PF_USE_LOCAL, "method", "How to unpack");
}
#endif