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_object.h5
-rw-r--r--source/blender/blenkernel/BKE_speaker.h43
-rw-r--r--source/blender/blenkernel/CMakeLists.txt2
-rw-r--r--source/blender/blenkernel/intern/library.c1
-rw-r--r--source/blender/blenkernel/intern/object.c95
-rw-r--r--source/blender/blenkernel/intern/speaker.c139
-rw-r--r--source/blender/editors/interface/resources.c7
-rw-r--r--source/blender/editors/object/object_add.c1
-rw-r--r--source/blender/editors/object/object_relations.c1
-rw-r--r--source/blender/makesrna/intern/rna_main_api.c1
10 files changed, 196 insertions, 99 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index f9e01a524ab..a6b5c04b5c3 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -88,11 +88,6 @@ void make_local_lamp(struct Lamp *la);
void free_camera(struct Camera *ca);
void free_lamp(struct Lamp *la);
-void *add_speaker(const char *name);
-struct Speaker *copy_speaker(struct Speaker *spk);
-void make_local_speaker(struct Speaker *spk);
-void free_speaker(struct Speaker *spk);
-
struct Object *add_only_object(int type, const char *name);
struct Object *add_object(struct Scene *scene, int type);
diff --git a/source/blender/blenkernel/BKE_speaker.h b/source/blender/blenkernel/BKE_speaker.h
new file mode 100644
index 00000000000..111bd86fdd3
--- /dev/null
+++ b/source/blender/blenkernel/BKE_speaker.h
@@ -0,0 +1,43 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Jörg Müller.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef BKE_SPEAKER_H
+#define BKE_SPEAKER_H
+
+/** \file BKE_speaker.h
+ * \ingroup bke
+ * \brief General operations for speakers.
+ */
+
+void *add_speaker(const char *name);
+struct Speaker *copy_speaker(struct Speaker *spk);
+void make_local_speaker(struct Speaker *spk);
+void free_speaker(struct Speaker *spk);
+
+#endif
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index defcef58463..c1797427cc2 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -140,6 +140,7 @@ set(SRC
intern/smoke.c
intern/softbody.c
intern/sound.c
+ intern/speaker.c
intern/subsurf_ccg.c
intern/suggestions.c
intern/text.c
@@ -220,6 +221,7 @@ set(SRC
BKE_smoke.h
BKE_softbody.h
BKE_sound.h
+ BKE_speaker.h
BKE_subsurf.h
BKE_suggestions.h
BKE_text.h
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 85f87992c28..8668168936b 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -109,6 +109,7 @@
#include "BKE_particle.h"
#include "BKE_gpencil.h"
#include "BKE_fcurve.h"
+#include "BKE_speaker.h"
#include "RNA_access.h"
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 66bf4ea208b..a615bc42f66 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -56,7 +56,6 @@
#include "DNA_sequence_types.h"
#include "DNA_sound_types.h"
#include "DNA_space_types.h"
-#include "DNA_speaker_types.h"
#include "DNA_view3d_types.h"
#include "DNA_world_types.h"
@@ -98,6 +97,7 @@
#include "BKE_sca.h"
#include "BKE_scene.h"
#include "BKE_sequencer.h"
+#include "BKE_speaker.h"
#include "BKE_softbody.h"
#include "BKE_material.h"
@@ -977,99 +977,6 @@ void free_lamp(Lamp *la)
la->id.icon_id = 0;
}
-void *add_speaker(const char *name)
-{
- Speaker *spk;
-
- spk= alloc_libblock(&G.main->speaker, ID_SPK, name);
-
- spk->attenuation = 1.0f;
- spk->cone_angle_inner = 360.0f;
- spk->cone_angle_outer = 360.0f;
- spk->cone_volume_outer = 1.0f;
- spk->distance_max = FLT_MAX;
- spk->distance_reference = 1.0f;
- spk->flag = 0;
- spk->pitch = 1.0f;
- spk->sound = NULL;
- spk->volume = 1.0f;
- spk->volume_max = 1.0f;
- spk->volume_min = 0.0f;
-
- return spk;
-}
-
-Speaker *copy_speaker(Speaker *spk)
-{
- Speaker *spkn;
-
- spkn= copy_libblock(spk);
- if(spkn->sound)
- spkn->sound->id.us++;
-
- return spkn;
-}
-
-void make_local_speaker(Speaker *spk)
-{
- Main *bmain= G.main;
- Object *ob;
- int local=0, lib=0;
-
- /* - only lib users: do nothing
- * - only local users: set flag
- * - mixed: make copy
- */
-
- if(spk->id.lib==NULL) return;
- if(spk->id.us==1) {
- spk->id.lib= NULL;
- spk->id.flag= LIB_LOCAL;
- new_id(&bmain->speaker, (ID *)spk, NULL);
- return;
- }
-
- ob= bmain->object.first;
- while(ob) {
- if(ob->data==spk) {
- if(ob->id.lib) lib= 1;
- else local= 1;
- }
- ob= ob->id.next;
- }
-
- if(local && lib==0) {
- spk->id.lib= NULL;
- spk->id.flag= LIB_LOCAL;
- new_id(&bmain->speaker, (ID *)spk, NULL);
- }
- else if(local && lib) {
- Speaker *spkn= copy_speaker(spk);
- spkn->id.us= 0;
-
- ob= bmain->object.first;
- while(ob) {
- if(ob->data==spk) {
-
- if(ob->id.lib==NULL) {
- ob->data= spkn;
- spkn->id.us++;
- spk->id.us--;
- }
- }
- ob= ob->id.next;
- }
- }
-}
-
-void free_speaker(Speaker *spk)
-{
- if(spk->sound)
- spk->sound->id.us--;
-
- BKE_free_animdata((ID *)spk);
-}
-
/* *************************************************** */
static void *add_obdata_from_type(int type)
diff --git a/source/blender/blenkernel/intern/speaker.c b/source/blender/blenkernel/intern/speaker.c
new file mode 100644
index 00000000000..200dbd41899
--- /dev/null
+++ b/source/blender/blenkernel/intern/speaker.c
@@ -0,0 +1,139 @@
+/* speaker.c
+ *
+ *
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Jörg Müller.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/blenkernel/intern/speaker.c
+ * \ingroup bke
+ */
+
+#include "DNA_object_types.h"
+#include "DNA_sound_types.h"
+#include "DNA_speaker_types.h"
+
+#include "BLI_math.h"
+
+#include "BKE_animsys.h"
+#include "BKE_global.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_speaker.h"
+
+void *add_speaker(const char *name)
+{
+ Speaker *spk;
+
+ spk= alloc_libblock(&G.main->speaker, ID_SPK, name);
+
+ spk->attenuation = 1.0f;
+ spk->cone_angle_inner = 360.0f;
+ spk->cone_angle_outer = 360.0f;
+ spk->cone_volume_outer = 1.0f;
+ spk->distance_max = FLT_MAX;
+ spk->distance_reference = 1.0f;
+ spk->flag = 0;
+ spk->pitch = 1.0f;
+ spk->sound = NULL;
+ spk->volume = 1.0f;
+ spk->volume_max = 1.0f;
+ spk->volume_min = 0.0f;
+
+ return spk;
+}
+
+Speaker *copy_speaker(Speaker *spk)
+{
+ Speaker *spkn;
+
+ spkn= copy_libblock(spk);
+ if(spkn->sound)
+ spkn->sound->id.us++;
+
+ return spkn;
+}
+
+void make_local_speaker(Speaker *spk)
+{
+ Main *bmain= G.main;
+ Object *ob;
+ int local=0, lib=0;
+
+ /* - only lib users: do nothing
+ * - only local users: set flag
+ * - mixed: make copy
+ */
+
+ if(spk->id.lib==NULL) return;
+ if(spk->id.us==1) {
+ spk->id.lib= NULL;
+ spk->id.flag= LIB_LOCAL;
+ new_id(&bmain->speaker, (ID *)spk, NULL);
+ return;
+ }
+
+ ob= bmain->object.first;
+ while(ob) {
+ if(ob->data==spk) {
+ if(ob->id.lib) lib= 1;
+ else local= 1;
+ }
+ ob= ob->id.next;
+ }
+
+ if(local && lib==0) {
+ spk->id.lib= NULL;
+ spk->id.flag= LIB_LOCAL;
+ new_id(&bmain->speaker, (ID *)spk, NULL);
+ }
+ else if(local && lib) {
+ Speaker *spkn= copy_speaker(spk);
+ spkn->id.us= 0;
+
+ ob= bmain->object.first;
+ while(ob) {
+ if(ob->data==spk) {
+
+ if(ob->id.lib==NULL) {
+ ob->data= spkn;
+ spkn->id.us++;
+ spk->id.us--;
+ }
+ }
+ ob= ob->id.next;
+ }
+ }
+}
+
+void free_speaker(Speaker *spk)
+{
+ if(spk->sound)
+ spk->sound->id.us--;
+
+ BKE_free_animdata((ID *)spk);
+}
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index adabfe5f230..dd63cdf5861 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -1594,6 +1594,13 @@ void init_userdef_do_versions(void)
NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM | NDOF_SHOULD_ROTATE;
}
+ {
+ bTheme *btheme;
+ for(btheme= U.themes.first; btheme; btheme= btheme->next) {
+ btheme->tv3d.speaker[3] = 255;
+ }
+ }
+
/* funny name, but it is GE stuff, moves userdef stuff to engine */
// XXX space_set_commmandline_options();
/* this timer uses U */
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index 97a98d2017f..22e6a5243c7 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -73,6 +73,7 @@
#include "BKE_particle.h"
#include "BKE_report.h"
#include "BKE_sca.h"
+#include "BKE_speaker.h"
#include "BKE_texture.h"
#include "RNA_access.h"
diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c
index ce1f47c1b7b..39300cabd5e 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -76,6 +76,7 @@
#include "BKE_report.h"
#include "BKE_sca.h"
#include "BKE_scene.h"
+#include "BKE_speaker.h"
#include "BKE_texture.h"
#include "WM_api.h"
diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c
index 7b951294aee..e99958c2217 100644
--- a/source/blender/makesrna/intern/rna_main_api.c
+++ b/source/blender/makesrna/intern/rna_main_api.c
@@ -63,6 +63,7 @@
#include "BKE_particle.h"
#include "BKE_font.h"
#include "BKE_node.h"
+#include "BKE_speaker.h"
#include "DNA_armature_types.h"
#include "DNA_camera_types.h"