Blender V4.5
speaker.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#include "DNA_defaults.h"
10#include "DNA_sound_types.h"
11#include "DNA_speaker_types.h"
12
13#include "BLI_utildefines.h"
14
15#include "BLT_translation.hh"
16
17#include "BKE_idtype.hh"
18#include "BKE_lib_id.hh"
19#include "BKE_lib_query.hh"
20#include "BKE_speaker.h"
21
22#include "BLO_read_write.hh"
23
24#include <cstring>
25
26static void speaker_init_data(ID *id)
27{
28 Speaker *speaker = (Speaker *)id;
29
31
33}
34
41
42static void speaker_blend_write(BlendWriter *writer, ID *id, const void *id_address)
43{
44 Speaker *spk = (Speaker *)id;
45
46 /* write LibData */
47 BLO_write_id_struct(writer, Speaker, id_address, &spk->id);
48 BKE_id_blend_write(writer, &spk->id);
49}
50
52 /*id_code*/ Speaker::id_type,
53 /*id_filter*/ FILTER_ID_SPK,
54 /*dependencies_id_types*/ FILTER_ID_SO,
55 /*main_listbase_index*/ INDEX_ID_SPK,
56 /*struct_size*/ sizeof(Speaker),
57 /*name*/ "Speaker",
58 /*name_plural*/ N_("speakers"),
59 /*translation_context*/ BLT_I18NCONTEXT_ID_SPEAKER,
61 /*asset_type_info*/ nullptr,
62
63 /*init_data*/ speaker_init_data,
64 /*copy_data*/ nullptr,
65 /*free_data*/ nullptr,
66 /*make_local*/ nullptr,
67 /*foreach_id*/ speaker_foreach_id,
68 /*foreach_cache*/ nullptr,
69 /*foreach_path*/ nullptr,
70 /*owner_pointer_get*/ nullptr,
71
72 /*blend_write*/ speaker_blend_write,
73 /*blend_read_data*/ nullptr,
74 /*blend_read_after_liblink*/ nullptr,
75
76 /*blend_read_undo_preserve*/ nullptr,
77
78 /*lib_override_apply_post*/ nullptr,
79};
80
81Speaker *BKE_speaker_add(Main *bmain, const char *name)
82{
83 Speaker *spk;
84
85 spk = BKE_id_new<Speaker>(bmain, name);
86
87 return spk;
88}
IDTypeInfo IDType_ID_SPK
Definition speaker.cc:51
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:44
void * BKE_id_new(Main *bmain, short type, const char *name)
Definition lib_id.cc:1495
void BKE_id_blend_write(BlendWriter *writer, ID *id)
Definition lib_id.cc:2611
#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(data_, id_super_, cb_flag_)
@ IDWALK_CB_USER
General operations for speakers.
#define BLI_assert(a)
Definition BLI_assert.h:46
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
#define BLO_write_id_struct(writer, struct_name, id_address, id)
#define BLT_I18NCONTEXT_ID_SPEAKER
@ INDEX_ID_SPK
Definition DNA_ID.h:1243
#define DNA_struct_default_get(struct_name)
BMesh const char void * data
#define FILTER_ID_SPK
#define FILTER_ID_SO
static void speaker_init_data(ID *id)
Definition speaker.cc:26
Speaker * BKE_speaker_add(Main *bmain, const char *name)
Definition speaker.cc:81
static void speaker_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition speaker.cc:42
static void speaker_foreach_id(ID *id, LibraryForeachIDData *data)
Definition speaker.cc:35
Definition DNA_ID.h:404
struct bSound * sound
#define N_(msgid)