Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/blenkernel/BKE_idtype.h2
-rw-r--r--source/blender/blenkernel/BKE_speaker.h7
-rw-r--r--source/blender/blenkernel/intern/idtype.c4
-rw-r--r--source/blender/blenkernel/intern/lib_id.c8
-rw-r--r--source/blender/blenkernel/intern/lib_id_delete.c2
-rw-r--r--source/blender/blenkernel/intern/speaker.c62
6 files changed, 37 insertions, 48 deletions
diff --git a/source/blender/blenkernel/BKE_idtype.h b/source/blender/blenkernel/BKE_idtype.h
index 77e9580a9fd..6795d91ba96 100644
--- a/source/blender/blenkernel/BKE_idtype.h
+++ b/source/blender/blenkernel/BKE_idtype.h
@@ -142,7 +142,7 @@ extern IDTypeInfo IDType_ID_WO;
extern IDTypeInfo IDType_ID_SCR;
extern IDTypeInfo IDType_ID_VF;
extern IDTypeInfo IDType_ID_TXT;
-// extern IDTypeInfo IDType_ID_SPK;
+extern IDTypeInfo IDType_ID_SPK;
// extern IDTypeInfo IDType_ID_SO;
extern IDTypeInfo IDType_ID_GR;
extern IDTypeInfo IDType_ID_AR;
diff --git a/source/blender/blenkernel/BKE_speaker.h b/source/blender/blenkernel/BKE_speaker.h
index a80a8062d39..54bb7274e4b 100644
--- a/source/blender/blenkernel/BKE_speaker.h
+++ b/source/blender/blenkernel/BKE_speaker.h
@@ -29,15 +29,8 @@ extern "C" {
struct Main;
struct Speaker;
-void BKE_speaker_init(struct Speaker *spk);
void *BKE_speaker_add(struct Main *bmain, const char *name);
-void BKE_speaker_copy_data(struct Main *bmain,
- struct Speaker *spk_dst,
- const struct Speaker *spk_src,
- const int flag);
struct Speaker *BKE_speaker_copy(struct Main *bmain, const struct Speaker *spk);
-void BKE_speaker_make_local(struct Main *bmain, struct Speaker *spk, const int flags);
-void BKE_speaker_free(struct Speaker *spk);
#ifdef __cplusplus
}
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);
-}