From 014f78b5b5a49c133ff95b3c9d973744de6eec2d Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Sun, 8 Mar 2020 20:10:07 +0100 Subject: Cleanup: Speaker: Move to IDTypeInfo and remove unused BKE API. --- source/blender/blenkernel/intern/idtype.c | 4 +- source/blender/blenkernel/intern/lib_id.c | 8 ++- source/blender/blenkernel/intern/lib_id_delete.c | 2 +- source/blender/blenkernel/intern/speaker.c | 62 ++++++++++++------------ 4 files changed, 36 insertions(+), 40 deletions(-) (limited to 'source/blender/blenkernel/intern') diff --git a/source/blender/blenkernel/intern/idtype.c b/source/blender/blenkernel/intern/idtype.c index 222c201a50e..94adf5e3456 100644 --- a/source/blender/blenkernel/intern/idtype.c +++ b/source/blender/blenkernel/intern/idtype.c @@ -67,9 +67,9 @@ static void id_type_init(void) INIT_TYPE(ID_KE); INIT_TYPE(ID_WO); INIT_TYPE(ID_SCR); - INIT_TYPE(ID_VF); + INIT_TYPE(ID_VF); INIT_TYPE(ID_TXT); - // INIT_TYPE(ID_SPK); + INIT_TYPE(ID_SPK); // INIT_TYPE(ID_SO); INIT_TYPE(ID_GR); INIT_TYPE(ID_AR); diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c index 4843bd1bb2b..6db83434cc6 100644 --- a/source/blender/blenkernel/intern/lib_id.c +++ b/source/blender/blenkernel/intern/lib_id.c @@ -500,9 +500,7 @@ bool BKE_lib_id_make_local(Main *bmain, ID *id, const bool test, const int flags BLI_assert(0); return true; case ID_SPK: - if (!test) { - BKE_speaker_make_local(bmain, (Speaker *)id, flags); - } + BLI_assert(0); return true; case ID_LP: BLI_assert(0); @@ -720,7 +718,7 @@ bool BKE_id_copy_ex(Main *bmain, const ID *id, ID **r_newid, const int flag) BLI_assert(0); break; case ID_SPK: - BKE_speaker_copy_data(bmain, (Speaker *)*r_newid, (Speaker *)id, flag); + BLI_assert(0); break; case ID_LP: BLI_assert(0); @@ -1341,7 +1339,7 @@ void BKE_libblock_init_empty(ID *id) BLI_assert(0); break; case ID_SPK: - BKE_speaker_init((Speaker *)id); + BLI_assert(0); break; case ID_LP: BLI_assert(0); diff --git a/source/blender/blenkernel/intern/lib_id_delete.c b/source/blender/blenkernel/intern/lib_id_delete.c index 77323891b45..8ca660639c0 100644 --- a/source/blender/blenkernel/intern/lib_id_delete.c +++ b/source/blender/blenkernel/intern/lib_id_delete.c @@ -190,7 +190,7 @@ void BKE_libblock_free_datablock(ID *id, const int UNUSED(flag)) BLI_assert(0); break; case ID_SPK: - BKE_speaker_free((Speaker *)id); + BLI_assert(0); break; case ID_LP: BLI_assert(0); diff --git a/source/blender/blenkernel/intern/speaker.c b/source/blender/blenkernel/intern/speaker.c index fb16cea093e..6c855db4ae9 100644 --- a/source/blender/blenkernel/intern/speaker.c +++ b/source/blender/blenkernel/intern/speaker.c @@ -26,60 +26,58 @@ #include "BLI_math.h" #include "BLI_utildefines.h" +#include "BLT_translation.h" + #include "BKE_animsys.h" +#include "BKE_idtype.h" #include "BKE_lib_id.h" #include "BKE_main.h" #include "BKE_speaker.h" -void BKE_speaker_init(Speaker *spk) +static void speaker_init_data(ID *id) { - BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(spk, id)); + Speaker *speaker = (Speaker *)id; + + BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(speaker, id)); - MEMCPY_STRUCT_AFTER(spk, DNA_struct_default_get(Speaker), id); + MEMCPY_STRUCT_AFTER(speaker, DNA_struct_default_get(Speaker), id); +} + +static void speaker_free_data(ID *id) +{ + BKE_animdata_free(id, false); } +IDTypeInfo IDType_ID_SPK = { + .id_code = ID_SPK, + .id_filter = FILTER_ID_SPK, + .main_listbase_index = INDEX_ID_SPK, + .struct_size = sizeof(Speaker), + .name = "Speaker", + .name_plural = "speakers", + .translation_context = BLT_I18NCONTEXT_ID_SPEAKER, + .flags = 0, + + .init_data = speaker_init_data, + .copy_data = NULL, + .free_data = speaker_free_data, + .make_local = NULL, +}; + void *BKE_speaker_add(Main *bmain, const char *name) { Speaker *spk; spk = BKE_libblock_alloc(bmain, ID_SPK, name, 0); - BKE_speaker_init(spk); + speaker_init_data(&spk->id); return spk; } -/** - * Only copy internal data of Speaker ID from source - * to already allocated/initialized destination. - * You probably never want to use that directly, - * use #BKE_id_copy or #BKE_id_copy_ex for typical needs. - * - * WARNING! This function will not handle ID user count! - * - * \param flag: Copying options (see BKE_lib_id.h's LIB_ID_COPY_... flags for more). - */ -void BKE_speaker_copy_data(Main *UNUSED(bmain), - Speaker *UNUSED(spk_dst), - const Speaker *UNUSED(spk_src), - const int UNUSED(flag)) -{ - /* Nothing to do! */ -} - Speaker *BKE_speaker_copy(Main *bmain, const Speaker *spk) { Speaker *spk_copy; BKE_id_copy(bmain, &spk->id, (ID **)&spk_copy); return spk_copy; } - -void BKE_speaker_make_local(Main *bmain, Speaker *spk, const int flags) -{ - BKE_lib_id_make_local_generic(bmain, &spk->id, flags); -} - -void BKE_speaker_free(Speaker *spk) -{ - BKE_animdata_free((ID *)spk, false); -} -- cgit v1.2.3