Add Chromium-only Blender WebEngine parity work
This commit is contained in:
90
blender-5.2.0/source/blender/blenkernel/intern/speaker.cc
Normal file
90
blender-5.2.0/source/blender/blenkernel/intern/speaker.cc
Normal file
@@ -0,0 +1,90 @@
|
||||
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
/** \file
|
||||
* \ingroup bke
|
||||
*/
|
||||
|
||||
#include "DNA_sound_types.h"
|
||||
#include "DNA_speaker_types.h"
|
||||
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BLT_translation.hh"
|
||||
|
||||
#include "BKE_idtype.hh"
|
||||
#include "BKE_lib_id.hh"
|
||||
#include "BKE_lib_query.hh"
|
||||
#include "BKE_speaker.hh"
|
||||
|
||||
#include "BLO_read_write.hh"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
namespace blender {
|
||||
|
||||
static void speaker_init_data(ID *id)
|
||||
{
|
||||
Speaker *speaker = id_cast<Speaker *>(id);
|
||||
|
||||
INIT_DEFAULT_STRUCT_AFTER(speaker, id);
|
||||
}
|
||||
|
||||
static void speaker_foreach_id(ID *id, LibraryForeachIDData *data)
|
||||
{
|
||||
Speaker *speaker = id_cast<Speaker *>(id);
|
||||
|
||||
BKE_LIB_FOREACHID_PROCESS_IDSUPER(data, speaker->sound, IDWALK_CB_USER);
|
||||
}
|
||||
|
||||
static void speaker_blend_write(BlendWriter *writer, ID *id, const void *id_address)
|
||||
{
|
||||
Speaker *spk = id_cast<Speaker *>(id);
|
||||
|
||||
/* write LibData */
|
||||
writer->write_id_struct(id_address, spk);
|
||||
BKE_id_blend_write(writer, &spk->id);
|
||||
}
|
||||
|
||||
IDTypeInfo IDType_ID_SPK = {
|
||||
.id_code = Speaker::id_type,
|
||||
.id_filter = FILTER_ID_SPK,
|
||||
.dependencies_id_types = FILTER_ID_SO,
|
||||
.main_listbase_index = INDEX_ID_SPK,
|
||||
.struct_size = sizeof(Speaker),
|
||||
.name = "Speaker",
|
||||
.name_plural = N_("speakers"),
|
||||
.translation_context = BLT_I18NCONTEXT_ID_SPEAKER,
|
||||
.flags = IDTYPE_FLAGS_APPEND_IS_REUSABLE,
|
||||
.asset_type_info = nullptr,
|
||||
|
||||
.init_data = speaker_init_data,
|
||||
.copy_data = nullptr,
|
||||
.free_data = nullptr,
|
||||
.make_local = nullptr,
|
||||
.foreach_id = speaker_foreach_id,
|
||||
.foreach_cache = nullptr,
|
||||
.foreach_path = nullptr,
|
||||
.foreach_working_space_color = nullptr,
|
||||
.owner_pointer_get = nullptr,
|
||||
|
||||
.blend_write = speaker_blend_write,
|
||||
.blend_read_data = nullptr,
|
||||
.blend_read_after_liblink = nullptr,
|
||||
|
||||
.blend_read_undo_preserve = nullptr,
|
||||
|
||||
.lib_override_apply_post = nullptr,
|
||||
};
|
||||
|
||||
Speaker *BKE_speaker_add(Main *bmain, const char *name)
|
||||
{
|
||||
Speaker *spk;
|
||||
|
||||
spk = BKE_id_new<Speaker>(bmain, name);
|
||||
|
||||
return spk;
|
||||
}
|
||||
|
||||
} // namespace blender
|
||||
Reference in New Issue
Block a user