Blender V4.3
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
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
36{
37 Speaker *speaker = (Speaker *)id;
38
40}
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*/ ID_SPK,
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
81void *BKE_speaker_add(Main *bmain, const char *name)
82{
83 Speaker *spk;
84
85 spk = static_cast<Speaker *>(BKE_id_new(bmain, ID_SPK, name));
86
87 return spk;
88}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:39
void * BKE_id_new(Main *bmain, short type, const char *name)
Definition lib_id.cc:1482
void BKE_id_blend_write(BlendWriter *writer, ID *id)
Definition lib_id.cc:2560
#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:50
#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
#define FILTER_ID_SPK
Definition DNA_ID.h:1185
#define FILTER_ID_SO
Definition DNA_ID.h:1186
@ INDEX_ID_SPK
Definition DNA_ID.h:1302
@ ID_SPK
#define DNA_struct_default_get(struct_name)
struct Speaker Speaker
void * BKE_speaker_add(Main *bmain, const char *name)
Definition speaker.cc:81
static void speaker_init_data(ID *id)
Definition speaker.cc:26
IDTypeInfo IDType_ID_SPK
Definition speaker.cc:51
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:413
struct bSound * sound
#define N_(msgid)