From a27cc1adf0ef41ee71c9459df940c6fa3c578eea Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Mon, 10 Aug 2009 15:39:11 +0000 Subject: 2.5 audio cleanup: * Removed CD Actuator * Removed bSample and bSoundListener * Removed SoundSystem * Removed -noaudio parameter --- intern/CMakeLists.txt | 1 - intern/Makefile | 2 +- intern/SConscript | 1 - intern/SoundSystem/CMakeLists.txt | 42 - intern/SoundSystem/Makefile | 70 -- intern/SoundSystem/SConscript | 20 - intern/SoundSystem/SND_C-api.h | 354 --------- intern/SoundSystem/SND_CDObject.h | 83 -- intern/SoundSystem/SND_DependKludge.h | 50 -- intern/SoundSystem/SND_DeviceManager.h | 79 -- intern/SoundSystem/SND_IAudioDevice.h | 343 --------- intern/SoundSystem/SND_Object.h | 54 -- intern/SoundSystem/SND_Scene.h | 104 --- intern/SoundSystem/SND_SoundListener.h | 82 -- intern/SoundSystem/SND_SoundObject.h | 159 ---- intern/SoundSystem/SND_Utils.h | 111 --- intern/SoundSystem/SND_WaveCache.h | 66 -- intern/SoundSystem/SND_WaveSlot.h | 92 --- intern/SoundSystem/SND_test/Makefile | 48 -- intern/SoundSystem/SND_test/SND_test.c | 154 ---- intern/SoundSystem/SoundDefines.h | 107 --- intern/SoundSystem/dummy/Makefile | 42 - intern/SoundSystem/dummy/SND_DummyDevice.cpp | 52 -- intern/SoundSystem/dummy/SND_DummyDevice.h | 93 --- intern/SoundSystem/intern/Makefile | 44 -- intern/SoundSystem/intern/SND_AudioDevice.cpp | 242 ------ intern/SoundSystem/intern/SND_AudioDevice.h | 115 --- intern/SoundSystem/intern/SND_C-api.cpp | 392 ---------- intern/SoundSystem/intern/SND_CDObject.cpp | 182 ----- intern/SoundSystem/intern/SND_DeviceManager.cpp | 126 --- intern/SoundSystem/intern/SND_IdObject.cpp | 76 -- intern/SoundSystem/intern/SND_IdObject.h | 58 -- intern/SoundSystem/intern/SND_Scene.cpp | 544 ------------- intern/SoundSystem/intern/SND_SoundListener.cpp | 185 ----- intern/SoundSystem/intern/SND_SoundObject.cpp | 508 ------------ intern/SoundSystem/intern/SND_Utils.cpp | 424 ---------- intern/SoundSystem/intern/SND_WaveCache.cpp | 138 ---- intern/SoundSystem/intern/SND_WaveSlot.cpp | 180 ----- intern/SoundSystem/make/msvc_6_0/SoundSystem.dsp | 206 ----- .../make/msvc_6_0/dummy/DummySoundSystem.dsp | 103 --- .../make/msvc_6_0/openal/OpenALSoundSystem.dsp | 106 --- .../SoundSystem/make/msvc_7_0/SoundSystem.vcproj | 339 -------- .../make/msvc_7_0/dummy/DummySoundSystem.vcproj | 243 ------ .../make/msvc_7_0/openal/OpenALSoundSystem.vcproj | 249 ------ .../SoundSystem/make/msvc_9_0/SoundSystem.vcproj | 447 ----------- .../make/msvc_9_0/dummy/DummySoundSystem.vcproj | 343 --------- .../make/msvc_9_0/openal/OpenALSoundSystem.vcproj | 351 --------- intern/SoundSystem/openal/Makefile | 44 -- intern/SoundSystem/openal/SND_OpenALDevice.cpp | 854 --------------------- intern/SoundSystem/openal/SND_OpenALDevice.h | 107 --- intern/SoundSystem/openal/pthread_cancel.cpp | 67 -- intern/SoundSystem/sdl/Makefile | 43 -- intern/SoundSystem/sdl/SND_SDLCDDevice.cpp | 171 ----- intern/SoundSystem/sdl/SND_SDLCDDevice.h | 58 -- intern/audaspace/SDL/AUD_SDLMixerFactory.cpp | 2 + intern/audaspace/SDL/AUD_SDLMixerReader.cpp | 2 + 56 files changed, 5 insertions(+), 9153 deletions(-) delete mode 100644 intern/SoundSystem/CMakeLists.txt delete mode 100644 intern/SoundSystem/Makefile delete mode 100644 intern/SoundSystem/SConscript delete mode 100644 intern/SoundSystem/SND_C-api.h delete mode 100644 intern/SoundSystem/SND_CDObject.h delete mode 100644 intern/SoundSystem/SND_DependKludge.h delete mode 100644 intern/SoundSystem/SND_DeviceManager.h delete mode 100644 intern/SoundSystem/SND_IAudioDevice.h delete mode 100644 intern/SoundSystem/SND_Object.h delete mode 100644 intern/SoundSystem/SND_Scene.h delete mode 100644 intern/SoundSystem/SND_SoundListener.h delete mode 100644 intern/SoundSystem/SND_SoundObject.h delete mode 100644 intern/SoundSystem/SND_Utils.h delete mode 100644 intern/SoundSystem/SND_WaveCache.h delete mode 100644 intern/SoundSystem/SND_WaveSlot.h delete mode 100644 intern/SoundSystem/SND_test/Makefile delete mode 100644 intern/SoundSystem/SND_test/SND_test.c delete mode 100644 intern/SoundSystem/SoundDefines.h delete mode 100644 intern/SoundSystem/dummy/Makefile delete mode 100644 intern/SoundSystem/dummy/SND_DummyDevice.cpp delete mode 100644 intern/SoundSystem/dummy/SND_DummyDevice.h delete mode 100644 intern/SoundSystem/intern/Makefile delete mode 100644 intern/SoundSystem/intern/SND_AudioDevice.cpp delete mode 100644 intern/SoundSystem/intern/SND_AudioDevice.h delete mode 100644 intern/SoundSystem/intern/SND_C-api.cpp delete mode 100644 intern/SoundSystem/intern/SND_CDObject.cpp delete mode 100644 intern/SoundSystem/intern/SND_DeviceManager.cpp delete mode 100644 intern/SoundSystem/intern/SND_IdObject.cpp delete mode 100644 intern/SoundSystem/intern/SND_IdObject.h delete mode 100644 intern/SoundSystem/intern/SND_Scene.cpp delete mode 100644 intern/SoundSystem/intern/SND_SoundListener.cpp delete mode 100644 intern/SoundSystem/intern/SND_SoundObject.cpp delete mode 100644 intern/SoundSystem/intern/SND_Utils.cpp delete mode 100644 intern/SoundSystem/intern/SND_WaveCache.cpp delete mode 100644 intern/SoundSystem/intern/SND_WaveSlot.cpp delete mode 100644 intern/SoundSystem/make/msvc_6_0/SoundSystem.dsp delete mode 100644 intern/SoundSystem/make/msvc_6_0/dummy/DummySoundSystem.dsp delete mode 100644 intern/SoundSystem/make/msvc_6_0/openal/OpenALSoundSystem.dsp delete mode 100644 intern/SoundSystem/make/msvc_7_0/SoundSystem.vcproj delete mode 100644 intern/SoundSystem/make/msvc_7_0/dummy/DummySoundSystem.vcproj delete mode 100644 intern/SoundSystem/make/msvc_7_0/openal/OpenALSoundSystem.vcproj delete mode 100644 intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj delete mode 100644 intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj delete mode 100644 intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj delete mode 100644 intern/SoundSystem/openal/Makefile delete mode 100644 intern/SoundSystem/openal/SND_OpenALDevice.cpp delete mode 100644 intern/SoundSystem/openal/SND_OpenALDevice.h delete mode 100644 intern/SoundSystem/openal/pthread_cancel.cpp delete mode 100644 intern/SoundSystem/sdl/Makefile delete mode 100644 intern/SoundSystem/sdl/SND_SDLCDDevice.cpp delete mode 100644 intern/SoundSystem/sdl/SND_SDLCDDevice.h (limited to 'intern') diff --git a/intern/CMakeLists.txt b/intern/CMakeLists.txt index f6877e3bce0..f33ce6a893c 100644 --- a/intern/CMakeLists.txt +++ b/intern/CMakeLists.txt @@ -25,7 +25,6 @@ # ***** END GPL LICENSE BLOCK ***** ADD_SUBDIRECTORY(audaspace) -ADD_SUBDIRECTORY(SoundSystem) ADD_SUBDIRECTORY(string) ADD_SUBDIRECTORY(ghost) ADD_SUBDIRECTORY(guardedalloc) diff --git a/intern/Makefile b/intern/Makefile index 033e44b6e3d..4bf18f987a4 100644 --- a/intern/Makefile +++ b/intern/Makefile @@ -32,7 +32,7 @@ SOURCEDIR = intern # include nan_subdirs.mk ALLDIRS = string ghost guardedalloc moto container memutil -ALLDIRS += decimation iksolver bsp SoundSystem opennl elbeem boolop smoke audaspace +ALLDIRS += decimation iksolver bsp opennl elbeem boolop smoke audaspace all:: @for i in $(ALLDIRS); do \ diff --git a/intern/SConscript b/intern/SConscript index 34b88eee3ff..af5d0671c27 100644 --- a/intern/SConscript +++ b/intern/SConscript @@ -2,7 +2,6 @@ Import ('env') SConscript(['audaspace/SConscript', - 'SoundSystem/SConscript', 'string/SConscript', 'ghost/SConscript', 'guardedalloc/SConscript', diff --git a/intern/SoundSystem/CMakeLists.txt b/intern/SoundSystem/CMakeLists.txt deleted file mode 100644 index 9a370af2268..00000000000 --- a/intern/SoundSystem/CMakeLists.txt +++ /dev/null @@ -1,42 +0,0 @@ -# $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# The Original Code is Copyright (C) 2006, Blender Foundation -# All rights reserved. -# -# The Original Code is: all of this file. -# -# Contributor(s): Jacques Beaurain. -# -# ***** END GPL LICENSE BLOCK ***** - -SET(INC . intern ../moto/include ../string dummy openal sdl) - -IF(WITH_OPENAL) - FILE(GLOB SRC dummy/*.cpp intern/*.cpp openal/*.cpp sdl/*.cpp) - INCLUDE_DIRECTORIES(${OPENAL_INC} ${SDL_INC}) - STRING(REGEX MATCH ".*ramework.*" FRAMEWORK ${OPENAL_INC}) - IF(FRAMEWORK) - ADD_DEFINITIONS(-DAPPLE_FRAMEWORK_FIX) - ENDIF(FRAMEWORK) -ELSE(WITH_OPENAL) - FILE(GLOB SRC dummy/*.cpp intern/*.cpp) - ADD_DEFINITIONS(-DNO_SOUND) -ENDIF(WITH_OPENAL) - -BLENDERLIB(bf_soundsystem "${SRC}" "${INC}") -#, libtype=['core','player'], priority = [20,140] ) diff --git a/intern/SoundSystem/Makefile b/intern/SoundSystem/Makefile deleted file mode 100644 index 4d346f65138..00000000000 --- a/intern/SoundSystem/Makefile +++ /dev/null @@ -1,70 +0,0 @@ -# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*- -# vim: tabstop=8 -# -# $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): GSR -# -# ***** END GPL LICENSE BLOCK ***** -# -# - -include nan_definitions.mk - -LIBNAME = SoundSystem -SOURCEDIR = intern/SoundSystem -DIR = $(OCGDIR)/$(SOURCEDIR) -DIRS = intern -DIRS += dummy - -ifneq ($(NAN_NO_OPENAL),true) - ifeq ($(OS),windows) - DIRS += openal sdl - endif - ifeq ($(OS),darwin) - DIRS += openal - endif - ifeq ($(OS),$(findstring $(OS), "linux freebsd solaris")) - DIRS += openal sdl - endif - ifeq ($(OS), irix) - DIRS += sdl - endif -else - export CPPFLAGS += -DNO_SOUND -endif - -include nan_subdirs.mk - -install: $(ALL_OR_DEBUG) - @[ -d $(NAN_SOUNDSYSTEM) ] || mkdir $(NAN_SOUNDSYSTEM) - @[ -d $(NAN_SOUNDSYSTEM)/include ] || mkdir $(NAN_SOUNDSYSTEM)/include - @[ -d $(NAN_SOUNDSYSTEM)/lib/$(DEBUG_DIR) ] || mkdir $(NAN_SOUNDSYSTEM)/lib/$(DEBUG_DIR) - @../tools/cpifdiff.sh $(DIR)/$(DEBUG_DIR)libSoundSystem.a $(NAN_SOUNDSYSTEM)/lib/$(DEBUG_DIR) -ifeq ($(OS),darwin) - ranlib $(NAN_SOUNDSYSTEM)/lib/$(DEBUG_DIR)libSoundSystem.a -endif - @../tools/cpifdiff.sh *.h $(NAN_SOUNDSYSTEM)/include/ - - diff --git a/intern/SoundSystem/SConscript b/intern/SoundSystem/SConscript deleted file mode 100644 index 256b7904a0f..00000000000 --- a/intern/SoundSystem/SConscript +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/python - -Import ('env') - -sources = env.Glob('dummy/*.cpp') + env.Glob('intern/*.cpp') - -incs = '. intern ../moto/include ../string dummy openal sdl' -defs = '' -if env['WITH_BF_OPENAL']: - sources += env.Glob('openal/*.cpp') + env.Glob('sdl/*.cpp') - incs += ' ' + env['BF_OPENAL_INC'] - incs += ' ' + env['BF_SDL_INC'] - defs = 'USE_OPENAL' -else: - defs = 'NO_SOUND' - -if not env['WITH_BF_SDL']: - defs += ' DISABLE_SDL' - -env.BlenderLib ('bf_soundsystem', sources, Split(incs), Split(defs), libtype=['intern','player'], priority = [25,135] ) diff --git a/intern/SoundSystem/SND_C-api.h b/intern/SoundSystem/SND_C-api.h deleted file mode 100644 index f8e439a9c26..00000000000 --- a/intern/SoundSystem/SND_C-api.h +++ /dev/null @@ -1,354 +0,0 @@ -/** - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ -#ifndef SND_BLENDER_H -#define SND_BLENDER_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "SoundDefines.h" - -#define SND_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name - -SND_DECLARE_HANDLE(SND_AudioDeviceInterfaceHandle); -SND_DECLARE_HANDLE(SND_SceneHandle); -SND_DECLARE_HANDLE(SND_ObjectHandle); -SND_DECLARE_HANDLE(SND_ListenerHandle); - -/** - * set the specified type - */ -extern void SND_SetDeviceType(int device_type); - -/** - * get an audiodevice - */ -extern SND_AudioDeviceInterfaceHandle SND_GetAudioDevice(void); - -/** - * and let go of it - */ -extern void SND_ReleaseDevice(void); - -/** - * check if playback is desired - */ -extern int SND_IsPlaybackWanted(SND_SceneHandle scene); - -/** - * add memlocation to cache - */ -extern int SND_AddSample(SND_SceneHandle scene, - const char* filename, - void* memlocation, - int size); - -/** - * remove all samples - */ -extern void SND_RemoveAllSamples(SND_SceneHandle scene); - -/** - * forces the object to check its buffer, and fix it if it's wrong - */ -extern int SND_CheckBuffer(SND_SceneHandle scene, SND_ObjectHandle object); - -/** - * Creates a scene, initializes it and returns a handle to that scene. - * - * @param audiodevice: handle to the audiodevice. - */ -extern SND_SceneHandle SND_CreateScene(SND_AudioDeviceInterfaceHandle audiodevice); - -/** - * Stops all sounds, suspends the scene (so all resources will be freed) and deletes the scene. - * - * @param scene: handle to the soundscene. - */ -extern void SND_DeleteScene(SND_SceneHandle scene); - -/** - * Adds a soundobject to the scene, gets the buffer the sample is loaded into. - * - * @param scene: handle to the soundscene. - * @param object: handle to soundobject. - */ -extern void SND_AddSound(SND_SceneHandle scene, SND_ObjectHandle object); - -/** - * Removes a soundobject from the scene. - * - * @param scene: handle to the soundscene. - * @param object: handle to soundobject. - */ -extern void SND_RemoveSound(SND_SceneHandle scene, SND_ObjectHandle object); - -/** - * Removes all soundobjects from the scene. - * - * @param scene: handle to the soundscene. - */ -extern void SND_RemoveAllSounds(SND_SceneHandle scene); - -/** - * Stopss all soundobjects in the scene. - * - * @param scene: handle to the soundscene. - */ -extern void SND_StopAllSounds(SND_SceneHandle scene); - -/** - * Updates the listener, checks the status of all soundobjects, builds a list of all active - * objects, updates the active objects. - * - * @param audiodevice: handle to the audiodevice. - * @param scene: handle to the soundscene. - */ -extern void SND_Proceed(SND_AudioDeviceInterfaceHandle audiodevice, SND_SceneHandle scene); - -/** - * Returns a handle to the listener. - * - * @param scene: handle to the soundscene. - */ -extern SND_ListenerHandle SND_GetListener(SND_SceneHandle scene); - -/** - * Sets the gain of the listener. - * - * @param scene: handle to the soundscene. - * @param gain: factor the gain gets multiplied with. - */ -extern void SND_SetListenerGain(SND_SceneHandle scene, double gain); - -/** - * Sets a scaling to exaggerate or deemphasize the Doppler (pitch) shift resulting from the - * calculation. - * @attention $f' = dopplerfactor * f * frac{dopplervelocity - listener_velocity}{dopplervelocity + object_velocity}$ - * @attention f: frequency in sample (soundobject) - * @attention f': effective Doppler shifted frequency - * - * @param object: handle to soundobject. - * @param dopplerfactor: the dopplerfactor. - */ -extern void SND_SetDopplerFactor(SND_SceneHandle scene, double dopplerfactor); - -/** - * Sets the value of the propagation speed relative to which the source velocities are interpreted. - * @attention $f' = dopplerfactor * f * frac{dopplervelocity - listener_velocity}{dopplervelocity + object_velocity}$ - * @attention f: frequency in sample (soundobject) - * @attention f': effective Doppler shifted frequency - * - * @param object: handle to soundobject. - * @param dopplervelocity: the dopplervelocity. - */ -extern void SND_SetDopplerVelocity(SND_SceneHandle scene, double dopplervelocity); - -/** - * Creates a new soundobject and returns a handle to it. - */ -extern SND_ObjectHandle SND_CreateSound(void); - -/** - * Deletes a soundobject. - * - * @param object: handle to soundobject. - */ -extern void SND_DeleteSound(SND_ObjectHandle object); - -/** - * Sets a soundobject to SND_MUST_PLAY, so with the next proceed it will be updated and played. - * - * @param object: handle to soundobject. - */ -extern void SND_StartSound(SND_SceneHandle scene, SND_ObjectHandle object); - -/** - * Sets a soundobject to SND_MUST_STOP, so with the next proceed it will be stopped. - * - * @param object: handle to soundobject. - */ -extern void SND_StopSound(SND_SceneHandle scene, SND_ObjectHandle object); - -/** - * Sets a soundobject to SND_MUST_PAUSE, so with the next proceed it will be paused. - * - * @param object: handle to soundobject. - */ -extern void SND_PauseSound(SND_SceneHandle scene, SND_ObjectHandle object); - -/** - * Sets the name of the sample to reference the soundobject to it. - * - * @param object: handle to soundobject. - * @param samplename: the name of the sample - */ -extern void SND_SetSampleName(SND_ObjectHandle object, char* samplename); - -/** - * Sets the gain of a soundobject. - * - * @param object: handle to soundobject. - * @param gain: factor the gain gets multiplied with. - */ -extern void SND_SetGain(SND_ObjectHandle object, double gain); - -/** - * Sets the minimum gain of a soundobject. - * - * @param object: handle to soundobject. - * @param minimumgain: lower threshold for the gain. - */ -extern void SND_SetMinimumGain(SND_ObjectHandle object, double minimumgain); - -/** - * Sets the maximum gain of a soundobject. - * - * @param object: handle to soundobject. - * @param maximumgain: upper threshold for the gain. - */ -extern void SND_SetMaximumGain(SND_ObjectHandle object, double maximumgain); - -/** - * Sets the rollofffactor. The rollofffactor is a per-Source parameter the application - * can use to increase or decrease the range of a source by decreasing or increasing the - * attenuation, respectively. The default value is 1. The implementation is free to optimize - * for a rollofffactor value of 0, which indicates that the application does not wish any - * distance attenuation on the respective Source. - * - * @param object: handle to soundobject. - * @param rollofffactor: the rollofffactor. - */ -extern void SND_SetRollOffFactor(SND_ObjectHandle object, double rollofffactor); - -/** - * Sets the referencedistance at which the listener will experience gain. - * @attention G_dB = gain - 20 * log10(1 + rollofffactor * (dist - referencedistance)/referencedistance); - * - * @param object: handle to soundobject. - * @param distance: the reference distance. - */ -extern void SND_SetReferenceDistance(SND_ObjectHandle object, double referencedistance); - -/** - * Sets the pitch of a soundobject. - * - * @param object: handle to soundobject. - * @param pitch: pitchingfactor: 2.0 for doubling the frequency, 0.5 for half the frequency. - */ -extern void SND_SetPitch(SND_ObjectHandle object, double pitch); - -/** - * Sets the position a soundobject. - * - * @param object: handle to soundobject. - * @param position: position[3]. - */ -extern void SND_SetPosition(SND_ObjectHandle object, double* position); - -/** - * Sets the velocity of a soundobject. - * - * @param object: handle to soundobject. - * @param velocity: velocity[3]. - */ -extern void SND_SetVelocity(SND_ObjectHandle object, double* velocity); - -/** - * Sets the orientation of a soundobject. - * - * @param object: handle to soundobject. - * @param orientation: orientation[9]. - */ -extern void SND_SetOrientation(SND_ObjectHandle object, double* orientation); - -/** - * Sets the loopmode of a soundobject. - * - * @param object: handle to soundobject. - * @param loopmode type of the loop (SND_LOOP_OFF, SND_LOOP_NORMAL, SND_LOOP_BIDIRECTIONAL); - */ -extern void SND_SetLoopMode(SND_ObjectHandle object, int loopmode); - -/** - * Sets the looppoints of a soundobject. - * - * @param object: handle to soundobject. - * @param loopstart startpoint of the loop - * @param loopend endpoint of the loop - */ -extern void SND_SetLoopPoints(SND_ObjectHandle object, unsigned int loopstart, unsigned int loopend); - -/** - * Gets the gain of a soundobject. - * - * @param object: handle to soundobject. - */ -extern float SND_GetGain(SND_ObjectHandle object); - -/** - * Gets the pitch of a soundobject. - * - * @param object: handle to soundobject. - */ -extern float SND_GetPitch(SND_ObjectHandle object); - -/** - * Gets the looping of a soundobject. - * 0: SND_LOOP_OFF - * 1: SND_LOOP_NORMAL - * 2: SND_LOOP_BIDIRECTIONAL - * - * @param object: handle to soundobject. - */ -extern int SND_GetLoopMode(SND_ObjectHandle object); - -/** - * Gets the playstate of a soundobject. - * SND_UNKNOWN = -1 - * SND_INITIAL - * SND_MUST_PLAY - * SND_PLAYING - * SND_MUST_STOP - * SND_STOPPED - * SND_MUST_PAUSE - * SND_PAUSED - * SND_MUST_BE_DELETED - * - * @param object: handle to soundobject. - */ -extern int SND_GetPlaystate(SND_ObjectHandle object); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/intern/SoundSystem/SND_CDObject.h b/intern/SoundSystem/SND_CDObject.h deleted file mode 100644 index c79f62d9862..00000000000 --- a/intern/SoundSystem/SND_CDObject.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * SND_CDObject.h - * - * Implementation for CD playback - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef __SND_CDOBJECT_H -#define __SND_CDOBJECT_H - -#include "SND_Object.h" - -class SND_CDObject : public SND_Object -{ -private: - - /** - * Private to enforce singleton - */ - SND_CDObject(); - SND_CDObject(const SND_CDObject&); - - static SND_CDObject* m_instance; - MT_Scalar m_gain; /* the gain of the object */ - int m_playmode; /* the way CD is played back (all, random, track, trackloop) */ - int m_track; /* the track for 'track' and 'trackloop' */ - int m_playstate; /* flag for current state of object */ - bool m_modified; - bool m_used; /* flag for checking if we used the cd, if not don't - call the stop cd at the end */ - -public: - static bool CreateSystem(); - static bool DisposeSystem(); - static SND_CDObject* Instance(); - - ~SND_CDObject(); - - void SetGain(MT_Scalar gain); - void SetPlaymode(int playmode); - void SetTrack(int track); - void SetPlaystate(int playstate); - void SetModified(bool modified); - void SetUsed(); - bool GetUsed(); - - bool IsModified() const; - - int GetTrack() const; - MT_Scalar GetGain() const; - int GetPlaymode() const; - int GetPlaystate() const; - -}; - -#endif //__SND_CDOBJECT_H - diff --git a/intern/SoundSystem/SND_DependKludge.h b/intern/SoundSystem/SND_DependKludge.h deleted file mode 100644 index 06d4ec9c0c9..00000000000 --- a/intern/SoundSystem/SND_DependKludge.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * SND_DependKludge.h - * - * who needs what? - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef HAVE_CONFIG_H - -#ifndef NO_SOUND - -#if defined (_WIN32) && !defined(FREE_WINDOWS) -# define USE_OPENAL -#elif defined (__linux__) || (__FreeBSD__) || defined(__APPLE__) || defined(__sun) -# define USE_OPENAL -#else -# ifdef USE_OPENAL -# undef USE_OPENAL -# endif -#endif - -#endif /* NO_SOUND */ - -#endif /* HAVE_CONFIG_H */ diff --git a/intern/SoundSystem/SND_DeviceManager.h b/intern/SoundSystem/SND_DeviceManager.h deleted file mode 100644 index 708db030519..00000000000 --- a/intern/SoundSystem/SND_DeviceManager.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * SND_DeviceManager.h - * - * singleton for creating, switching and deleting audiodevices - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef __SND_DEVICEMANAGER_H -#define __SND_DEVICEMANAGER_H - -#include "SND_IAudioDevice.h" - -class SND_DeviceManager -{ -public : - - /** - * a subscription is needed before instances are given away - * applications must call subscribe first, get an instance, and - * when they are finished with sound, unsubscribe - */ - static void Subscribe(); - static void Unsubscribe(); - - static SND_IAudioDevice* Instance(); - static void SetDeviceType(int device_type); - -private : - - /** - * Private to enforce singleton - */ - SND_DeviceManager(); - SND_DeviceManager(const SND_DeviceManager&); - ~SND_DeviceManager(); - - static SND_IAudioDevice* m_instance; - - /** - * The type of device to be created on a call - * to Instance(). - */ - static int m_device_type; - - /** - * Remember the number of subscriptions. - * if 0, delete the device - */ - static int m_subscriptions; -}; - -#endif //__SND_DEVICEMANAGER_H - diff --git a/intern/SoundSystem/SND_IAudioDevice.h b/intern/SoundSystem/SND_IAudioDevice.h deleted file mode 100644 index d6b3936e6ef..00000000000 --- a/intern/SoundSystem/SND_IAudioDevice.h +++ /dev/null @@ -1,343 +0,0 @@ -/** - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ -#ifndef SND_IAUDIODEVICE -#define SND_IAUDIODEVICE - -#include "SND_SoundObject.h" -#include "SND_CDObject.h" -#include "SND_WaveCache.h" -#include "SND_WaveSlot.h" -#include "MT_Matrix3x3.h" - -class SND_IAudioDevice -{ -public: - - /** - * constructor - */ - SND_IAudioDevice() {}; - - /** - * destructor - */ - virtual ~SND_IAudioDevice() {}; - - /** - * check to see if initialization was successfull - * - * @return indication of succes - */ - virtual bool IsInitialized()=0; - - /** - * get the wavecache (which does sample (un)loading) - * - * @return pointer to the wavecache - */ - virtual SND_WaveCache* GetWaveCache() const =0; - - /** - * loads a sample into the device - * - * @param samplename the name of the sample - * @param memlocation pointer where the sample is stored - * @param size size of the sample in memory - * - * @return pointer to the slot with sample data - */ - virtual SND_WaveSlot* LoadSample(const STR_String& samplename, - void* memlocation, - int size)=0; - - /** - * remove a sample from the wavecache - * - * @param filename pointer to filename - */ -// virtual void RemoveSample(const char* filename)=0; - - /** - * remove all samples from the wavecache - */ - virtual void RemoveAllSamples()=0; - - /** - * get a new id from the device - * - * @param pObject pointer to soundobject - * - * @return indication of success - */ - virtual bool GetNewId(SND_SoundObject* pObject)=0; - - /** - * clear an id - * - * @param pObject pointer to soundobject - */ - virtual void ClearId(SND_SoundObject* pObject)=0; - - /** - * initialize the listener - */ - virtual void InitListener()=0; - - /** - * set the value of the propagation speed relative to which the - * source velocities are interpreted. - * f' = DOPPLER_FACTOR * f * (DOPPLER_VELOCITY - Vl) / (DOPPLER_VELOCITY + Vo) - * f: frequency in sample (soundobject) - * f': effective Doppler shifted frequency - * Vl: velocity listener - * Vo: velocity soundobject - * - * @param dopplervelocity scaling factor for doppler effect - */ - virtual void SetDopplerVelocity(MT_Scalar dopplervelocity) const =0; - - /** - * set a scaling to exaggerate or deemphasize the Doppler (pitch) - * shift resulting from the calculation. - * f' = DOPPLER_FACTOR * f * (DOPPLER_VELOCITY - Listener_velocity )/(DOPPLER_VELOCITY + object_velocity ) - * - * @param dopplerfactor scaling factor for doppler effect - */ - virtual void SetDopplerFactor(MT_Scalar dopplerfactor) const =0; - - /** - * set the roll-off factor - * - * @param rollofffactor a global volume scaling factor - */ - virtual void SetListenerRollOffFactor(MT_Scalar rollofffactor) const =0; - - /** - * make the context the current one - */ - virtual void MakeCurrent() const =0; - - /** - * update the device - */ - virtual void NextFrame() const =0; - - /** - * set the volume of the listener. - * - * @param gain the mastergain - */ - virtual void SetListenerGain(float gain) const =0; - - /** - * connect the buffer with the source - * - * @param id the id of the object - * @param buffer the buffer the sample is stored in - */ - virtual void SetObjectBuffer(int id, unsigned int buffer)=0; - - /** - * pause playback of the cd - * @param id the id of the object - * - * @return the state the object is in - */ - virtual int GetPlayState(int id) =0; - - /** - * play a sound belonging to an object. - * - * @param id the id of the object - */ - virtual void PlayObject(int id) =0; - - /** - * stop a sound belonging to an object. - * - * @param id the id of the object - */ - virtual void StopObject(int id) const =0; - - /** - * stop all sounds. - */ - virtual void StopAllObjects()=0; - - /** - * pause the sound belonging to an object. - * - * @param id the id of the object - */ - virtual void PauseObject(int id) const =0; - - /** - * set the sound to looping or non-looping. - * - * @param id the id of the object - * @param loopmode type of looping (no loop, normal, bidirectional) - */ - virtual void SetObjectLoop(int id, unsigned int loopmode) const =0; - - /** - * set the looppoints of a sound - * - * @param id the id of the object - * @param loopstart the startpoint of the loop (in samples) - * @param loopend the endpoint of the loop (in samples) - */ - virtual void SetObjectLoopPoints(int id, unsigned int loopstart, unsigned int loopend) const =0; - - /** - * set the pitch of the sound. - * - * @param id the id of the object - * @param pitch the pitch - */ - virtual void SetObjectPitch(int id, MT_Scalar pitch) const =0; - - /** - * set the gain of the sound. - * - * @param id the id of the object - * @param gain the gain - */ - virtual void SetObjectGain(int id, MT_Scalar gain) const =0; - - /** - * ROLLOFF_FACTOR is per-Source parameter the application can use to increase or decrease - * the range of a source by decreasing or increasing the attenuation, respectively. The - * default value is 1. The implementation is free to optimize for a ROLLOFF_FACTOR value - * of 0, which indicates that the application does not wish any distance attenuation on - * the respective Source. - * - * @param id the id of the object - * @param rolloff a per-source volume scaling factor - */ - virtual void SetObjectRollOffFactor(int id, MT_Scalar rolloff) const =0; - - /** - * min_gain indicates the minimal gain which is always guaranteed for this sound - * - * @param id the id of the object - * @param mingain the minimum gain of the object - */ - virtual void SetObjectMinGain(int id, MT_Scalar mingain) const =0; - - /** - * max_gain indicates the maximal gain which is always guaranteed for this sound - * - * @param id the id of the object - * @param maxgain the maximum gain of the object - */ - virtual void SetObjectMaxGain(int id, MT_Scalar maxgain) const =0; - /** - * set the distance at which the Listener will experience gain. - * G_dB = GAIN - 20*log10(1 + ROLLOFF_FACTOR*(dist-REFERENCE_DISTANCE)/REFERENCE_DISTANCE ); - * - * @param id the id of the object - * @param referencedistance the distance at which the listener will start hearing - */ - virtual void SetObjectReferenceDistance(int id, MT_Scalar referencedistance) const =0; - - /** - * set the position, velocity and orientation of a sound. - * - * @param id the id of the object - * @param position the position of the object - * @param velocity the velocity of the object - * @param orientation the orientation of the object - * @param lisposition the position of the listener - * @param rollofffactor the rollofffactor of the object - */ - virtual void SetObjectTransform(int id, - const MT_Vector3& position, - const MT_Vector3& velocity, - const MT_Matrix3x3& orientation, - const MT_Vector3& lisposition, - const MT_Scalar& rollofffactor) const =0; - - /** - * make a sound 2D - * - * @param id the id of the object - */ - virtual void ObjectIs2D(int id) const =0; - - /** - * tell the device we want cd suppport - */ - virtual void UseCD() const =0; - - /** - * start playback of the cd - * - * @param track the tracknumber to start playback from - */ - virtual void PlayCD(int track) const =0; - - /** - * pause playback of the cd (true == pause, false == resume) - */ - virtual void PauseCD(bool pause) const =0; - - /** - * stop playback of the cd - */ - virtual void StopCD() const =0; - - /** - * set the playbackmode of the cd - * SND_CD_ALL play all tracks - * SND_CD_TRACK play one track - * SND_CD_TRACKLOOP play one track looped - * SND_CD_RANDOM play all tracks in random order - * - * @param playmode playmode - */ - virtual void SetCDPlaymode(int playmode) const =0; - - /** - * set the volume playback of the cd - * - * @param gain the gain - */ - virtual void SetCDGain(MT_Scalar gain) const =0; - - virtual void StartUsingDSP() =0; - virtual float* GetSpectrum() =0; - virtual void StopUsingDSP() =0; - -protected: - - virtual void RevokeSoundObject(SND_SoundObject* pObject)=0; -}; - -#endif //SND_IAUDIODEVICE - diff --git a/intern/SoundSystem/SND_Object.h b/intern/SoundSystem/SND_Object.h deleted file mode 100644 index f23827974e3..00000000000 --- a/intern/SoundSystem/SND_Object.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * SND_Object.h - * - * Abstract sound object - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef __SND_OBJECT_H -#define __SND_OBJECT_H - -#include "GEN_List.h" -#include "MT_Matrix3x3.h" -#include "SoundDefines.h" - -/** - * SND_Object is an interface class for soundobjects, listeners and other - * kinds of sound related thingies. - */ - -class SND_Object : public GEN_Link -{ -public: - SND_Object() {}; - virtual ~SND_Object() {}; -}; - -#endif //__SND_OBJECT_H - diff --git a/intern/SoundSystem/SND_Scene.h b/intern/SoundSystem/SND_Scene.h deleted file mode 100644 index bb3ff932bce..00000000000 --- a/intern/SoundSystem/SND_Scene.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * SND_Scene.h - * - * The scene for sounds. - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifdef WIN32 -#pragma warning (disable:4786) // get rid of stupid stl-visual compiler debug warning -#endif //WIN32 - -#ifndef __SND_SCENE_H -#define __SND_SCENE_H - -#include "SoundDefines.h" -#include "SND_SoundObject.h" -#include "SND_CDObject.h" -#include "SND_SoundListener.h" -#include "SND_WaveSlot.h" - -#include "MT_Vector3.h" -#include "MT_Matrix3x3.h" -#include "STR_String.h" - -#include - - -class SND_Scene -{ - std::set m_soundobjects; - - GEN_List m_activeobjects; - class SND_IAudioDevice* m_audiodevice; - class SND_WaveCache* m_wavecache; - class SND_SoundListener m_listener; - bool m_audio; // to check if audio works - bool m_audioplayback; // to check if audioplayback is wanted - - void UpdateListener(); - void BuildActiveList(MT_Scalar curtime); - void UpdateActiveObects(); - void UpdateCD(); - -public: - SND_Scene(SND_IAudioDevice* adi); - ~SND_Scene(); - - bool IsPlaybackWanted(); - - void AddActiveObject(SND_SoundObject* pObject, MT_Scalar curtime); - void RemoveActiveObject(SND_SoundObject* pObject); - void DeleteObjectWhenFinished(SND_SoundObject* pObject); - - void Proceed(); - - int LoadSample(const STR_String& samplename, - void* memlocation, - int size); - void RemoveAllSamples(); - bool CheckBuffer(SND_SoundObject* pObject); - bool IsSampleLoaded(STR_String& samplename); - - void AddObject(SND_SoundObject* pObject); - bool SetCDObject(SND_CDObject* cdobject); - void DeleteObject(SND_SoundObject* pObject); - void RemoveAllObjects(); - void StopAllObjects(); - int GetObjectStatus(SND_SoundObject* pObject) const; - - void SetListenerTransform(const MT_Vector3& pos, - const MT_Vector3& vel, - const MT_Matrix3x3& mat); - - SND_SoundListener* GetListener(); -}; - -#endif //__SND_SCENE_H - diff --git a/intern/SoundSystem/SND_SoundListener.h b/intern/SoundSystem/SND_SoundListener.h deleted file mode 100644 index 2f6a6e8cddd..00000000000 --- a/intern/SoundSystem/SND_SoundListener.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * SND_SoundListener.h - * - * A SoundListener is for sound what a camera is for vision. - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef __SND_SOUNDLISTENER_H -#define __SND_SOUNDLISTENER_H - -#include "SND_Object.h" - -class SND_SoundListener : public SND_Object -{ -public: - SND_SoundListener(); - virtual ~SND_SoundListener(); - - void SetStateFlag(unsigned int stateflags); - void SetGain(MT_Scalar gain); - void SetPosition(const MT_Vector3& pos); - void SetVelocity(const MT_Vector3& vel); - void SetOrientation(const MT_Matrix3x3& ori); - void SetDopplerFactor(MT_Scalar dopplerfactor); - void SetDopplerVelocity(MT_Scalar dopplervelocity); - void SetScale(MT_Scalar scale); - - void SetModified(bool modified); - bool IsModified() const; - - unsigned int GetStateFlags() const; - MT_Scalar GetGain() const; - MT_Vector3 GetPosition() const; - MT_Vector3 GetVelocity() const; - MT_Matrix3x3 GetOrientation(); - - MT_Scalar GetDopplerFactor() const; - MT_Scalar GetDopplerVelocity() const; - MT_Scalar GetScale() const; - -private: - void* m_listener; - bool m_modified; - - MT_Scalar m_gain; /* overall gain */ - MT_Vector3 m_position; /* position; left/right, up/down, in/out */ - MT_Vector3 m_velocity; /* velocity of the listener */ - MT_Matrix3x3 m_orientation; /* orientation of the listener */ - - MT_Scalar m_dopplerfactor; /* scaling factor for the Doppler (pitch) shift */ - MT_Scalar m_dopplervelocity; /* factor for the reference velocity (for Dopplereffect) */ - MT_Scalar m_scale; -}; - -#endif //__SND_SOUNDLISTENER_H - diff --git a/intern/SoundSystem/SND_SoundObject.h b/intern/SoundSystem/SND_SoundObject.h deleted file mode 100644 index 7bd43fb4e66..00000000000 --- a/intern/SoundSystem/SND_SoundObject.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * SND_SoundObject.h - * - * Implementation of the abstract sound object - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef __SND_SOUNDOBJECT_H -#define __SND_SOUNDOBJECT_H - -#include "SND_Object.h" -#include "STR_String.h" - -/** - * SND_SoundObject is a class for api independent sounddata storage conected to an actuator - */ - -class SND_SoundObject : public SND_Object -{ -private: - STR_String m_samplename; /* name of the sample */ - STR_String m_objectname; /* name of the object */ - unsigned int m_buffer; - - bool m_active; /* is the object active or not? */ - int m_id; - MT_Scalar m_lifespan; /* the lifespan of the sound seconds */ - MT_Scalar m_timestamp; - - MT_Scalar m_length; /* length of the sample in seconds */ - - MT_Scalar m_gain; /* the gain of the object */ - MT_Scalar m_rollofffactor; /* the scaling factor to increase or decrease the range - of a source by decreasing or increasing the - attenuation, respectively */ - MT_Scalar m_referencedistance;/* the distance at which the listener will experience - gain */ - MT_Scalar m_mingain; /* indicates the minimal gain which is always guaranteed - for this source */ - MT_Scalar m_maxgain; /* indicates the maximal gain which is always guaranteed - for this source */ - - MT_Scalar m_pitch; /* the pitch of the object */ - MT_Vector3 m_position; /* position; left/right, up/down, in/out */ - MT_Vector3 m_velocity; /* velocity of the object */ - MT_Matrix3x3 m_orientation; /* orientation of the object */ - unsigned int m_loopmode; /* loop normal or bidirectional? */ - unsigned int m_loopstart; /* start of looppoint in samples! */ - unsigned int m_loopend; /* end of looppoint in samples! */ - bool m_is3d; /* is the object 3D or 2D? */ - int m_playstate; /* flag for current state of object */ - bool m_modified; - unsigned int m_running; - bool m_highpriority; /* may the sound be ditched when we run out of voices? */ - -public: - - SND_SoundObject(); - ~SND_SoundObject(); - - void SetBuffer(unsigned int buffer); - void SetActive(bool active); - - void StartSound(); - void StopSound(); - void PauseSound(); - void DeleteWhenFinished(); - - void SetObjectName(STR_String objectname); - void SetSampleName(STR_String samplename); - void SetLength(MT_Scalar length); - - void SetPitch(MT_Scalar pitch); - void SetGain(MT_Scalar gain); - void SetMinGain(MT_Scalar mingain); - void SetMaxGain(MT_Scalar maxgain); - void SetRollOffFactor(MT_Scalar rollofffactor); - void SetReferenceDistance(MT_Scalar distance); - void SetPosition(const MT_Vector3& pos); - void SetVelocity(const MT_Vector3& vel); - void SetOrientation(const MT_Matrix3x3& orient); - void SetLoopMode(unsigned int loopmode); - void SetLoopStart(unsigned int loopstart); - void SetLoopEnd(unsigned int loopend); - void Set3D(bool threedee); - void SetPlaystate(int playstate); - void SetHighPriority(bool priority); - - void SetId(int id); - void SetLifeSpan(); - void SetTimeStamp(MT_Scalar timestamp); - - void SetModified(bool modified); - - bool IsLifeSpanOver(MT_Scalar curtime) const; - bool IsActive() const; - bool IsModified() const; - bool IsHighPriority() const; - - void InitRunning(); - bool IsRunning() const; - void AddRunning(); - - int GetId() const; - MT_Scalar GetLifeSpan() const; - MT_Scalar GetTimestamp() const; - - unsigned int GetBuffer(); - const STR_String& GetSampleName(); - const STR_String& GetObjectName(); - - MT_Scalar GetLength() const; - MT_Scalar GetGain() const; - MT_Scalar GetPitch() const; - - MT_Scalar GetMinGain() const; - MT_Scalar GetMaxGain() const; - MT_Scalar GetRollOffFactor() const; - MT_Scalar GetReferenceDistance() const; - - MT_Vector3 GetPosition() const; - MT_Vector3 GetVelocity() const; - MT_Matrix3x3 GetOrientation() const; - unsigned int GetLoopMode() const; - unsigned int GetLoopStart() const; - unsigned int GetLoopEnd() const; - bool Is3D() const; - int GetPlaystate() const; - -}; - -#endif //__SND_SOUNDOBJECT_H - diff --git a/intern/SoundSystem/SND_Utils.h b/intern/SoundSystem/SND_Utils.h deleted file mode 100644 index 82b7c69a595..00000000000 --- a/intern/SoundSystem/SND_Utils.h +++ /dev/null @@ -1,111 +0,0 @@ -/** - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ -#ifndef SND_UTILS_H -#define SND_UTILS_H - -#include "SND_WaveSlot.h" - -#ifdef __cplusplus -extern "C" -{ -#endif - -typedef struct -{ - unsigned char riff[4]; - signed int size; - unsigned char type[4]; -} WavFileHeader; - -typedef struct -{ - unsigned short format; - unsigned short numberofchannels; - unsigned int samplerate; - unsigned int bytespersec; - unsigned short blockalignment; - unsigned short bitrate; -} WavFmtHeader; - -typedef struct -{ - unsigned short size; - unsigned short samplesperblock; -} WavFmtExHeader; - -typedef struct -{ - unsigned int Manufacturer; - unsigned int Product; - unsigned int SamplePeriod; - unsigned int Note; - unsigned int FineTune; - unsigned int SMPTEFormat; - unsigned int SMPTEOffest; - unsigned int loops; - unsigned int SamplerData; - struct - { - unsigned int Identifier; - unsigned int Type; - unsigned int Start; - unsigned int End; - unsigned int Fraction; - unsigned int Count; - } Loop[1]; -} WavSampleHeader; - -typedef struct -{ - unsigned char id[4]; - unsigned int size; -} WavChunkHeader; - -/** - * loads a sample and returns a pointer - */ -extern void* SND_LoadSample(char *filename); - -extern bool SND_IsSampleValid(const STR_String& name, void* memlocation); -extern unsigned int SND_GetSampleFormat(void* sample); -extern unsigned int SND_GetNumberOfChannels(void* sample); -extern unsigned int SND_GetSampleRate(void* sample); -extern unsigned int SND_GetBitRate(void* sample); -extern unsigned int SND_GetNumberOfSamples(void* sample, unsigned int sample_length); -extern unsigned int SND_GetHeaderSize(void* sample, unsigned int sample_length); -extern unsigned int SND_GetExtraChunk(void* sample); - -extern void SND_GetSampleInfo(signed char* sample, SND_WaveSlot* waveslot); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/intern/SoundSystem/SND_WaveCache.h b/intern/SoundSystem/SND_WaveCache.h deleted file mode 100644 index 2c457797768..00000000000 --- a/intern/SoundSystem/SND_WaveCache.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * SND_WaveCache.h - * - * abstract wavecache, a way to organize samples - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifdef WIN32 -#pragma warning (disable:4786) // get rid of stupid stl-visual compiler debug warning -#endif //WIN32 - -#ifndef __SND_WAVECACHE_H -#define __SND_WAVECACHE_H - -#include "SND_WaveSlot.h" -#include "SoundDefines.h" -#include "SND_SoundObject.h" -#include - -class SND_WaveCache -{ -public: - SND_WaveCache(); - virtual ~SND_WaveCache(); - - SND_WaveSlot* GetWaveSlot(const STR_String& samplename); - - void RemoveAllSamples(); - void RemoveSample(const STR_String& samplename, int buffer); - -private: - std::map m_samplecache; - - SND_WaveSlot* m_bufferList[NUM_BUFFERS]; - - void FreeSamples(); -}; - -#endif //__SND_WAVECACHE_H - diff --git a/intern/SoundSystem/SND_WaveSlot.h b/intern/SoundSystem/SND_WaveSlot.h deleted file mode 100644 index 75cddfa36d8..00000000000 --- a/intern/SoundSystem/SND_WaveSlot.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * SND_WaveSlot.cpp - * - * class for storing sample related information - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef __SND_WAVESLOT_H -#define __SND_WAVESLOT_H - -#include "STR_String.h" - -class SND_WaveSlot -{ - STR_String m_samplename; - bool m_loaded; - void* m_data; - unsigned int m_buffer; - unsigned int m_sampleformat; - unsigned int m_numberofchannels; - unsigned int m_samplerate; - unsigned int m_bitrate; - unsigned int m_numberofsamples; - unsigned int m_filesize; - -public: - - SND_WaveSlot(): m_loaded(false), - m_data(NULL), - m_buffer(0), - m_sampleformat(0), - m_numberofchannels(0), - m_samplerate(0), - m_bitrate(0), - m_numberofsamples(0), - m_filesize(0) - {}; - ~SND_WaveSlot(); - - void SetSampleName(STR_String samplename); - void SetLoaded(bool loaded); - void SetData(void* data); - void SetBuffer(unsigned int buffer); - void SetSampleFormat(unsigned int sampleformat); - void SetNumberOfChannels(unsigned int numberofchannels); - void SetSampleRate(unsigned int samplerate); - void SetBitRate(unsigned int bitrate); - void SetNumberOfSamples(unsigned int numberofsamples); - void SetFileSize(unsigned int filesize); - - - const STR_String& GetSampleName(); - bool IsLoaded() const; - void* GetData(); - unsigned int GetBuffer() const; - unsigned int GetSampleFormat() const; - unsigned int GetNumberOfChannels() const; - unsigned int GetSampleRate() const; - unsigned int GetBitRate() const; - unsigned int GetNumberOfSamples() const; - unsigned int GetFileSize() const; - -}; - -#endif //__SND_WAVESLOT_H - diff --git a/intern/SoundSystem/SND_test/Makefile b/intern/SoundSystem/SND_test/Makefile deleted file mode 100644 index 279eeace0d8..00000000000 --- a/intern/SoundSystem/SND_test/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -# -# $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. -# -# ***** END GPL LICENSE BLOCK ***** -# -# - -LIBNAME = soundsystem -DIR = $(OCGDIR)/intern/SoundSystem -ALLTARGETS = $(OBJS) $(DIR)/$(DEBUG_DIR)SoundSystem - -include nan_compile.mk - -CPPFLAGS += $(NAN_LEVEL_1_WARNINGS) - -CPPFLAGS += -I$(NAN_MOTO)/include -CPPFLAGS += -I.. -I../SND_BlenderWaveCache -I../SND_OpenAL - -TESTLIB = $(OCGDIR)/gameengine/OpenALSoundSystem/$(DEBUG_DIR)libOpenALSoundSystem.a -TESTLIB += $(OCGDIR)/gameengine/BlenderWaveCache/$(DEBUG_DIR)libBlenderWaveCache.a -TESTLIB += $(OCGDIR)/intern/SoundSystem/$(DEBUG_DIR)libsoundsystem.a -TESTLIB += $(NAN_OPENAL)/lib/libopenal.a - -$(DIR)/$(DEBUG_DIR)SoundSystem: $(OBJS) $(TESTLIB) - $(CC) $(LDFLAGS) -o $@ $(OBJS) $(TESTLIB) -lm -pthread -ldl -lstdc++ diff --git a/intern/SoundSystem/SND_test/SND_test.c b/intern/SoundSystem/SND_test/SND_test.c deleted file mode 100644 index 0d19dc2e131..00000000000 --- a/intern/SoundSystem/SND_test/SND_test.c +++ /dev/null @@ -1,154 +0,0 @@ -/* SND_test.c nov 2000 -* -* testfile for the SND module -* -* janco verduin -* -* $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** -*/ - -#include "SND_C-api.h" -#include "BlenderWaveCacheCApi.h" -#include "OpenALC-Api.h" -#include -#include - -#ifdef HAVE_CONFIG_H -#include -#endif - -#if defined(WIN32) -#include -#else -#include -#endif -#include - -static int buf[3]; - -float oPos[3]={3.0, 0.0,-1.0}; -float oVel[3]={0.0, 0.0, 1.0}; -float oOri[6]={0.0, 0.0, 1.0, 0.0, 1.0, 0.0}; - -void* ReadFile(char *filename) -{ - int file, filelen; - void *data = NULL; - -#if defined(WIN32) - file = open(filename, O_BINARY|O_RDONLY); -#else - file = open(filename, 0|O_RDONLY); -#endif - - if (file == -1) { - printf("can't open file.\n"); - printf("press q for quit.\n"); - - } - else { - filelen = lseek(file, 0, SEEK_END); - lseek(file, 0, SEEK_SET); - - if (filelen != 0){ - data = malloc(filelen); - if (read(file, data, filelen) != filelen) { - free(data); - data = NULL; - } - } - close(file); - - } - return (data); -} - -int main(int argc, char* argv[]) -{ - int ch; - char* samplename = NULL; - void* sampleinmemory = NULL; - SND_CacheHandle wavecache = NULL; - SND_SceneHandle scene = NULL; - SND_ObjectHandle object = NULL; - - wavecache = SND_GetWaveCache(); - scene = SND_CreateOpenALScene(wavecache); - - samplename = "2.wav"; - sampleinmemory = ReadFile(samplename); - - if (sampleinmemory) { - - object = SND_CreateObject(); - SND_AddMemoryLocation(samplename, sampleinmemory); - SND_SetSampleName(object, samplename); - SND_AddObject(scene, object); - printf("go your gang...\n"); - printf("1: play\n"); - printf("2: stop\n"); - printf("q: quit\n"); - } - do - { - ch = getchar(); - ch = toupper(ch); - switch (ch) - { - case '1': - { - SND_SetPitch(object, 1.0); - SND_SetGain(object, 1.0); - SND_StartSound(object); - break; - } - case '2': - { - SND_StopSound(object); - break; - } - default: - break; - } - - SND_Proceed(scene); - - } while (ch != 'Q'); - - if (object) { - - SND_RemoveObject(scene, object); - SND_DeleteObject(object); - } - - SND_DeleteScene(scene); - SND_DeleteCache(); - - return 0; - -} diff --git a/intern/SoundSystem/SoundDefines.h b/intern/SoundSystem/SoundDefines.h deleted file mode 100644 index 5238507c866..00000000000 --- a/intern/SoundSystem/SoundDefines.h +++ /dev/null @@ -1,107 +0,0 @@ -/* - * SoundDefines.h - * - * this is where all kinds of defines are stored - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef __SOUNDDEFINES_H -#define __SOUNDDEFINES_H - -/* the types of devices */ -enum -{ - snd_e_dummydevice = 0, - snd_e_openaldevice -}; - -/* general stuff */ -#define NUM_BUFFERS 128 -#define NUM_SOURCES 24 /* 24 is the limit for openal on windows, was 16 in 2.47 and previous */ - -/* openal related stuff */ -#define AL_LOOPING 0x1007 - -/* activelist defines */ -enum -{ - SND_REMOVE_ACTIVE_OBJECT = 0, - SND_ADD_ACTIVE_OBJECT, - SND_DO_NOTHING -}; - -/* playstate flags */ -enum -{ - SND_UNKNOWN = -1, - SND_INITIAL, - SND_MUST_PLAY, - SND_PLAYING, - SND_MUST_STOP, - SND_STOPPED, - SND_MUST_PAUSE, - SND_PAUSED, - SND_MUST_RESUME, - SND_MUST_STOP_WHEN_FINISHED, - SND_MUST_BE_DELETED -}; - -/* loopmodes */ -enum -{ - SND_LOOP_OFF = 0, - SND_LOOP_NORMAL, - SND_LOOP_BIDIRECTIONAL -}; - - -/* cd playstate flags */ -enum -{ - SND_CD_ALL = 0, - SND_CD_TRACK, - SND_CD_TRACKLOOP -}; - -/* sample types */ -enum -{ - SND_WAVE_FORMAT_UNKNOWN = 0, - SND_WAVE_FORMAT_PCM, - SND_WAVE_FORMAT_ADPCM, - SND_WAVE_FORMAT_ALAW = 6, - SND_WAVE_FORMAT_MULAW, - SND_WAVE_FORMAT_DIALOGIC_OKI_ADPCM = 17, - SND_WAVE_FORMAT_CONTROL_RES_VQLPC = 34, - SND_WAVE_FORMAT_GSM_610 = 49, - SND_WAVE_FORMAT_MPEG3 = 85 -}; - -#endif //__SOUNDDEFINES_H - diff --git a/intern/SoundSystem/dummy/Makefile b/intern/SoundSystem/dummy/Makefile deleted file mode 100644 index 829135dde98..00000000000 --- a/intern/SoundSystem/dummy/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -# -# $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. -# -# ***** END GPL LICENSE BLOCK ***** -# -# - -LIBNAME = DummySoundSystem -DIR = $(OCGDIR)/intern/$(LIBNAME) - -include nan_compile.mk - -CCFLAGS += $(LEVEL_1_CPP_WARNINGS) - -CPPFLAGS += -I$(NAN_STRING)/include -CPPFLAGS += -I$(NAN_MOTO)/include -CPPFLAGS += -I../intern -CPPFLAGS += -I.. -CPPFLAGS += -I. diff --git a/intern/SoundSystem/dummy/SND_DummyDevice.cpp b/intern/SoundSystem/dummy/SND_DummyDevice.cpp deleted file mode 100644 index 672c73e9c52..00000000000 --- a/intern/SoundSystem/dummy/SND_DummyDevice.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - * SND_DummyDevice derived from SND_IAudioDevice - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifdef WIN32 -#pragma warning (disable:4786) // get rid of stupid stl-visual compiler debug warning -#endif //WIN32 - -#include "SND_DummyDevice.h" - -SND_DummyDevice::SND_DummyDevice() -{ -} - -SND_DummyDevice::~SND_DummyDevice() -{ -#ifdef ONTKEVER - printf("SND_DummyDevice destructor"); -#endif -} - - diff --git a/intern/SoundSystem/dummy/SND_DummyDevice.h b/intern/SoundSystem/dummy/SND_DummyDevice.h deleted file mode 100644 index 988f731d1bf..00000000000 --- a/intern/SoundSystem/dummy/SND_DummyDevice.h +++ /dev/null @@ -1,93 +0,0 @@ -/** - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ -#ifndef SND_DUMMYDEVICE -#define SND_DUMMYDEVICE - -#include "SND_AudioDevice.h" - -class SND_DummyDevice : public SND_AudioDevice -{ -public: - SND_DummyDevice(); - ~SND_DummyDevice(); - - bool Init() { return false; } - - SND_WaveSlot* LoadSample(const STR_String& samplename, - void* memlocation, - int size) { return NULL; } - - void InitListener() {}; - void SetListenerGain(float gain) const {}; - void SetDopplerVelocity(MT_Scalar dopplervelocity) const {}; - void SetDopplerFactor(MT_Scalar dopplerfactor) const {}; - void SetListenerRollOffFactor(MT_Scalar rollofffactor) const {}; - - void MakeCurrent() const {}; - - void NextFrame() const {}; - - void SetObjectBuffer(int id, unsigned int buffer) {}; - - int GetPlayState(int id) { return SND_UNKNOWN; } - void PlayObject(int id) {}; - void StopObject(int id) const {}; - void StopAllObjects() {}; - void PauseObject(int id) const {}; - - void SetObjectLoop(int id, unsigned int loopmode) const {}; - void SetObjectLoopPoints(int id, unsigned int loopstart, unsigned int loopend) const {}; - void SetObjectPitch(int id, MT_Scalar pitch) const {}; - void SetObjectGain(int id, MT_Scalar gain) const {}; - void SetObjectMinGain(int id, MT_Scalar mingain) const {}; - void SetObjectMaxGain(int id, MT_Scalar maxgain) const {}; - void SetObjectRollOffFactor(int id, MT_Scalar rolloff) const {}; - void SetObjectReferenceDistance(int id, MT_Scalar distance) const {}; - - void SetObjectTransform(int id, - const MT_Vector3& position, - const MT_Vector3& velocity, - const MT_Matrix3x3& orientation, - const MT_Vector3& lisposition, - const MT_Scalar& rollofffactor) const {}; - void ObjectIs2D(int id) const {}; - - void PlayCD(int track) const {}; - void PauseCD(bool pause) const {}; - void StopCD() const {}; - void SetCDPlaymode(int playmode) const {}; - void SetCDGain(MT_Scalar gain) const {}; - - void StartUsingDSP() {}; - float* GetSpectrum() { return NULL; } - void StopUsingDSP() {}; -}; - -#endif //SND_DUMMYDEVICE - diff --git a/intern/SoundSystem/intern/Makefile b/intern/SoundSystem/intern/Makefile deleted file mode 100644 index 7684b6b0bca..00000000000 --- a/intern/SoundSystem/intern/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# -# $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. -# -# ***** END GPL LICENSE BLOCK ***** -# -# - -LIBNAME = SoundSystem -DIR = $(OCGDIR)/intern/SoundSystem - -include nan_compile.mk - -CCFLAGS += $(LEVEL_1_CPP_WARNINGS) - -CPPFLAGS += -I$(NAN_STRING)/include -CPPFLAGS += -I$(NAN_MOTO)/include -CPPFLAGS += -I../../../source/blender/include -CPPFLAGS += -I../dummy -CPPFLAGS += -I../openal -CPPFLAGS += -I.. -CPPFLAGS += -I. diff --git a/intern/SoundSystem/intern/SND_AudioDevice.cpp b/intern/SoundSystem/intern/SND_AudioDevice.cpp deleted file mode 100644 index 4a5c0e2c498..00000000000 --- a/intern/SoundSystem/intern/SND_AudioDevice.cpp +++ /dev/null @@ -1,242 +0,0 @@ -/** - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include "SND_AudioDevice.h" -#include "SND_SoundObject.h" - -#ifdef WIN32 -// This warning tells us about truncation of __long__ stl-generated names. -// It can occasionally cause DevStudio to have internal compiler warnings. -#pragma warning( disable : 4786 ) -#endif - - -SND_AudioDevice::SND_AudioDevice() -{ - m_wavecache = NULL; - m_audio = false; - - for (int i = 0; i < NUM_SOURCES; i++) - { - m_idObjectArray[i] = new SND_IdObject(); - m_idObjectArray[i]->SetId(i); - m_idObjectArray[i]->SetSoundObject(NULL); - m_idObjectList.addTail(m_idObjectArray[i]); - } -} - - - -SND_AudioDevice::~SND_AudioDevice() -{ - for (int i = 0; i < NUM_SOURCES; i++) - { - delete m_idObjectArray[i]; - m_idObjectArray[i] = NULL; - } - - if (m_wavecache) - { - delete m_wavecache; - m_wavecache = NULL; - } -} - - - -bool SND_AudioDevice::IsInitialized() -{ - return m_audio; -} - - - -SND_WaveCache* SND_AudioDevice::GetWaveCache() const -{ - return m_wavecache; -} - - - -/* seeks an unused id and returns it */ -bool SND_AudioDevice::GetNewId(SND_SoundObject* pObject) -{ -#ifdef ONTKEVER - printf("SND_AudioDevice::GetNewId\n"); -#endif - - bool result = false; - - // first, get the oldest (the first) idobject - SND_IdObject* pIdObject = (SND_IdObject*)m_idObjectList.getHead(); - - if (pIdObject->isTail()) - { - } - else - { - // find the first id object which doesn't have a high priority soundobject - bool ThisSoundMustStay = false; - bool OutOfIds = false; - - do - { - // if no soundobject present, it's seat may be taken - if (pIdObject->GetSoundObject()) - { - // and also if it ain't highprio - if (pIdObject->GetSoundObject()->IsHighPriority()) - { - ThisSoundMustStay = true; - pIdObject = (SND_IdObject*)pIdObject->getNext(); - - // if the last one is a priority sound too, then there are no id's left - // and we won't add any new sounds - if (pIdObject->isTail()) - OutOfIds = true; - } - else - { - ThisSoundMustStay = false; - } - } - else - { - ThisSoundMustStay = false; - } - - } while (ThisSoundMustStay && !OutOfIds); - - if (!OutOfIds) - { - SND_SoundObject* oldobject = pIdObject->GetSoundObject(); - - // revoke the old object if present - if (oldobject) - { -#ifdef ONTKEVER - printf("oldobject: %x\n", oldobject); -#endif - RevokeSoundObject(oldobject); - } - - // set the new soundobject into the idobject - pIdObject->SetSoundObject(pObject); - - // set the id into the soundobject - int id = pIdObject->GetId(); - pObject->SetId(id); - - // connect the new id to the buffer the sample is stored in - SetObjectBuffer(id, pObject->GetBuffer()); - - // remove the idobject from the list and add it in the back again - pIdObject->remove(); - m_idObjectList.addTail(pIdObject); - - result = true; - } - } - - return result; -} - - - -void SND_AudioDevice::ClearId(SND_SoundObject* pObject) -{ -#ifdef ONTKEVER - printf("SND_AudioDevice::ClearId\n"); -#endif - - if (pObject) - { - int id = pObject->GetId(); - - if (id != -1) - { - // lets get the idobject belonging to the soundobject - SND_IdObject* pIdObject = m_idObjectArray[id]; - SND_SoundObject* oldobject = pIdObject->GetSoundObject(); - - if (oldobject) - { - RevokeSoundObject(oldobject); - - // clear the idobject from the soundobject - pIdObject->SetSoundObject(NULL); - } - - // remove the idobject and place it in front - pIdObject->remove(); - m_idObjectList.addHead(pIdObject); - } - } -} - - - -void SND_AudioDevice::RevokeSoundObject(SND_SoundObject* pObject) -{ -#ifdef ONTKEVER - printf("SND_AudioDevice::RevokeSoundObject\n"); -#endif - - // stop the soundobject - int id = pObject->GetId(); - - if (id >= 0 && id < NUM_SOURCES) - { - StopObject(id); - - // remove the object from the 'activelist' - pObject->SetActive(false); - -#ifdef ONTKEVER - printf("pObject->remove();\n"); -#endif - } - - // make sure its id is invalid - pObject->SetId(-1); -} - -/* -void SND_AudioDevice::RemoveSample(const char* filename) -{ - if (m_wavecache) - m_wavecache->RemoveSample(filename); -} -*/ - -void SND_AudioDevice::RemoveAllSamples() -{ - if (m_wavecache) - m_wavecache->RemoveAllSamples(); -} - diff --git a/intern/SoundSystem/intern/SND_AudioDevice.h b/intern/SoundSystem/intern/SND_AudioDevice.h deleted file mode 100644 index 54e8feea90e..00000000000 --- a/intern/SoundSystem/intern/SND_AudioDevice.h +++ /dev/null @@ -1,115 +0,0 @@ -/** - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ -#ifndef SND_AUDIODEVICE -#define SND_AUDIODEVICE - -#include "SND_IAudioDevice.h" -#include "SoundDefines.h" -#include "SND_IdObject.h" - -class SND_AudioDevice : public SND_IAudioDevice -{ -public: - SND_AudioDevice(); - virtual ~SND_AudioDevice(); - - virtual bool IsInitialized(); - - SND_WaveCache* GetWaveCache() const; - - bool GetNewId(SND_SoundObject* pObject); - void ClearId(SND_SoundObject* pObject); - - void UseCD() const {}; - - /* to be implemented in derived class - - virtual SND_WaveSlot* LoadSample(const STR_String& samplename, - void* memlocation, - int size) =0; - */ -// void RemoveSample(const char* filename); - void RemoveAllSamples(); - - /* to be implemented in derived class - - virtual void InitListener()=0; - virtual void SetListenerGain(float gain) const =0; - virtual void SetDopplerVelocity(MT_Scalar dopplervelocity) const =0; - virtual void SetDopplerFactor(MT_Scalar dopplerfactor) const =0; - virtual void SetListenerRollOffFactor(MT_Scalar rollofffactor) const =0; - - virtual void MakeCurrent() const =0; - - virtual void UpdateDevice() const =0; - - virtual void SetObjectBuffer(int id, unsigned int buffer)=0; - virtual int GetPlayState(int id)=0; - virtual void PlayObject(int id)=0; - virtual void StopObject(int id) const =0; - virtual void StopAllObjects()=0; - virtual void PauseObject(int id) const =0; - - virtual void SetObjectLoop(int id, bool loop) const =0; - virtual void SetObjectLoopPoints(int id, unsigned int loopstart, unsigned int loopend) const =0; - virtual void SetObjectPitch(int id, MT_Scalar pitch) const =0; - virtual void SetObjectGain(int id, MT_Scalar gain) const =0; - virtual void SetObjectRollOffFactor(int id, MT_Scalar rolloff) const =0; - virtual void SetObjectMinGain(int id, MT_Scalar mingain) const =0; - virtual void SetObjectMaxGain(int id, MT_Scalar maxgain) const =0; - virtual void SetObjectReferenceDistance(int id, MT_Scalar referencedistance) const =0; - - virtual void SetObjectTransform(int id, - const MT_Vector3& position, - const MT_Vector3& velocity, - const MT_Matrix3x3& orientation, - const MT_Vector3& lisposition, - const MT_Scalar& rollofffactor) const =0; - virtual void ObjectIs2D(int id) const =0; - - virtual void PlayCD(int track) const =0; - virtual void PauseCD(bool pause) const =0; - virtual void StopCD() const =0; - virtual void SetCDPlaymode(int playmode) const =0; - virtual void SetCDGain(MT_Scalar gain) const =0; - virtual float* GetSpectrum() =0; - */ - -protected: - bool m_audio; - GEN_List m_idObjectList; - SND_IdObject* m_idObjectArray[NUM_SOURCES]; - SND_WaveCache* m_wavecache; - -private: - void RevokeSoundObject(SND_SoundObject* pObject); -}; - -#endif //SND_AUDIODEVICE - diff --git a/intern/SoundSystem/intern/SND_C-api.cpp b/intern/SoundSystem/intern/SND_C-api.cpp deleted file mode 100644 index 09846269dcc..00000000000 --- a/intern/SoundSystem/intern/SND_C-api.cpp +++ /dev/null @@ -1,392 +0,0 @@ -/* - * SND_C-Api.cpp - * - * C Api for soundmodule - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "SND_C-api.h" -#include "SND_DeviceManager.h" -#include "SND_Scene.h" - -#ifdef WIN32 -#pragma warning (disable:4786) // get rid of stupid stl-visual compiler debug warning -#endif //WIN32 - - - -void SND_SetDeviceType(int device_type) -{ - SND_DeviceManager::SetDeviceType(device_type); -} - - - -SND_AudioDeviceInterfaceHandle SND_GetAudioDevice() -{ - SND_IAudioDevice* audiodevice = NULL; - - SND_DeviceManager::Subscribe(); - audiodevice = SND_DeviceManager::Instance(); - - if (!audiodevice->IsInitialized()) - { - SND_DeviceManager::SetDeviceType(snd_e_dummydevice); - audiodevice = SND_DeviceManager::Instance(); - } - - return (SND_AudioDeviceInterfaceHandle)audiodevice; -} - - - -void SND_ReleaseDevice() -{ - SND_DeviceManager::Unsubscribe(); -} - - - -int SND_IsPlaybackWanted(SND_SceneHandle scene) -{ - assert(scene); - bool result = ((SND_Scene*)scene)->IsPlaybackWanted(); - - return (int)result; -} - - - -// create a scene -SND_SceneHandle SND_CreateScene(SND_AudioDeviceInterfaceHandle audiodevice) -{ - // initialize sound scene and object - SND_Scene* scene = new SND_Scene((SND_IAudioDevice*)audiodevice); - - return (SND_SceneHandle)scene; -} - - - -void SND_DeleteScene(SND_SceneHandle scene) -{ - assert(scene); - delete (SND_Scene*)scene; -} - - - -int SND_AddSample(SND_SceneHandle scene, - const char* filename, - void* memlocation, - int size) -{ - assert(scene); - assert(memlocation); - int buffer = ((SND_Scene*)scene)->LoadSample(filename, memlocation, size); - - return buffer; -} - - - -void SND_RemoveAllSamples(SND_SceneHandle scene) -{ - assert(scene); - ((SND_Scene*)scene)->RemoveAllSamples(); -} - - - -int SND_CheckBuffer(SND_SceneHandle scene, SND_ObjectHandle object) -{ - assert(scene); - assert(object); - int result = (int)((SND_Scene*)scene)->CheckBuffer((SND_SoundObject*)object); - - return result; -} - - - -void SND_AddSound(SND_SceneHandle scene, SND_ObjectHandle object) -{ - assert(scene); - assert(object); - ((SND_Scene*)scene)->AddObject((SND_SoundObject *)object); -} - - - -void SND_RemoveSound(SND_SceneHandle scene, SND_ObjectHandle object) -{ - assert(scene); - assert(object); - ((SND_Scene*)scene)->DeleteObject((SND_SoundObject *)object); -} - - - -void SND_RemoveAllSounds(SND_SceneHandle scene) -{ - assert(scene); - ((SND_Scene*)scene)->RemoveAllObjects(); -} - - - -void SND_StopAllSounds(SND_SceneHandle scene) -{ - assert(scene); - ((SND_Scene*)scene)->StopAllObjects(); -} - - - -void SND_Proceed(SND_AudioDeviceInterfaceHandle audiodevice, SND_SceneHandle scene) -{ - assert(scene); - ((SND_Scene*)scene)->Proceed(); - ((SND_IAudioDevice*)audiodevice)->NextFrame(); -} - - - -SND_ListenerHandle SND_GetListener(SND_SceneHandle scene) -{ - assert(scene); - return (SND_ListenerHandle)((SND_Scene*)scene)->GetListener(); -} - - - -void SND_SetListenerGain(SND_SceneHandle scene, double gain) -{ - assert(scene); - SND_SoundListener* listener = ((SND_Scene*)scene)->GetListener(); - listener->SetGain((MT_Scalar)gain); -} - - - -void SND_SetDopplerFactor(SND_SceneHandle scene, double dopplerfactor) -{ - assert(scene); - SND_SoundListener* listener = ((SND_Scene*)scene)->GetListener(); - listener->SetDopplerFactor(dopplerfactor); -} - - - -void SND_SetDopplerVelocity(SND_SceneHandle scene, double dopplervelocity) -{ - assert(scene); - SND_SoundListener* listener = ((SND_Scene*)scene)->GetListener(); - listener->SetDopplerVelocity(dopplervelocity); -} - - - -// Object instantiation -SND_ObjectHandle SND_CreateSound() -{ - return (SND_ObjectHandle)new SND_SoundObject(); -} - - - -void SND_DeleteSound(SND_ObjectHandle object) -{ - assert(object); - delete (SND_SoundObject*)object; -} - - - -// Object control -void SND_StartSound(SND_SceneHandle scene, SND_ObjectHandle object) -{ - assert(scene); - assert(object); - ((SND_Scene*)scene)->AddActiveObject((SND_SoundObject*)object, 0); -} - - - -void SND_StopSound(SND_SceneHandle scene, SND_ObjectHandle object) -{ - assert(scene); - assert(object); - ((SND_Scene*)scene)->RemoveActiveObject((SND_SoundObject*)object); -} - - - -void SND_PauseSound(SND_SceneHandle scene, SND_ObjectHandle object) -{ - assert(scene); - assert(object); - ((SND_Scene*)scene)->RemoveActiveObject((SND_SoundObject*)object); -} - - - -void SND_SetSampleName(SND_ObjectHandle object, char* samplename) -{ - assert(object); - STR_String name = samplename; - ((SND_SoundObject*)object)->SetSampleName(name); -} - - - -void SND_SetGain(SND_ObjectHandle object, double gain) -{ - assert(object); - ((SND_SoundObject*)object)->SetGain(gain); -} - - - -void SND_SetMinimumGain(SND_ObjectHandle object, double minimumgain) -{ - assert(object); - ((SND_SoundObject*)object)->SetMinGain(minimumgain); -} - - - -void SND_SetMaximumGain(SND_ObjectHandle object, double maximumgain) -{ - assert(object); - ((SND_SoundObject*)object)->SetMaxGain(maximumgain); -} - - - -void SND_SetRollOffFactor(SND_ObjectHandle object, double rollofffactor) -{ - assert(object); - ((SND_SoundObject*)object)->SetRollOffFactor(rollofffactor); -} - - - -void SND_SetReferenceDistance(SND_ObjectHandle object, double referencedistance) -{ - assert(object); - ((SND_SoundObject*)object)->SetReferenceDistance(referencedistance); -} - - - -void SND_SetPitch(SND_ObjectHandle object, double pitch) -{ - assert(object); - ((SND_SoundObject*)object)->SetPitch(pitch); -} - - - -void SND_SetPosition(SND_ObjectHandle object, double* position) -{ - assert(object); - ((SND_SoundObject*)object)->SetPosition(position); -} - - - -void SND_SetVelocity(SND_ObjectHandle object, double* velocity) -{ - assert(object); - ((SND_SoundObject*)object)->SetVelocity(velocity); -} - - - -void SND_SetOrientation(SND_ObjectHandle object, double* orientation) -{ - assert(object); - ((SND_SoundObject*)object)->SetOrientation(orientation); -} - - - -void SND_SetLoopMode(SND_ObjectHandle object, int loopmode) -{ - assert(object); - ((SND_SoundObject*)object)->SetLoopMode(loopmode); -} - - - -void SND_SetLoopPoints(SND_ObjectHandle object, unsigned int loopstart, unsigned int loopend) -{ - assert(object); - ((SND_SoundObject*)object)->SetLoopStart(loopstart); - ((SND_SoundObject*)object)->SetLoopEnd(loopend); -} - - - -float SND_GetGain(SND_ObjectHandle object) -{ - assert(object); - MT_Scalar gain = ((SND_SoundObject*)object)->GetGain(); - return (float) gain; -} - - - -float SND_GetPitch(SND_ObjectHandle object) -{ - assert(object); - MT_Scalar pitch = ((SND_SoundObject*)object)->GetPitch(); - return (float) pitch; -} - - - -int SND_GetLoopMode(SND_ObjectHandle object) -{ - assert(object); - return ((SND_SoundObject*)object)->GetLoopMode(); -} - - - -int SND_GetPlaystate(SND_ObjectHandle object) -{ - assert(object); - return ((SND_SoundObject*)object)->GetPlaystate(); -} diff --git a/intern/SoundSystem/intern/SND_CDObject.cpp b/intern/SoundSystem/intern/SND_CDObject.cpp deleted file mode 100644 index 089e0d554e4..00000000000 --- a/intern/SoundSystem/intern/SND_CDObject.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/* - * SND_CDObject.cpp - * - * Implementation for CD playback - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include "SND_CDObject.h" - -#ifdef HAVE_CONFIG_H -#include -#endif - -SND_CDObject* SND_CDObject::m_instance = NULL; - -bool SND_CDObject::CreateSystem() -{ - bool result = false; - - if (!m_instance) - { - m_instance = new SND_CDObject(); - result = true; - } - - return result; -} - - - -bool SND_CDObject::DisposeSystem() -{ - bool result = false; - - if (m_instance) - { - delete m_instance; - m_instance = NULL; - result = true; - } - - return result; -} - - - -SND_CDObject* SND_CDObject::Instance() -{ - return m_instance; -} - - - -SND_CDObject::SND_CDObject() -{ - m_gain = 1; - m_playmode = SND_CD_ALL; - m_track = 1; - m_playstate = SND_STOPPED; - m_used = false; - - // don't set the cd standard on modified: - // if not used, we don't wanna touch it (performance) - m_modified = false; -} - - - -SND_CDObject::~SND_CDObject() -{ -} - - - -void SND_CDObject::SetGain(MT_Scalar gain) -{ - m_gain = gain; - m_modified = true; -} - - - -void SND_CDObject::SetPlaymode(int playmode) -{ - m_playmode = playmode; -} - - - -void SND_CDObject::SetPlaystate(int playstate) -{ - m_playstate = playstate; -} - - - -void SND_CDObject::SetTrack(int track) -{ - m_track = track; -} - - - -int SND_CDObject::GetTrack() const -{ - return m_track; -} - - - -MT_Scalar SND_CDObject::GetGain() const -{ - return m_gain; -} - - -int SND_CDObject::GetPlaystate() const -{ - return m_playstate; -} - - - -bool SND_CDObject::IsModified() const -{ - return m_modified; -} - - - -void SND_CDObject::SetModified(bool modified) -{ - m_modified = modified; -} - - - -int SND_CDObject::GetPlaymode() const -{ - return m_playmode; -} - - - -void SND_CDObject::SetUsed() -{ - m_used = true; -} - - - -bool SND_CDObject::GetUsed() -{ - return m_used; -} - diff --git a/intern/SoundSystem/intern/SND_DeviceManager.cpp b/intern/SoundSystem/intern/SND_DeviceManager.cpp deleted file mode 100644 index c4bc887dffe..00000000000 --- a/intern/SoundSystem/intern/SND_DeviceManager.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* - * SND_DeviceManager.h - * - * singleton for creating, switching and deleting audiodevices - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "SND_DeviceManager.h" -#include "SND_DependKludge.h" -#include "SND_DummyDevice.h" -#ifdef USE_OPENAL -#include "SND_OpenALDevice.h" -#endif - -SND_IAudioDevice* SND_DeviceManager::m_instance = NULL; -int SND_DeviceManager::m_subscriptions = 0; - -#ifdef USE_OPENAL -int SND_DeviceManager::m_device_type = snd_e_openaldevice; -#else -int SND_DeviceManager::m_device_type = snd_e_dummydevice; -#endif - -void SND_DeviceManager::Subscribe() -{ - ++m_subscriptions; -} - - - -void SND_DeviceManager::Unsubscribe() -{ - --m_subscriptions; - - // only release memory if there is a m_instance but no subscriptions left - if (m_subscriptions == 0 && m_instance) - { - delete m_instance; - m_instance = NULL; - } - - if (m_subscriptions < 0) - m_subscriptions = 0; -} - - - -SND_IAudioDevice* SND_DeviceManager::Instance() -{ - // only give away an instance if there are subscriptions - if (m_subscriptions) - { - // if there's no instance yet, set and create a new one - if (m_instance == NULL) - { - SetDeviceType(m_device_type); - } - - return m_instance; - } - else - { - return NULL; - } -} - - - -void SND_DeviceManager::SetDeviceType(int device_type) -{ - // if we want to change devicetype, first delete the old one - if (m_instance) - { - delete m_instance; - m_instance = NULL; - } - - // let's create the chosen device - switch (device_type) - { -#ifdef USE_OPENAL - case snd_e_openaldevice: - { - m_instance = new SND_OpenALDevice(); - m_device_type = device_type; - break; - } -#endif - default: - { - m_instance = new SND_DummyDevice(); - m_device_type = device_type; - break; - } - } -} diff --git a/intern/SoundSystem/intern/SND_IdObject.cpp b/intern/SoundSystem/intern/SND_IdObject.cpp deleted file mode 100644 index b261442db0a..00000000000 --- a/intern/SoundSystem/intern/SND_IdObject.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* - * SND_IdObject.cpp - * - * Object for storing runtime data, like id's, soundobjects etc - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include "SND_IdObject.h" - -#ifdef HAVE_CONFIG_H -#include -#endif - -SND_IdObject::SND_IdObject() -{ -} - - - -SND_IdObject::~SND_IdObject() -{ -} - - - -SND_SoundObject* SND_IdObject::GetSoundObject() -{ - return m_soundObject; -} - - - -void SND_IdObject::SetSoundObject(SND_SoundObject* pObject) -{ - m_soundObject = pObject; -} - - - -int SND_IdObject::GetId() -{ - return m_id; -} - - - -void SND_IdObject::SetId(int id) -{ - m_id = id; -} diff --git a/intern/SoundSystem/intern/SND_IdObject.h b/intern/SoundSystem/intern/SND_IdObject.h deleted file mode 100644 index 86611b026f0..00000000000 --- a/intern/SoundSystem/intern/SND_IdObject.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * SND_IdObject.h - * - * Object for storing runtime data, like id's, soundobjects etc - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef __SND_IDOBJECT_H -#define __SND_IDOBJECT_H - -#include "SND_SoundObject.h" -#include "GEN_List.h" -#include "SoundDefines.h" - -class SND_IdObject : public GEN_Link -{ - SND_SoundObject* m_soundObject; - int m_id; - -public: - SND_IdObject(); - virtual ~SND_IdObject(); - - SND_SoundObject* GetSoundObject(); - void SetSoundObject(SND_SoundObject* pObject); - - int GetId(); - void SetId(int id); -}; - -#endif //__SND_OBJECT_H - diff --git a/intern/SoundSystem/intern/SND_Scene.cpp b/intern/SoundSystem/intern/SND_Scene.cpp deleted file mode 100644 index af1b43a08aa..00000000000 --- a/intern/SoundSystem/intern/SND_Scene.cpp +++ /dev/null @@ -1,544 +0,0 @@ -/* -* SND_Scene.cpp -* -* The scene for sounds. -* -* $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** -*/ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifdef WIN32 -#pragma warning (disable:4786) // Get rid of stupid stl-visual compiler debug warning -#endif //WIN32 - -#include "SND_Scene.h" -#include "SND_DependKludge.h" -#include "SND_IAudioDevice.h" - -#include -#include - -//static unsigned int tijd = 0; - -SND_Scene::SND_Scene(SND_IAudioDevice* audiodevice) - : m_audiodevice(audiodevice) -{ - if (m_audiodevice) - m_wavecache = m_audiodevice->GetWaveCache(); - - if (!m_wavecache || !audiodevice) - { - m_audio = false; - } - else - { - //if so, go ahead! - m_audio = true; -#ifdef ONTKEVER - printf("SND_Scene::SND_Scene() m_audio == true\n"); -#endif - m_audiodevice->InitListener(); - } - - IsPlaybackWanted(); -} - - - -SND_Scene::~SND_Scene() -{ - StopAllObjects(); -} - - - -// check if audioplayback is wanted -bool SND_Scene::IsPlaybackWanted() -{ - /* Removed the functionality for checking if noaudio was provided on */ - /* the commandline. */ - if (m_audiodevice && m_wavecache) - { - m_audioplayback = true; - } - else - { - StopAllObjects(); - m_audioplayback = false; - } - - return m_audioplayback; -} - - - -int SND_Scene::LoadSample(const STR_String& samplename, - void* memlocation, - int size) -{ - int result = -1; - - if (m_audiodevice) - { - SND_WaveSlot* waveslot = m_audiodevice->LoadSample(samplename, memlocation, size); - - if (waveslot) - result = waveslot->GetBuffer(); - } - - return result; -} - - - -void SND_Scene::RemoveAllSamples() -{ - if (m_audio && m_audiodevice) - m_audiodevice->RemoveAllSamples(); -} - - - -bool SND_Scene::CheckBuffer(SND_SoundObject* pObject) -{ - bool result = false; - - if (pObject && m_wavecache) - { - SND_WaveSlot* waveslot = m_wavecache->GetWaveSlot(pObject->GetSampleName()); - - if (waveslot) - { - pObject->SetBuffer(waveslot->GetBuffer()); - - result = true; - } - } - - return result; -} - - - -bool SND_Scene::IsSampleLoaded(STR_String& samplename) -{ - bool result = false; - - if (samplename && m_wavecache) - { - SND_WaveSlot* waveslot = m_wavecache->GetWaveSlot(samplename); - - if (waveslot && waveslot->IsLoaded()) - result = true; - } - - return result; -} - - - -void SND_Scene::AddObject(SND_SoundObject* pObject) -{ - if (m_audio) - { - STR_String samplename = pObject->GetSampleName(); - SND_WaveSlot* slot = NULL; - - // don't add the object if no valid sample is referenced - if (samplename != "") - { - // check if the sample is already loaded - slot = m_wavecache->GetWaveSlot(samplename); - } - - if (slot) - { - pObject->SetBuffer(slot->GetBuffer()); - - // needed for expected lifespan of the sample, but ain't necesary anymore i think - MT_Scalar samplelength = slot->GetNumberOfSamples(); - MT_Scalar samplerate = slot->GetSampleRate(); - MT_Scalar soundlength = samplelength/samplerate; - pObject->SetLength(soundlength); - - // add the object to the list - m_soundobjects.insert((SND_SoundObject*)pObject); - } - } -} - - - -void SND_Scene::SetListenerTransform(const MT_Vector3& pos, - const MT_Vector3& vel, - const MT_Matrix3x3& ori) -{ - if (m_audio) - { - GetListener()->SetPosition(pos); - GetListener()->SetVelocity(vel); - GetListener()->SetOrientation(ori); - } -} - - - -void SND_Scene::UpdateListener() -{ - // process the listener if modified - if (m_listener.IsModified()) - { - m_audiodevice->SetListenerGain(m_listener.GetGain()); - m_audiodevice->SetDopplerVelocity(m_listener.GetDopplerVelocity()); - m_audiodevice->SetDopplerFactor(m_listener.GetDopplerFactor()); - m_listener.SetModified(false); - } -} - - - -void SND_Scene::AddActiveObject(SND_SoundObject* pObject, MT_Scalar curtime) -{ - if (m_audio) - { - if (pObject) - { -#ifdef ONTKEVER - printf("SND_Scene::AddActiveObject\n"); -#endif - - // first check if the object is already on the list - if (pObject->IsActive()) - { - pObject->SetTimeStamp(curtime); - pObject->StartSound(); - } - else - { - pObject->SetTimeStamp(curtime); - - // compute the expected lifespan - pObject->SetLifeSpan(); - - // lets give the new active-to-be object an id - if (m_audiodevice->GetNewId(pObject)) - { - // and add the object - m_activeobjects.addTail(pObject); - pObject->StartSound(); - pObject->SetActive(true); - } - } - } - } -} - - - -void SND_Scene::RemoveActiveObject(SND_SoundObject* pObject) -{ - if (m_audio) - { - if (pObject) - { -#ifdef ONTKEVER - printf("SND_Scene::RemoveActiveObject\n"); -#endif - // if inactive, remove it from the list - if (pObject->IsActive()) - { - // first make sure it is stopped - m_audiodevice->ClearId(pObject); - } - } - } -} - - - -void SND_Scene::UpdateActiveObects() -{ -// ++tijd; - - SND_SoundObject* pObject; - // update only the objects that need to be updated - for (pObject = (SND_SoundObject*)m_activeobjects.getHead(); - !pObject->isTail(); - pObject = (SND_SoundObject*)pObject->getNext()) - { - int id = pObject->GetId(); - - if (id >= 0) - { - if (pObject->Is3D()) - { - // Get the global positions and velocity vectors - // of the listener and soundobject - MT_Vector3 op = pObject->GetPosition(); - MT_Vector3 lp = m_listener.GetPosition(); - MT_Vector3 position = op - lp; - - // Calculate relative velocity in global coordinates - // of the sound with respect to the listener. - MT_Vector3 ov = pObject->GetVelocity(); - MT_Vector3 lv = m_listener.GetVelocity(); - MT_Vector3 velocity = ov - lv; - - // Now map the object position and velocity into - // the local coordinates of the listener. - MT_Matrix3x3 lo = m_listener.GetOrientation(); - - MT_Vector3 local_sound_pos = position * lo; - MT_Vector3 local_sound_vel = velocity * lo; - - m_audiodevice->SetObjectTransform( - id, - local_sound_pos, - local_sound_vel, - pObject->GetOrientation(), // make relative to listener! - lp, - pObject->GetRollOffFactor()); - } - else - { - m_audiodevice->ObjectIs2D(id); - } - - // update the situation - if (pObject->IsModified()) - { - m_audiodevice->SetObjectPitch(id, pObject->GetPitch()); - m_audiodevice->SetObjectGain(id, pObject->GetGain()); - m_audiodevice->SetObjectMinGain(id, pObject->GetMinGain()); - m_audiodevice->SetObjectMaxGain(id, pObject->GetMaxGain()); - m_audiodevice->SetObjectReferenceDistance(id, pObject->GetReferenceDistance()); - m_audiodevice->SetObjectRollOffFactor(id, pObject->GetRollOffFactor()); - m_audiodevice->SetObjectLoop(id, pObject->GetLoopMode()); - m_audiodevice->SetObjectLoopPoints(id, pObject->GetLoopStart(), pObject->GetLoopEnd()); - pObject->SetModified(false); - } - - pObject->AddRunning(); - -#ifdef ONTKEVER - STR_String naam = pObject->GetObjectName(); - STR_String sample = pObject->GetSampleName(); - - int id = pObject->GetId(); - int buffer = pObject->GetBuffer(); - - float gain = pObject->GetGain(); - float pitch = pObject->GetPitch(); - float timestamp = pObject->GetTimestamp(); - - printf("naam: %s, sample: %s \n", naam.Ptr(), sample.Ptr()); - printf("id: %d, buffer: %d \n", id, buffer); - printf("gain: %f, pitch: %f, ts: %f \n\n", gain, pitch, timestamp); -#endif -#ifdef USE_OPENAL - // ok, properties Set. now see if it must play - switch (pObject->GetPlaystate()){ - case SND_MUST_PLAY: - m_audiodevice->PlayObject(id); - pObject->SetPlaystate(SND_PLAYING); - break; - case SND_MUST_STOP: - RemoveActiveObject(pObject); - break; - case SND_MUST_PAUSE: - m_audiodevice->PauseObject(id); - pObject->SetPlaystate(SND_PAUSED); - break; - } -#endif - - // check to see if the sound is still playing - // if not: release its id - int playstate = m_audiodevice->GetPlayState(id); -#ifdef ONTKEVER - if (playstate != 2) - printf("%d - ",playstate); -#endif - - if ((playstate == SND_STOPPED) && !pObject->GetLoopMode()) - { - RemoveActiveObject(pObject); - } - } - } -} - - - -void SND_Scene::UpdateCD() -{ - if (m_audiodevice) - { - SND_CDObject* pCD = SND_CDObject::Instance(); - - if (pCD) - { - int playstate = pCD->GetPlaystate(); - - switch (playstate) - { - case SND_MUST_PLAY: - { - // initialize the cd only when you need it - m_audiodevice->SetCDGain(pCD->GetGain()); - m_audiodevice->SetCDPlaymode(pCD->GetPlaymode()); - m_audiodevice->PlayCD(pCD->GetTrack()); - pCD->SetPlaystate(SND_PLAYING); - pCD->SetUsed(); - break; - } - case SND_MUST_PAUSE: - { - m_audiodevice->PauseCD(true); - pCD->SetPlaystate(SND_PAUSED); - break; - } - case SND_MUST_RESUME: - { - m_audiodevice->PauseCD(false); - pCD->SetPlaystate(SND_PLAYING); - break; - } - case SND_MUST_STOP: - { - m_audiodevice->StopCD(); - pCD->SetPlaystate(SND_STOPPED); - break; - } - default: - { - } - } - - // this one is only for realtime modifying settings - if (pCD->IsModified()) - { - m_audiodevice->SetCDGain(pCD->GetGain()); - pCD->SetModified(false); - } - } - } -} - - - -void SND_Scene::Proceed() -{ - if (m_audio && m_audioplayback) - { - m_audiodevice->MakeCurrent(); - - UpdateListener(); - UpdateActiveObects(); - UpdateCD(); - -// m_audiodevice->UpdateDevice(); - } -} - - -void SND_Scene::DeleteObject(SND_SoundObject* pObject) -{ -#ifdef ONTKEVER - printf("SND_Scene::DeleteObject\n"); -#endif - - if (pObject) - { - if (m_audiodevice) - m_audiodevice->ClearId(pObject); - - // must remove object from m_activeList - std::set::iterator set_it; - set_it = m_soundobjects.find(pObject); - - if (set_it != m_soundobjects.end()) - m_soundobjects.erase(set_it); - - // release the memory - delete pObject; - pObject = NULL; - } -} - - - -void SND_Scene::RemoveAllObjects() -{ -#ifdef ONTKEVER - printf("SND_Scene::RemoveAllObjects\n"); -#endif - - StopAllObjects(); - - std::set::iterator it = m_soundobjects.begin(); - - while (it != m_soundobjects.end()) - { - delete (*it); - it++; - } - - m_soundobjects.clear(); -} - - - -void SND_Scene::StopAllObjects() -{ - if (m_audio) - { -#ifdef ONTKEVER - printf("SND_Scene::StopAllObjects\n"); -#endif - - SND_SoundObject* pObject; - - for (pObject = (SND_SoundObject*)m_activeobjects.getHead(); - !pObject->isTail(); - pObject = (SND_SoundObject*)pObject->getNext()) - { - m_audiodevice->ClearId(pObject); - } - } -} - - - -SND_SoundListener* SND_Scene::GetListener() -{ - return &m_listener; -} diff --git a/intern/SoundSystem/intern/SND_SoundListener.cpp b/intern/SoundSystem/intern/SND_SoundListener.cpp deleted file mode 100644 index 26163e87765..00000000000 --- a/intern/SoundSystem/intern/SND_SoundListener.cpp +++ /dev/null @@ -1,185 +0,0 @@ -/* - * SND_SoundListener.cpp - * - * A SoundListener is for sound what a camera is for vision. - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include "SND_SoundListener.h" - -#ifdef HAVE_CONFIG_H -#include -#endif - -SND_SoundListener::SND_SoundListener() -{ - m_modified = true; - m_gain = 1.0; - m_dopplerfactor = 1.0; - m_dopplervelocity = 1.0; - m_scale = 1.0; - m_position[0] = 0.0; - m_position[1] = 0.0; - m_position[2] = 0.0; - m_velocity[0] = 0.0; - m_velocity[1] = 0.0; - m_velocity[2] = 0.0; - m_orientation[0][0] = 1.0; - m_orientation[0][1] = 0.0; - m_orientation[0][2] = 0.0; - m_orientation[1][0] = 0.0; - m_orientation[1][1] = 1.0; - m_orientation[1][2] = 0.0; - m_orientation[2][0] = 0.0; - m_orientation[2][1] = 0.0; - m_orientation[2][2] = 1.0; -} - - -SND_SoundListener::~SND_SoundListener() -{ - ; /* intentionally empty */ - -} - - - -void SND_SoundListener::SetGain(MT_Scalar gain) -{ - m_gain = gain; - m_modified = true; -} - - - -void SND_SoundListener::SetPosition (const MT_Vector3& pos) -{ - m_position = pos; -} - - - -void SND_SoundListener::SetVelocity(const MT_Vector3& vel) -{ - m_velocity = vel; -} - - - -void SND_SoundListener::SetOrientation(const MT_Matrix3x3& ori) -{ - m_orientation = ori; -} - - - -void SND_SoundListener::SetDopplerFactor(MT_Scalar dopplerfactor) -{ - m_dopplerfactor = dopplerfactor; - m_modified = true; -} - - - -void SND_SoundListener::SetDopplerVelocity(MT_Scalar dopplervelocity) -{ - m_dopplervelocity = dopplervelocity; - m_modified = true; -} - - - -void SND_SoundListener::SetScale(MT_Scalar scale) -{ - m_scale = scale; - m_modified = true; -} - - - -MT_Scalar SND_SoundListener::GetGain() const -{ - return m_gain; -} - - - -MT_Vector3 SND_SoundListener::GetPosition() const -{ - return m_position; -} - - - -MT_Vector3 SND_SoundListener::GetVelocity() const -{ - return m_velocity; -} - - - -MT_Matrix3x3 SND_SoundListener::GetOrientation() -{ - return m_orientation; -} - - - -MT_Scalar SND_SoundListener::GetDopplerFactor() const -{ - return m_dopplerfactor; -} - - - -MT_Scalar SND_SoundListener::GetDopplerVelocity() const -{ - return m_dopplervelocity; -} - - - -MT_Scalar SND_SoundListener::GetScale() const -{ - return m_scale; -} - - - -bool SND_SoundListener::IsModified() const -{ - return m_modified; -} - - - -void SND_SoundListener::SetModified(bool modified) -{ - m_modified = modified; -} diff --git a/intern/SoundSystem/intern/SND_SoundObject.cpp b/intern/SoundSystem/intern/SND_SoundObject.cpp deleted file mode 100644 index 7a244b5090d..00000000000 --- a/intern/SoundSystem/intern/SND_SoundObject.cpp +++ /dev/null @@ -1,508 +0,0 @@ -/* - * SND_SoundObject.cpp - * - * Implementation of the abstract sound object - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include "SND_SoundObject.h" - -#ifdef HAVE_CONFIG_H -#include -#endif - -SND_SoundObject::SND_SoundObject()// : m_modified(true) -{ - m_samplename = ""; - m_length = 0; - m_buffer = 0; - - m_gain = 0.0; - m_pitch = 1.0; - - m_mingain = 0.0; - m_maxgain = 1.0; - m_rollofffactor = 1.0; - m_referencedistance = 1.0; - - m_position[0] = 0.0; - m_position[1] = 0.0; - m_position[2] = 0.0; - m_velocity[0] = 0.0; - m_velocity[1] = 0.0; - m_velocity[2] = 0.0; - m_orientation[0][0] = 1.0; - m_orientation[0][1] = 0.0; - m_orientation[0][2] = 0.0; - m_orientation[1][0] = 0.0; - m_orientation[1][1] = 1.0; - m_orientation[1][2] = 0.0; - m_orientation[2][0] = 0.0; - m_orientation[2][1] = 0.0; - m_orientation[2][2] = 1.0; - - m_loopstart = 0; - m_loopend = 0; - m_loopmode = SND_LOOP_NORMAL; - m_is3d = true; - m_playstate = SND_INITIAL; - m_active = false; - m_id = -1; - m_lifespan = 0; - m_timestamp = 0; - m_modified = true; - m_running = 0; - m_highpriority = false; -} - - - -SND_SoundObject::~SND_SoundObject() -{ -} - - - -void SND_SoundObject::StartSound() -{ - if (m_id >= 0) - m_playstate = SND_MUST_PLAY; -} - - - -void SND_SoundObject::StopSound() -{ - if (m_id >= 0) - m_playstate = SND_MUST_STOP; -} - - - -void SND_SoundObject::PauseSound() -{ - if (m_id >= 0) - m_playstate = SND_MUST_PAUSE; -} - - - -void SND_SoundObject::DeleteWhenFinished() -{ - m_playstate = SND_MUST_BE_DELETED; -} - - - -void SND_SoundObject::SetGain(MT_Scalar gain) -{ - m_gain = gain; - m_modified = true; -} - - - -void SND_SoundObject::SetMinGain(MT_Scalar mingain) -{ - m_mingain = mingain; - m_modified = true; -} - - - -void SND_SoundObject::SetMaxGain(MT_Scalar maxgain) -{ - m_maxgain = maxgain; - m_modified = true; -} - - - -void SND_SoundObject::SetRollOffFactor(MT_Scalar rollofffactor) -{ - m_rollofffactor = rollofffactor; - m_modified = true; -} - - - -void SND_SoundObject::SetReferenceDistance(MT_Scalar referencedistance) -{ - m_referencedistance = referencedistance; - m_modified = true; -} - - - -void SND_SoundObject::SetPitch(MT_Scalar pitch) -{ - m_pitch = pitch; - m_modified = true; -} - - - -void SND_SoundObject::SetLoopMode(unsigned int loopmode) -{ - m_loopmode = loopmode; - m_modified = true; -} - - - -void SND_SoundObject::SetLoopStart(unsigned int loopstart) -{ - m_loopstart = loopstart; - m_modified = true; -} - - - -void SND_SoundObject::SetLoopEnd(unsigned int loopend) -{ - m_loopend = loopend; - m_modified = true; -} - - - -void SND_SoundObject::Set3D(bool threedee) -{ - m_is3d = threedee; -} - - - -void SND_SoundObject::SetLifeSpan() -{ - m_lifespan = m_length / m_pitch; -} - - - -bool SND_SoundObject::IsLifeSpanOver(MT_Scalar curtime) const -{ - bool result = false; - - if ((curtime - m_timestamp) > m_lifespan) - result = true; - - return result; -} - - - -void SND_SoundObject::SetActive(bool active) -{ - m_active = active; - - if (!active) - { - m_playstate = SND_STOPPED; - (this)->remove(); - } -} - - - -void SND_SoundObject::SetBuffer(unsigned int buffer) -{ - m_buffer = buffer; -} - - - -void SND_SoundObject::SetObjectName(STR_String objectname) -{ - m_objectname = objectname; -} - - - -void SND_SoundObject::SetSampleName(STR_String samplename) -{ - m_samplename = samplename; -} - - - -void SND_SoundObject::SetLength(MT_Scalar length) -{ - m_length = length; -} - - - -void SND_SoundObject::SetPosition(const MT_Vector3& pos) -{ - m_position = pos; -} - - - -void SND_SoundObject::SetVelocity(const MT_Vector3& vel) -{ - m_velocity = vel; -} - - - -void SND_SoundObject::SetOrientation(const MT_Matrix3x3& orient) -{ - m_orientation = orient; -} - - - -void SND_SoundObject::SetPlaystate(int playstate) -{ - m_playstate = playstate; -} - - - -void SND_SoundObject::SetId(int id) -{ - m_id = id; -} - - - -void SND_SoundObject::SetTimeStamp(MT_Scalar timestamp) -{ - m_timestamp = timestamp; -} - - - -void SND_SoundObject::SetHighPriority(bool priority) -{ - m_highpriority = priority; -} - - - -bool SND_SoundObject::IsHighPriority() const -{ - return m_highpriority; -} - - - -bool SND_SoundObject::IsActive()const -{ - return m_active; -} - - - -int SND_SoundObject::GetId()const -{ - return m_id; -} - - - -MT_Scalar SND_SoundObject::GetLifeSpan()const -{ - return m_lifespan; -} - - - -MT_Scalar SND_SoundObject::GetTimestamp()const -{ - return m_timestamp; -} - - - -unsigned int SND_SoundObject::GetBuffer() -{ - return m_buffer; -} - - - -const STR_String& SND_SoundObject::GetSampleName() -{ - return m_samplename; -} - - - -const STR_String& SND_SoundObject::GetObjectName() -{ - return m_objectname; -} - - - -MT_Scalar SND_SoundObject::GetLength() const -{ - return m_length; -} - - - -MT_Scalar SND_SoundObject::GetGain() const -{ - return m_gain; -} - - - -MT_Scalar SND_SoundObject::GetPitch() const -{ - return m_pitch; -} - - - -MT_Scalar SND_SoundObject::GetMinGain() const -{ - return m_mingain; -} - - - -MT_Scalar SND_SoundObject::GetMaxGain() const -{ - return m_maxgain; -} - - - -MT_Scalar SND_SoundObject::GetRollOffFactor() const -{ - return m_rollofffactor; -} - - - -MT_Scalar SND_SoundObject::GetReferenceDistance() const -{ - return m_referencedistance; -} - - - -MT_Vector3 SND_SoundObject::GetPosition() const -{ - return m_position; -} - - - -MT_Vector3 SND_SoundObject::GetVelocity() const -{ - return m_velocity; -} - - - -MT_Matrix3x3 SND_SoundObject::GetOrientation() const -{ - return m_orientation; -} - - - -unsigned int SND_SoundObject::GetLoopMode() const -{ - return m_loopmode; -} - - - -unsigned int SND_SoundObject::GetLoopStart() const -{ - return m_loopstart; -} - - - -unsigned int SND_SoundObject::GetLoopEnd() const -{ - return m_loopend; -} - - - -bool SND_SoundObject::Is3D() const -{ - return m_is3d; -} - - - -int SND_SoundObject::GetPlaystate() const -{ - return m_playstate; -} - - - -bool SND_SoundObject::IsModified() const -{ - return m_modified; -} - - - -void SND_SoundObject::SetModified(bool modified) -{ - m_modified = modified; -} - - - -void SND_SoundObject::InitRunning() -{ - m_running = 0; -} - - - -bool SND_SoundObject::IsRunning() const -{ - bool result = false; - - if (m_running > 100) - result = true; - - return result; -} - - - -void SND_SoundObject::AddRunning() -{ - ++m_running; -} diff --git a/intern/SoundSystem/intern/SND_Utils.cpp b/intern/SoundSystem/intern/SND_Utils.cpp deleted file mode 100644 index dbc3135b35c..00000000000 --- a/intern/SoundSystem/intern/SND_Utils.cpp +++ /dev/null @@ -1,424 +0,0 @@ -/* - * SND_Utils.cpp - * - * Util functions for soundthingies - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include "SND_Utils.h" -#include "SoundDefines.h" -#include "SND_DependKludge.h" -#include -#include -#include -#include -#include - -#if defined(_WIN32) -#include -#define open _open -#define read _read -#define close _close -#define write _write -#define lseek _lseek -#else -#include -#endif - -#define BUFFERSIZE 32 - - -/***************************************************************************** - * Begin of temporary Endian stuff. - * I think there should be a central place to handle endian conversion but for - * the time being it suffices. Note that the defines come from the Blender - * source. - *****************************************************************************/ -typedef enum -{ - SND_endianBig = 0, - SND_endianLittle -} SND_TEndian; - -#if defined(__BIG_ENDIAN__) || defined(__sparc) || defined(__sparc__) -const SND_TEndian SND_fEndian = SND_endianBig; -#else -const SND_TEndian SND_fEndian = SND_endianLittle; -#endif - -/* This one swaps the bytes in a short */ -#define SWITCH_SHORT(a) { \ - char s_i, *p_i; \ - p_i= (char *)&(a); \ - s_i=p_i[0]; \ - p_i[0] = p_i[1]; \ - p_i[1] = s_i; } - -/* This one rotates the bytes in an int */ -#define SWITCH_INT(a) { \ - char s_i, *p_i; \ - p_i= (char *)&(a); \ - s_i=p_i[0]; p_i[0]=p_i[3]; p_i[3]=s_i; \ - s_i=p_i[1]; p_i[1]=p_i[2]; p_i[2]=s_i; } -/***************************************************************************** - * End of temporary Endian stuff. - *****************************************************************************/ - - -/* loads a file */ -void* SND_LoadSample(char *filename) -{ - int file, filelen, buffersize = BUFFERSIZE; - void* data = NULL; - -#if defined(WIN32) - file = open(filename, O_BINARY|O_RDONLY); -#else - file = open(filename, 0|O_RDONLY); -#endif - - if (file == -1) - { - //printf("can't open file.\n"); - //printf("press q for quit.\n"); - } - else - { - filelen = lseek(file, 0, SEEK_END); - lseek(file, 0, SEEK_SET); - - if (filelen != 0) - { - data = malloc(buffersize); - - if (read(file, data, buffersize) != buffersize) - { - free(data); - data = NULL; - } - } - close(file); - - } - return (data); -} - - - -bool SND_IsSampleValid(const STR_String& name, void* memlocation) -{ - bool result = false; - bool loadedsample = false; - char buffer[BUFFERSIZE]; - - if (!memlocation) - { - STR_String samplename = name; - memlocation = SND_LoadSample(samplename.Ptr()); - - if (memlocation) - loadedsample = true; - } - - if (memlocation) - { - memcpy(&buffer, memlocation, BUFFERSIZE); - - if(!(memcmp(buffer, "RIFF", 4) && memcmp(&(buffer[8]), "WAVEfmt ", 8))) - { - /* This was endian unsafe. See top of the file for the define. */ - short shortbuf = *((short *) &buffer[20]); - if (SND_fEndian == SND_endianBig) SWITCH_SHORT(shortbuf); - - if (shortbuf == SND_WAVE_FORMAT_PCM) - result = true; - } - } - if (loadedsample) - { - free(memlocation); - memlocation = NULL; - } - - return result; -} - - - -/* checks if the passed pointer is a valid sample */ -static bool CheckSample(void* sample) -{ - bool valid = false; - char buffer[32]; - - memcpy(buffer, sample, 16); - - if(!(memcmp(buffer, "RIFF", 4) && memcmp(&(buffer[8]), "WAVEfmt ", 8))) - { - valid = true; - } - - return valid; -} - - - -/* gets the type of the sample (0 == unknown, 1 == PCM etc */ -unsigned int SND_GetSampleFormat(void* sample) -{ - short sampletype = 0; - - if (CheckSample(sample)) - { - memcpy(&sampletype, ((char*)sample) + 20, 2); - } - /* This was endian unsafe. See top of the file for the define. */ - if (SND_fEndian == SND_endianBig) SWITCH_SHORT(sampletype); - - return (unsigned int)sampletype; -} - - - -/* gets the number of channels in a sample */ -unsigned int SND_GetNumberOfChannels(void* sample) -{ - short numberofchannels = 0; - - if (CheckSample(sample)) - { - memcpy(&numberofchannels, ((char*)sample) + 22, 2); - } - /* This was endian unsafe. See top of the file for the define. */ - if (SND_fEndian == SND_endianBig) SWITCH_SHORT(numberofchannels); - - return (unsigned int)numberofchannels; -} - - - -/* gets the samplerate of a sample */ -unsigned int SND_GetSampleRate(void* sample) -{ - unsigned int samplerate = 0; - - if (CheckSample(sample)) - { - memcpy(&samplerate, ((char*)sample) + 24, 4); - } - /* This was endian unsafe. See top of the file for the define. */ - if (SND_fEndian == SND_endianBig) SWITCH_INT(samplerate); - - return samplerate; -} - - - -/* gets the bitrate of a sample */ -unsigned int SND_GetBitRate(void* sample) -{ - short bitrate = 0; - - if (CheckSample(sample)) - { - memcpy(&bitrate, ((char*)sample) + 34, 2); - } - /* This was endian unsafe. See top of the file for the define. */ - if (SND_fEndian == SND_endianBig) SWITCH_SHORT(bitrate); - - return (unsigned int)bitrate; -} - - - -/* gets the length of the actual sample data (without the header) */ -unsigned int SND_GetNumberOfSamples(void* sample, unsigned int sample_length) -{ - unsigned int chunklength, length = 0, offset; - unsigned short block_align; - if (CheckSample(sample)) - { - memcpy(&chunklength, ((char*)sample) + 16, 4); - memcpy(&block_align, ((char*)sample) + 32, 2); /* always 2 or 4 it seems */ - - /* This was endian unsafe. See top of the file for the define. */ - if (SND_fEndian == SND_endianBig) - { - SWITCH_INT(chunklength); - SWITCH_SHORT(block_align); - } - - offset = 16 + chunklength + 4; - - /* This seems very unsafe, what if data is never found (f.i. corrupt file)... */ - // lets find "data" - while (memcmp(((char*)sample) + offset, "data", 4)) - { - offset += block_align; - - if (offset+block_align > sample_length) /* save us from crashing */ - return 0; - } - offset += 4; - memcpy(&length, ((char*)sample) + offset, 4); - - /* This was endian unsafe. See top of the file for the define. */ - if (SND_fEndian == SND_endianBig) SWITCH_INT(length); - } - - return length; -} - - - -/* gets the size of the entire header (file - sampledata) */ -unsigned int SND_GetHeaderSize(void* sample, unsigned int sample_length) -{ - unsigned int chunklength, headersize = 0, offset = 16; - unsigned short block_align; - if (CheckSample(sample)) - { - memcpy(&chunklength, ((char*)sample) + offset, 4); - memcpy(&block_align, ((char*)sample) + 32, 2); /* always 2 or 4 it seems */ - - /* This was endian unsafe. See top of the file for the define. */ - if (SND_fEndian == SND_endianBig) - { - SWITCH_INT(chunklength); - SWITCH_SHORT(block_align); - } - offset = offset + chunklength + 4; - - // lets find "data" - while (memcmp(((char*)sample) + offset, "data", 4)) - { - offset += block_align; - - if (offset+block_align > sample_length) /* save us from crashing */ - return 0; - } - headersize = offset + 8; - } - - return headersize; -} - - -unsigned int SND_GetExtraChunk(void* sample) -{ - unsigned int extrachunk = 0, chunklength, offset = 16; - char data[4]; - - if (CheckSample(sample)) - { - memcpy(&chunklength, ((char*)sample) + offset, 4); - offset = offset + chunklength + 4; - memcpy(data, ((char*)sample) + offset, 4); - - // lets find "cue" - while (memcmp(data, "cue", 3)) - { - offset += 4; - memcpy(data, ((char*)sample) + offset, 4); - } - } - - return extrachunk; -} - - - -void SND_GetSampleInfo(signed char* sample, SND_WaveSlot* waveslot) -{ - WavFileHeader fileheader; - WavFmtHeader fmtheader; - WavFmtExHeader fmtexheader; - WavSampleHeader sampleheader; - WavChunkHeader chunkheader; - - if (CheckSample(sample)) - { - memcpy(&fileheader, sample, sizeof(WavFileHeader)); - fileheader.size = SND_GetHeaderSize(sample, waveslot->GetFileSize()); - if (fileheader.size) { /* this may fail for corrupt files */ - sample += sizeof(WavFileHeader); - fileheader.size = ((fileheader.size+1) & ~1) - 4; - - while ((fileheader.size > 0) && (memcpy(&chunkheader, sample, sizeof(WavChunkHeader)))) - { - sample += sizeof(WavChunkHeader); - if (!memcmp(chunkheader.id, "fmt ", 4)) - { - memcpy(&fmtheader, sample, sizeof(WavFmtHeader)); - waveslot->SetSampleFormat(fmtheader.format); - - if (fmtheader.format == 0x0001) - { - waveslot->SetNumberOfChannels(fmtheader.numberofchannels); - waveslot->SetBitRate(fmtheader.bitrate); - waveslot->SetSampleRate(fmtheader.samplerate); - sample += chunkheader.size; - } - else - { - memcpy(&fmtexheader, sample, sizeof(WavFmtExHeader)); - sample += chunkheader.size; - } - } - else if (!memcmp(chunkheader.id, "data", 4)) - { - if (fmtheader.format == 0x0001) - { - waveslot->SetNumberOfSamples(chunkheader.size); - sample += chunkheader.size; - } - else if (fmtheader.format == 0x0011) - { - //IMA ADPCM - } - else if (fmtheader.format == 0x0055) - { - //MP3 WAVE - } - } - else if (!memcmp(chunkheader.id, "smpl", 4)) - { - memcpy(&sampleheader, sample, sizeof(WavSampleHeader)); - //loop = sampleheader.loops; - sample += chunkheader.size; - } - else - sample += chunkheader.size; - - sample += chunkheader.size & 1; - fileheader.size -= (((chunkheader.size + 1) & ~1) + 8); - } - } - } -} diff --git a/intern/SoundSystem/intern/SND_WaveCache.cpp b/intern/SoundSystem/intern/SND_WaveCache.cpp deleted file mode 100644 index a678bd554bb..00000000000 --- a/intern/SoundSystem/intern/SND_WaveCache.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/* - * SND_WaveCache.cpp - * - * abstract wavecache, a way to organize samples - * - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifdef WIN32 -#pragma warning (disable:4786) // Get rid of stupid stl-visual compiler debug warning -#endif //WIN32 - -#include "SND_WaveCache.h" -#include - -#ifdef __APPLE__ -# include -#else -# ifdef __FreeBSD__ -# include -# else -# include -# endif -#endif - -SND_WaveCache::SND_WaveCache() -{ - // do the buffer administration - for (int i = 0; i < NUM_BUFFERS; i++) - m_bufferList[i] = NULL; -} - - - -SND_WaveCache::~SND_WaveCache() -{ - // clean up the mess - FreeSamples(); - RemoveAllSamples(); -} - - - -SND_WaveSlot* SND_WaveCache::GetWaveSlot(const STR_String& samplename) -{ - SND_WaveSlot* waveslot = NULL; - - std::map::iterator find_result = m_samplecache.find(samplename); - - // let's see if we have already loaded this sample - if (find_result != m_samplecache.end()) - { - waveslot = (*find_result).second; - } - else - { - // so the sample wasn't loaded, so do it here - for (int bufnum = 0; bufnum < NUM_BUFFERS; bufnum++) - { - // find an empty buffer - if (m_bufferList[bufnum] == NULL) - { - waveslot = new SND_WaveSlot(); - waveslot->SetSampleName(samplename); - waveslot->SetBuffer(bufnum); - m_bufferList[bufnum] = waveslot; - break; - } - } - m_samplecache.insert(std::pair(samplename, waveslot)); - } - - return waveslot; -} - - - -void SND_WaveCache::RemoveAllSamples() -{ - // remove all samples - m_samplecache.clear(); - - // reset the list of buffers - for (int i = 0; i < NUM_BUFFERS; i++) - m_bufferList[i] = NULL; -} - - - -void SND_WaveCache::RemoveSample(const STR_String& samplename, int buffer) -{ - m_samplecache.erase(samplename); - m_bufferList[buffer] = NULL; -} - - - -void SND_WaveCache::FreeSamples() -{ - // iterate through the bufferlist and delete the waveslot if present - for (int i = 0; i < NUM_BUFFERS; i++) - { - if (m_bufferList[i]) - { - delete m_bufferList[i]; - m_bufferList[i] = NULL; - } - } -} diff --git a/intern/SoundSystem/intern/SND_WaveSlot.cpp b/intern/SoundSystem/intern/SND_WaveSlot.cpp deleted file mode 100644 index 43b2bb55892..00000000000 --- a/intern/SoundSystem/intern/SND_WaveSlot.cpp +++ /dev/null @@ -1,180 +0,0 @@ -/** - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#include "SND_WaveSlot.h" - -#ifdef HAVE_CONFIG_H -#include -#endif - -SND_WaveSlot::~SND_WaveSlot() -{ -#ifdef ONTKEVER - printf("neeeeeee...\n"); -#endif -} - - - -void SND_WaveSlot::SetSampleName(STR_String samplename) -{ - m_samplename = samplename; -} - - - -void SND_WaveSlot::SetLoaded(bool loaded) -{ - m_loaded = loaded; -} - - - -void SND_WaveSlot::SetData(void* data) -{ - m_data = data; -} - - - -void SND_WaveSlot::SetBuffer(unsigned int buffer) -{ - m_buffer = buffer; -} - - - -void SND_WaveSlot::SetSampleFormat(unsigned int sampleformat) -{ - m_sampleformat = sampleformat; -} - - - -void SND_WaveSlot::SetNumberOfChannels(unsigned int numberofchannels) -{ - m_numberofchannels = numberofchannels; -} - - - -void SND_WaveSlot::SetSampleRate(unsigned int samplerate) -{ - m_samplerate = samplerate; -} - - - -void SND_WaveSlot::SetBitRate(unsigned int bitrate) -{ - m_bitrate = bitrate; -} - - - -void SND_WaveSlot::SetNumberOfSamples(unsigned int numberofsamples) -{ - m_numberofsamples = numberofsamples; -} - - - -void SND_WaveSlot::SetFileSize(unsigned int filesize) -{ - m_filesize = filesize; -} - - - -const STR_String& SND_WaveSlot::GetSampleName() -{ - return m_samplename; -} - - - -bool SND_WaveSlot::IsLoaded() const -{ - return m_loaded; -} - - - -void* SND_WaveSlot::GetData() -{ - return m_data; -} - - - -unsigned int SND_WaveSlot::GetBuffer() const -{ - return m_buffer; -} - - - -unsigned int SND_WaveSlot::GetSampleFormat() const -{ - return m_sampleformat; -} - - - -unsigned int SND_WaveSlot::GetNumberOfChannels() const -{ - return m_numberofchannels; -} - - - -unsigned int SND_WaveSlot::GetSampleRate() const -{ - return m_samplerate; -} - - - -unsigned int SND_WaveSlot::GetBitRate() const -{ - return m_bitrate; -} - - - -unsigned int SND_WaveSlot::GetNumberOfSamples() const -{ - return m_numberofsamples; -} - - - -unsigned int SND_WaveSlot::GetFileSize() const -{ - return m_filesize; -} diff --git a/intern/SoundSystem/make/msvc_6_0/SoundSystem.dsp b/intern/SoundSystem/make/msvc_6_0/SoundSystem.dsp deleted file mode 100644 index 1bd973dfb6c..00000000000 --- a/intern/SoundSystem/make/msvc_6_0/SoundSystem.dsp +++ /dev/null @@ -1,206 +0,0 @@ -# Microsoft Developer Studio Project File - Name="SoundSystem" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=SoundSystem - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SoundSystem.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SoundSystem.mak" CFG="SoundSystem - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SoundSystem - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SoundSystem - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SoundSystem - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\soundsystem" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\soundsystem" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../../../../lib/windows/string/include" /I "../../../../../lib/windows/moto/include" /I "../../dummy" /I "../../openal" /I "..\..\..\string" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\soundsystem\libSoundSystem.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\SoundSystem\include\*.h ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\soundsystem\*.lib ..\..\..\..\..\lib\windows\SoundSystem\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "SoundSystem - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SoundSystem___Win32_Debug" -# PROP BASE Intermediate_Dir "SoundSystem___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\soundsystem\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\soundsystem\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../../" /I "../../../../../lib/windows/string/include" /I "../../../../../lib/windows/moto/include" /I "../../dummy" /I "../../openal" /I "..\..\..\string" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\soundsystem\debug\libSoundSystem.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\SoundSystem\include\*.h ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\soundsystem\debug\*.lib ..\..\..\..\..\lib\windows\SoundSystem\lib\debug\*.a ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "SoundSystem - Win32 Release" -# Name "SoundSystem - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\intern\SND_AudioDevice.cpp -# End Source File -# Begin Source File - -SOURCE="..\..\intern\SND_C-api.cpp" -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_CDObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_DeviceManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_IdObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_Scene.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_SoundListener.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_SoundObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_Utils.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_WaveCache.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_WaveSlot.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\intern\SND_AudioDevice.h -# End Source File -# Begin Source File - -SOURCE="..\..\SND_C-api.h" -# End Source File -# Begin Source File - -SOURCE=..\..\SND_CDObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_DependKludge.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_DeviceManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_IAudioDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_IdObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_Object.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_Scene.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_SoundListener.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_SoundObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_Utils.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_WaveCache.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_WaveSlot.h -# End Source File -# Begin Source File - -SOURCE=..\..\SoundDefines.h -# End Source File -# End Group -# End Target -# End Project diff --git a/intern/SoundSystem/make/msvc_6_0/dummy/DummySoundSystem.dsp b/intern/SoundSystem/make/msvc_6_0/dummy/DummySoundSystem.dsp deleted file mode 100644 index 2bf372d0382..00000000000 --- a/intern/SoundSystem/make/msvc_6_0/dummy/DummySoundSystem.dsp +++ /dev/null @@ -1,103 +0,0 @@ -# Microsoft Developer Studio Project File - Name="DummySoundSystem" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=DummySoundSystem - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "DummySoundSystem.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "DummySoundSystem.mak" CFG="DummySoundSystem - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "DummySoundSystem - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "DummySoundSystem - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "DummySoundSystem - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\dummy\libDummySoundSystem.lib" - -!ELSEIF "$(CFG)" == "DummySoundSystem - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy\debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\dummy\debug\libDummySoundSystem.lib" - -!ENDIF - -# Begin Target - -# Name "DummySoundSystem - Win32 Release" -# Name "DummySoundSystem - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\dummy\SND_DummyDevice.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\dummy\SND_DummyDevice.h -# End Source File -# End Group -# End Target -# End Project diff --git a/intern/SoundSystem/make/msvc_6_0/openal/OpenALSoundSystem.dsp b/intern/SoundSystem/make/msvc_6_0/openal/OpenALSoundSystem.dsp deleted file mode 100644 index ef0c10e8eff..00000000000 --- a/intern/SoundSystem/make/msvc_6_0/openal/OpenALSoundSystem.dsp +++ /dev/null @@ -1,106 +0,0 @@ -# Microsoft Developer Studio Project File - Name="OpenALSoundSystem" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=OpenALSoundSystem - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "OpenALSoundSystem.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "OpenALSoundSystem.mak" CFG="OpenALSoundSystem - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "OpenALSoundSystem - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "OpenALSoundSystem - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "OpenALSoundSystem - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\SoundSystem\sdl" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /I "..\..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\..\lib\windows\sdl\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\openal\libOpenALSoundSystem.lib" - -!ELSEIF "$(CFG)" == "OpenALSoundSystem - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "OpenALSoundSystem___Win32_Debug" -# PROP BASE Intermediate_Dir "OpenALSoundSystem___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal\debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\SoundSystem\sdl" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /I "..\..\..\..\..\..\lib\windows\sdl\include" /I "..\..\..\..\..\..\lib\windows\openal\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\openal\debug\libOpenALSoundSystem.lib" - -!ENDIF - -# Begin Target - -# Name "OpenALSoundSystem - Win32 Release" -# Name "OpenALSoundSystem - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\openal\SND_OpenALDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\sdl\SND_SDLCDDevice.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\openal\SND_OpenALDevice.h -# End Source File -# End Group -# End Target -# End Project diff --git a/intern/SoundSystem/make/msvc_7_0/SoundSystem.vcproj b/intern/SoundSystem/make/msvc_7_0/SoundSystem.vcproj deleted file mode 100644 index f0952c582b7..00000000000 --- a/intern/SoundSystem/make/msvc_7_0/SoundSystem.vcproj +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/intern/SoundSystem/make/msvc_7_0/dummy/DummySoundSystem.vcproj b/intern/SoundSystem/make/msvc_7_0/dummy/DummySoundSystem.vcproj deleted file mode 100644 index 103b589e732..00000000000 --- a/intern/SoundSystem/make/msvc_7_0/dummy/DummySoundSystem.vcproj +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/intern/SoundSystem/make/msvc_7_0/openal/OpenALSoundSystem.vcproj b/intern/SoundSystem/make/msvc_7_0/openal/OpenALSoundSystem.vcproj deleted file mode 100644 index 8ce971ac1aa..00000000000 --- a/intern/SoundSystem/make/msvc_7_0/openal/OpenALSoundSystem.vcproj +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj b/intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj deleted file mode 100644 index bd75fe88d43..00000000000 --- a/intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj +++ /dev/null @@ -1,447 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj b/intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj deleted file mode 100644 index 2109d92d430..00000000000 --- a/intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj b/intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj deleted file mode 100644 index 5593f00cb2b..00000000000 --- a/intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/intern/SoundSystem/openal/Makefile b/intern/SoundSystem/openal/Makefile deleted file mode 100644 index b28ab628d4c..00000000000 --- a/intern/SoundSystem/openal/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# -# $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. -# -# ***** END GPL LICENSE BLOCK ***** -# -# - -LIBNAME = OpenALSoundSystem -DIR = $(OCGDIR)/intern/$(LIBNAME) - -include nan_compile.mk - -CCFLAGS += $(LEVEL_1_CPP_WARNINGS) - -CPPFLAGS += -I$(NAN_OPENAL)/include -CPPFLAGS += -I$(NAN_STRING)/include -CPPFLAGS += -I$(NAN_MOTO)/include -CPPFLAGS += -I../intern -CPPFLAGS += -I.. -CPPFLAGS += -I. -CPPFLAGS += -I../sdl diff --git a/intern/SoundSystem/openal/SND_OpenALDevice.cpp b/intern/SoundSystem/openal/SND_OpenALDevice.cpp deleted file mode 100644 index 480f4ff6d74..00000000000 --- a/intern/SoundSystem/openal/SND_OpenALDevice.cpp +++ /dev/null @@ -1,854 +0,0 @@ -/* - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - * SND_OpenALDevice derived from SND_IAudioDevice - */ - -#ifdef WIN32 -#pragma warning (disable:4786) // get rid of stupid stl-visual compiler debug warning -#endif //WIN32 - -#include "SND_OpenALDevice.h" -#ifndef __APPLE__ -#include "SND_SDLCDDevice.h" -#endif -#include "SoundDefines.h" - -#include "SND_Utils.h" - -#ifdef APPLE_FRAMEWORK_FIX -#include -#include -#else -#include -#include -#endif - -#include -#include -#if defined(WIN32) -#include -#else -#include -#endif -#include - -#include - -/*************************** ALUT replacement *****************************/ - -/* instead of relying on alut, we just implement our own - * WAV loading functions, hopefully more reliable */ - -#include - -typedef struct /* WAV File-header */ -{ - ALubyte Id[4]; - ALsizei Size; - ALubyte Type[4]; -} WAVFileHdr_Struct; - -typedef struct /* WAV Fmt-header */ -{ - ALushort Format; - ALushort Channels; - ALuint SamplesPerSec; - ALuint BytesPerSec; - ALushort BlockAlign; - ALushort BitsPerSample; -} WAVFmtHdr_Struct; - -typedef struct /* WAV FmtEx-header */ -{ - ALushort Size; - ALushort SamplesPerBlock; -} WAVFmtExHdr_Struct; - -typedef struct /* WAV Smpl-header */ -{ - ALuint Manufacturer; - ALuint Product; - ALuint SamplePeriod; - ALuint Note; - ALuint FineTune; - ALuint SMPTEFormat; - ALuint SMPTEOffest; - ALuint Loops; - ALuint SamplerData; - struct - { - ALuint Identifier; - ALuint Type; - ALuint Start; - ALuint End; - ALuint Fraction; - ALuint Count; - } Loop[1]; -} WAVSmplHdr_Struct; - -typedef struct /* WAV Chunk-header */ -{ - ALubyte Id[4]; - ALuint Size; -} WAVChunkHdr_Struct; - -static void *SND_loadFileIntoMemory(const char *filename, int *len_r) -{ - FILE *fp= fopen(filename, "rb"); - void *data; - - if (!fp) { - *len_r= -1; - return NULL; - } - - fseek(fp, 0L, SEEK_END); - *len_r= ftell(fp); - fseek(fp, 0L, SEEK_SET); - - data= malloc(*len_r); - if (!data) { - *len_r= -1; - return NULL; - } - - if (fread(data, *len_r, 1, fp)!=1) { - *len_r= -1; - free(data); - return NULL; - } - - return data; -} - -#define TEST_SWITCH_INT(a) if(big_endian) { \ - char s_i, *p_i; \ - p_i= (char *)&(a); \ - s_i=p_i[0]; p_i[0]=p_i[3]; p_i[3]=s_i; \ - s_i=p_i[1]; p_i[1]=p_i[2]; p_i[2]=s_i; } - -#define TEST_SWITCH_SHORT(a) if(big_endian) { \ - char s_i, *p_i; \ - p_i= (char *)&(a); \ - s_i=p_i[0]; p_i[0]=p_i[1]; p_i[1]=s_i; } - -static int stream_read(void *out, ALbyte **stream, ALsizei size, ALsizei *memsize) -{ - if(size <= *memsize) { - memcpy(out, *stream, size); - return 1; - } - else { - memset(out, 0, size); - return 0; - } -} - -static int stream_skip(ALbyte **stream, ALsizei size, ALsizei *memsize) -{ - if(size <= *memsize) { - *stream += size; - *memsize -= size; - return 1; - } - else - return 0; -} - -ALvoid SND_alutLoadWAVMemory(ALbyte *memory,ALsizei memsize,ALenum *format,ALvoid **data,ALsizei *size,ALsizei *freq,ALboolean *loop) -{ - WAVChunkHdr_Struct ChunkHdr; - WAVFmtExHdr_Struct FmtExHdr; - WAVFileHdr_Struct FileHdr; - WAVSmplHdr_Struct SmplHdr; - WAVFmtHdr_Struct FmtHdr; - ALbyte *Stream= memory; - int test_endian= 1; - int big_endian= !((char*)&test_endian)[0]; - - *format=AL_FORMAT_MONO16; - *data=NULL; - *size=0; - *freq=22050; - *loop=AL_FALSE; - - if(!Stream) - return; - - stream_read(&FileHdr,&Stream,sizeof(WAVFileHdr_Struct),&memsize); - stream_skip(&Stream,sizeof(WAVFileHdr_Struct),&memsize); - - TEST_SWITCH_INT(FileHdr.Size); - FileHdr.Size=((FileHdr.Size+1)&~1)-4; - - while((FileHdr.Size!=0) && stream_read(&ChunkHdr,&Stream,sizeof(WAVChunkHdr_Struct),&memsize)) - { - TEST_SWITCH_INT(ChunkHdr.Size); - stream_skip(&Stream,sizeof(WAVChunkHdr_Struct),&memsize); - - if (!memcmp(ChunkHdr.Id,"fmt ",4)) - { - stream_read(&FmtHdr,&Stream,sizeof(WAVFmtHdr_Struct),&memsize); - - TEST_SWITCH_SHORT(FmtHdr.Format); - TEST_SWITCH_SHORT(FmtHdr.Channels); - TEST_SWITCH_INT(FmtHdr.SamplesPerSec); - TEST_SWITCH_INT(FmtHdr.BytesPerSec); - TEST_SWITCH_SHORT(FmtHdr.BlockAlign); - TEST_SWITCH_SHORT(FmtHdr.BitsPerSample); - - if (FmtHdr.Format==0x0001) - { - *format=(FmtHdr.Channels==1? - (FmtHdr.BitsPerSample==8?AL_FORMAT_MONO8:AL_FORMAT_MONO16): - (FmtHdr.BitsPerSample==8?AL_FORMAT_STEREO8:AL_FORMAT_STEREO16)); - *freq=FmtHdr.SamplesPerSec; - } - else - { - stream_read(&FmtExHdr,&Stream,sizeof(WAVFmtExHdr_Struct),&memsize); - TEST_SWITCH_SHORT(FmtExHdr.Size); - TEST_SWITCH_SHORT(FmtExHdr.SamplesPerBlock); - } - } - else if (!memcmp(ChunkHdr.Id,"data",4)) - { - if (FmtHdr.Format==0x0001) - { - if((ALsizei)ChunkHdr.Size <= memsize) - { - *size=ChunkHdr.Size; - *data=malloc(ChunkHdr.Size+31); - - if (*data) { - stream_read(*data,&Stream,ChunkHdr.Size,&memsize); - memset(((char *)*data)+ChunkHdr.Size,0,31); - - if(FmtHdr.BitsPerSample == 16 && big_endian) { - int a, len= *size/2; - short *samples= (short*)*data; - - for(a=0; aStopCD(); - SND_CDObject::DisposeSystem(); - } -#ifndef __APPLE__ - if (m_cdrom) - delete m_cdrom; -#endif - if (m_device) - alcCloseDevice((ALCdevice*) m_device); -} - - -SND_WaveSlot* SND_OpenALDevice::LoadSample(const STR_String& name, - void* memlocation, - int size) -{ - SND_WaveSlot* waveslot = NULL; - STR_String samplename = name; - - if (m_audio) - { - /* create the waveslot */ - waveslot = m_wavecache->GetWaveSlot(samplename); - - /* do we support this sample? */ - if (SND_IsSampleValid(name, memlocation)) - { - if (waveslot) - { - bool freemem = false; - int buffer = waveslot->GetBuffer(); - void* data = NULL; - char loop = 'a'; - int sampleformat, bitrate, numberofchannels; - ALenum al_error = alGetError(); - ALsizei samplerate, numberofsamples; // openal_2.14+ - - /* Give them some safe defaults just incase */ - bitrate = numberofchannels = 0; - - if (!(size && memlocation)) { - memlocation = SND_loadFileIntoMemory(samplename.Ptr(), &size); - freemem = true; - } - - /* load the sample from memory? */ - if (size && memlocation) - { - waveslot->SetFileSize(size); - - /* what was (our) buffer? */ - int buffer = waveslot->GetBuffer(); - - /* get some info out of the sample */ - SND_GetSampleInfo((signed char*)memlocation, waveslot); - numberofchannels = SND_GetNumberOfChannels(memlocation); - bitrate = SND_GetBitRate(memlocation); - - /* load the sample into openal */ - SND_alutLoadWAVMemory((ALbyte*)memlocation, size, &sampleformat, &data, &numberofsamples, &samplerate, &loop); - /* put it in the buffer */ - alBufferData(m_buffers[buffer], sampleformat, data, numberofsamples, samplerate); - } - - if(freemem) - free(memlocation); - - /* fill the waveslot with info */ - al_error = alGetError(); - if (al_error == AL_NO_ERROR && m_buffers[buffer]) - { - waveslot->SetData(data); - waveslot->SetSampleFormat(sampleformat); - waveslot->SetNumberOfChannels(numberofchannels); - waveslot->SetSampleRate(samplerate); - waveslot->SetBitRate(bitrate); - waveslot->SetNumberOfSamples(numberofsamples); - - /* if the loading succeeded, mark the waveslot */ - waveslot->SetLoaded(true); - } - else - { - /* or when it failed, free the waveslot */ - m_wavecache->RemoveSample(waveslot->GetSampleName(), waveslot->GetBuffer()); - waveslot = NULL; - } - - /* and free the original stuff (copy was made in openal) */ - SND_alutUnloadWAV(sampleformat, data, numberofsamples, samplerate); - } - } - else - { - /* sample not supported, remove waveslot */ - m_wavecache->RemoveSample(waveslot->GetSampleName(), waveslot->GetBuffer()); - waveslot = NULL; - } - } - return waveslot; -} - - - -// listener's and general stuff ////////////////////////////////////////////////////// - - - -/* sets the global dopplervelocity */ -void SND_OpenALDevice::SetDopplerVelocity(MT_Scalar dopplervelocity) const -{ - alDopplerVelocity ((float)dopplervelocity); -} - - - -/* sets the global dopplerfactor */ -void SND_OpenALDevice::SetDopplerFactor(MT_Scalar dopplerfactor) const -{ - alDopplerFactor ((float)dopplerfactor); -} - - - -/* sets the global rolloff factor */ -void SND_OpenALDevice::SetListenerRollOffFactor(MT_Scalar rollofffactor) const -{ - // not implemented in openal -} - - - -void SND_OpenALDevice::NextFrame() const -{ - // CD -#ifndef __APPLE__ - m_cdrom->NextFrame(); -#endif - // not needed by openal -} - - - -// set the gain for the listener -void SND_OpenALDevice::SetListenerGain(float gain) const -{ - alListenerf (AL_GAIN, gain); -} - - - -void SND_OpenALDevice::InitListener() -{ - // initialize the listener with these values that won't change - // (as long as we can have only one listener) - // now we can superimpose all listeners on each other (for they - // have the same settings) - float lispos[3] = {0,0,0}; - float lisvel[3] = {0,0,0}; - float lisori[6] = {0,0,1,0,-1,0}; - - alListenerfv(AL_POSITION, lispos); - alListenerfv(AL_VELOCITY, lisvel); - alListenerfv(AL_ORIENTATION, lisori); -} - - - -// source playstate stuff //////////////////////////////////////////////////////////// - - - -/* sets the buffer */ -void SND_OpenALDevice::SetObjectBuffer(int id, unsigned int buffer) -{ - alSourcei (m_sources[id], AL_BUFFER, m_buffers[buffer]); -} - - - -// check if the sound's still playing -int SND_OpenALDevice::GetPlayState(int id) -{ - int alstate = 0; - int result = 0; - -#ifdef __APPLE__ - alGetSourcei(m_sources[id], AL_SOURCE_STATE, &alstate); -#else - alGetSourceiv(m_sources[id], AL_SOURCE_STATE, &alstate); -#endif - - switch(alstate) - { - case AL_INITIAL: - { - result = SND_INITIAL; - break; - } - case AL_PLAYING: - { - result = SND_PLAYING; - break; - } - case AL_PAUSED: - { - result = SND_PAUSED; - break; - } - case AL_STOPPED: - { - result = SND_STOPPED; - break; - } - default: - result = SND_UNKNOWN; - } - - return result; -} - - - -// make the source play -void SND_OpenALDevice::PlayObject(int id) -{ - alSourcePlay(m_sources[id]); -} - - - -// make the source stop -void SND_OpenALDevice::StopObject(int id) const -{ - float obpos[3] = {0,0,0}; - float obvel[3] = {0,0,0}; - - alSourcefv(m_sources[id], AL_POSITION, obpos); - alSourcefv(m_sources[id], AL_VELOCITY, obvel); - - alSourcef(m_sources[id], AL_GAIN, 1.0); - alSourcef(m_sources[id], AL_PITCH, 1.0); - alSourcei(m_sources[id], AL_LOOPING, AL_FALSE); - alSourceStop(m_sources[id]); -} - - - -// stop all sources -void SND_OpenALDevice::StopAllObjects() -{ - alSourceStopv(NUM_SOURCES, m_sources); -} - - - -// pause the source -void SND_OpenALDevice::PauseObject(int id) const -{ - alSourcePause(m_sources[id]); -} - - - -// source properties stuff //////////////////////////////////////////////////////////// - - - -// give openal the object's pitch -void SND_OpenALDevice::SetObjectPitch(int id, MT_Scalar pitch) const -{ - alSourcef (m_sources[id], AL_PITCH, (float)pitch); -} - - - -// give openal the object's gain -void SND_OpenALDevice::SetObjectGain(int id, MT_Scalar gain) const -{ - alSourcef (m_sources[id], AL_GAIN, (float)gain); -} - - - -// give openal the object's looping -void SND_OpenALDevice::SetObjectLoop(int id, unsigned int loopmode) const -{ - if (loopmode == SND_LOOP_OFF) - { - //printf("%d - ", id); - alSourcei (m_sources[id], AL_LOOPING, AL_FALSE); - } - else - alSourcei (m_sources[id], AL_LOOPING, AL_TRUE); -} - -void SND_OpenALDevice::SetObjectLoopPoints(int id, unsigned int loopstart, unsigned int loopend) const -{ - - -} - - -void SND_OpenALDevice::SetObjectMinGain(int id, MT_Scalar mingain) const -{ - alSourcef (m_sources[id], AL_MIN_GAIN, (float)mingain); -} - - - -void SND_OpenALDevice::SetObjectMaxGain(int id, MT_Scalar maxgain) const -{ - alSourcef (m_sources[id], AL_MAX_GAIN, (float)maxgain); -} - - - -void SND_OpenALDevice::SetObjectRollOffFactor(int id, MT_Scalar rollofffactor) const -{ - alSourcef (m_sources[id], AL_ROLLOFF_FACTOR, (float)rollofffactor); -} - - - -void SND_OpenALDevice::SetObjectReferenceDistance(int id, MT_Scalar referencedistance) const -{ - alSourcef (m_sources[id], AL_REFERENCE_DISTANCE, (float)referencedistance); -} - - - -// give openal the object's position -void SND_OpenALDevice::ObjectIs2D(int id) const -{ - float obpos[3] = {0,0,0}; - float obvel[3] = {0,0,0}; - - alSourcefv(m_sources[id], AL_POSITION, obpos); - alSourcefv(m_sources[id], AL_VELOCITY, obvel); -} - - - -void SND_OpenALDevice::SetObjectTransform(int id, - const MT_Vector3& position, - const MT_Vector3& velocity, - const MT_Matrix3x3& orientation, - const MT_Vector3& lisposition, - const MT_Scalar& rollofffactor) const -{ - float obpos[3]; - float obvel[3]; - - obpos[0] = (float)position[0] * (float)rollofffactor; //x (l/r) - obpos[1] = (float)position[1] * (float)rollofffactor; - obpos[2] = (float)position[2] * (float)rollofffactor; - - alSourcefv(m_sources[id], AL_POSITION, obpos); - - velocity.getValue(obvel); - alSourcefv(m_sources[id], AL_VELOCITY, obvel); -} - -void SND_OpenALDevice::PlayCD(int track) const -{ -#ifndef __APPLE__ - m_cdrom->PlayCD(track); -#endif -} - - -void SND_OpenALDevice::PauseCD(bool pause) const -{ -#ifndef __APPLE__ - m_cdrom->PauseCD(pause); -#endif -} - -void SND_OpenALDevice::StopCD() const -{ -#ifndef __APPLE__ - SND_CDObject* pCD = SND_CDObject::Instance(); - - if (pCD && pCD->GetUsed()) - { - m_cdrom->StopCD(); - } -#endif -} - -void SND_OpenALDevice::SetCDPlaymode(int playmode) const -{ -#ifndef __APPLE__ - m_cdrom->SetCDPlaymode(playmode); -#endif -} - -void SND_OpenALDevice::SetCDGain(MT_Scalar gain) const -{ -#ifndef __APPLE__ - m_cdrom->SetCDGain(gain); -#endif -} diff --git a/intern/SoundSystem/openal/SND_OpenALDevice.h b/intern/SoundSystem/openal/SND_OpenALDevice.h deleted file mode 100644 index a7b97cc314f..00000000000 --- a/intern/SoundSystem/openal/SND_OpenALDevice.h +++ /dev/null @@ -1,107 +0,0 @@ -/** - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ -#ifndef SND_OPENALDEVICE -#define SND_OPENALDEVICE - -#include "SND_AudioDevice.h" -#include "SoundDefines.h" - -struct SDL_CD; - -class SND_OpenALDevice : public SND_AudioDevice -{ -public: - SND_OpenALDevice(); - virtual ~SND_OpenALDevice(); - - SND_WaveSlot* LoadSample(const STR_String& samplename, - void* memlocation, - int size); - - void InitListener(); - void SetListenerGain(float gain) const; - void SetDopplerVelocity(MT_Scalar dopplervelocity) const; - void SetDopplerFactor(MT_Scalar dopplerfactor) const; - void SetListenerRollOffFactor(MT_Scalar rollofffactor) const; - - void MakeCurrent() const; - - void NextFrame() const; - void UseCD() const; - - void SetObjectBuffer(int id, unsigned int buffer); - - int GetPlayState(int id); - void PlayObject(int id); - void StopObject(int id) const; - void StopAllObjects(); - void PauseObject(int id) const; - - void SetObjectLoop(int id, unsigned int loopmode) const; - void SetObjectLoopPoints(int id, unsigned int loopstart, unsigned int loopend) const; - void SetObjectPitch(int id, MT_Scalar pitch) const; - void SetObjectGain(int id, MT_Scalar gain) const; - void SetObjectMinGain(int id, MT_Scalar mingain) const; - void SetObjectMaxGain(int id, MT_Scalar maxgain) const; - void SetObjectRollOffFactor(int id, MT_Scalar rolloff) const; - void SetObjectReferenceDistance(int id, MT_Scalar distance) const; - - void SetObjectTransform(int id, - const MT_Vector3& position, - const MT_Vector3& velocity, - const MT_Matrix3x3& orientation, - const MT_Vector3& lisposition, - const MT_Scalar& rollofffactor) const; - void ObjectIs2D(int id) const; - - void PlayCD(int track) const; - void PauseCD(bool pause) const; - void StopCD() const; - void SetCDPlaymode(int playmode) const; - void SetCDGain(MT_Scalar gain) const; - - void StartUsingDSP() {}; - float* GetSpectrum() { return NULL; } - void StopUsingDSP() {}; - -private: - void* m_context; - void* m_device; - - unsigned int m_buffers[NUM_BUFFERS]; - unsigned int m_sources[NUM_SOURCES]; - bool m_buffersinitialized; - bool m_sourcesinitialized; -#ifndef __APPLE__ - class SND_SDLCDDevice* m_cdrom; -#endif -}; - -#endif //SND_OPENALDEVICE - diff --git a/intern/SoundSystem/openal/pthread_cancel.cpp b/intern/SoundSystem/openal/pthread_cancel.cpp deleted file mode 100644 index bb36d1dd136..00000000000 --- a/intern/SoundSystem/openal/pthread_cancel.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - * FreeBSD 3.4 does not yet have pthread_cancel (3.5 and above do) - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifdef __FreeBSD__ - -#include - -#if (__FreeBSD_version < 350000) -#include - -#define FD_READ 0x1 -#define _FD_LOCK(_fd,_type,_ts) _thread_fd_lock(_fd, _type, _ts) -#define _FD_UNLOCK(_fd,_type) _thread_fd_unlock(_fd, _type) - -int pthread_cancel(pthread_t pthread) { - pthread_exit(NULL); - return 0; -} - -long fpathconf(int fd, int name) -{ - long ret; - - if ((ret = _FD_LOCK(fd, FD_READ, NULL)) == 0) { - ret = _thread_sys_fpathconf(fd, name); - _FD_UNLOCK(fd, FD_READ); - } - return ret; -} - -#endif - -int pthread_atfork(void *a, void *b, void *c) { - return 0; -} - -#endif diff --git a/intern/SoundSystem/sdl/Makefile b/intern/SoundSystem/sdl/Makefile deleted file mode 100644 index 669d7110797..00000000000 --- a/intern/SoundSystem/sdl/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -# -# $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. -# -# ***** END GPL LICENSE BLOCK ***** -# -# - -LIBNAME = SDLSoundSystem -DIR = $(OCGDIR)/intern/$(LIBNAME) - -include nan_compile.mk - -CCFLAGS += $(LEVEL_1_CPP_WARNINGS) - -CPPFLAGS += $(NAN_SDLCFLAGS) -CPPFLAGS += -I$(NAN_STRING)/include -CPPFLAGS += -I$(NAN_MOTO)/include -CPPFLAGS += -I../intern -CPPFLAGS += -I.. -CPPFLAGS += -I. diff --git a/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp b/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp deleted file mode 100644 index 5054c39e8a1..00000000000 --- a/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp +++ /dev/null @@ -1,171 +0,0 @@ -/* - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - * SND_SDLCDDevice - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifdef WIN32 -#pragma warning (disable:4786) // get rid of stupid stl-visual compiler debug warning -#endif //WIN32 - -#include "MT_Scalar.h" - -#include "SND_SDLCDDevice.h" -#include "SoundDefines.h" - -#ifndef DISABLE_SDL -#include -#else -#include -#endif - -SND_SDLCDDevice::SND_SDLCDDevice() : - m_cdrom(NULL), - m_cdplaying(false), - m_cdtrack(0), - m_cdplaymode(SND_CD_TRACK), - m_frame(0) -{ - init(); -} - -void SND_SDLCDDevice::init() -{ -#ifdef DISABLE_SDL - fprintf(stderr, "Blender compiled without SDL, no CDROM support\n"); - return; -#else - if (SDL_InitSubSystem(SDL_INIT_CDROM)) - { - fprintf(stderr, "Error initializing CDROM\n"); - return; - } - - /* Check for CD drives */ - if(!SDL_CDNumDrives()) - { - /* None found */ - fprintf(stderr, "No CDROM devices available\n"); - return; - } - - /* Open the default drive */ - m_cdrom = SDL_CDOpen(0); - - /* Did if open? Check if cdrom is NULL */ - if(!m_cdrom) - { - fprintf(stderr, "Couldn't open drive: %s\n", SDL_GetError()); - return; - } -#endif -} - -SND_SDLCDDevice::~SND_SDLCDDevice() -{ -#ifndef DISABLE_SDL - StopCD(); - SDL_CDClose(m_cdrom); -#endif -} - -void SND_SDLCDDevice::NextFrame() -{ -#ifndef DISABLE_SDL - m_frame++; - m_frame &= 127; - - if (!m_frame && m_cdrom && m_cdplaying && SDL_CDStatus(m_cdrom) == CD_STOPPED) - { - switch (m_cdplaymode) - { - case SND_CD_ALL: - if (m_cdtrack < m_cdrom->numtracks) - PlayCD(m_cdtrack + 1); - else - m_cdplaying = false; - break; - default: - case SND_CD_TRACK: - m_cdplaying = false; - break; - case SND_CD_TRACKLOOP: - PlayCD(m_cdtrack); - break; - } - - } -#endif -} - -void SND_SDLCDDevice::PlayCD(int track) -{ -#ifndef DISABLE_SDL - if ( m_cdrom && CD_INDRIVE(SDL_CDStatus(m_cdrom)) ) { - SDL_CDPlayTracks(m_cdrom, track-1, 0, track, 0); - m_cdplaying = true; - m_cdtrack = track; - } -#endif -} - - -void SND_SDLCDDevice::PauseCD(bool pause) -{ -#ifndef DISABLE_SDL - if (!m_cdrom) - return; - - if (pause) - SDL_CDPause(m_cdrom); - else - SDL_CDResume(m_cdrom); -#endif -} - -void SND_SDLCDDevice::StopCD() -{ -#ifndef DISABLE_SDL - if (m_cdrom) - SDL_CDStop(m_cdrom); - m_cdplaying = false; -#endif -} - -void SND_SDLCDDevice::SetCDPlaymode(int playmode) -{ - m_cdplaymode = playmode; -} - -void SND_SDLCDDevice::SetCDGain(MT_Scalar gain) -{ - -} diff --git a/intern/SoundSystem/sdl/SND_SDLCDDevice.h b/intern/SoundSystem/sdl/SND_SDLCDDevice.h deleted file mode 100644 index 96600d53630..00000000000 --- a/intern/SoundSystem/sdl/SND_SDLCDDevice.h +++ /dev/null @@ -1,58 +0,0 @@ -/** - * $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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ -#ifndef SND_SDLCDDEVICE -#define SND_SDLCDDEVICE - -struct SDL_CD; - -class SND_SDLCDDevice -{ -public: - SND_SDLCDDevice(); - ~SND_SDLCDDevice(); - - void NextFrame(); - - void PlayCD(int track); - void PauseCD(bool pause); - void StopCD(); - void SetCDPlaymode(int playmode); - void SetCDGain(MT_Scalar gain); - -private: - void init(); - /* CD Audio */ - SDL_CD* m_cdrom; - bool m_cdplaying; - int m_cdtrack; - unsigned char m_cdplaymode; - unsigned char m_frame; -}; - -#endif diff --git a/intern/audaspace/SDL/AUD_SDLMixerFactory.cpp b/intern/audaspace/SDL/AUD_SDLMixerFactory.cpp index 1633a1498fa..e0b0c7d3603 100644 --- a/intern/audaspace/SDL/AUD_SDLMixerFactory.cpp +++ b/intern/audaspace/SDL/AUD_SDLMixerFactory.cpp @@ -26,6 +26,8 @@ #include "AUD_SDLMixerFactory.h" #include "AUD_SDLMixerReader.h" +#include + AUD_SDLMixerFactory::AUD_SDLMixerFactory(AUD_IReader* reader, AUD_Specs specs) : AUD_MixerFactory(reader, specs) {} diff --git a/intern/audaspace/SDL/AUD_SDLMixerReader.cpp b/intern/audaspace/SDL/AUD_SDLMixerReader.cpp index 1a0d990eaf2..ec61f99f02d 100644 --- a/intern/audaspace/SDL/AUD_SDLMixerReader.cpp +++ b/intern/audaspace/SDL/AUD_SDLMixerReader.cpp @@ -26,6 +26,8 @@ #include "AUD_SDLMixerReader.h" #include "AUD_Buffer.h" +#include + inline Uint16 AUD_TO_SDL(AUD_SampleFormat format) { // SDL only supports 8 and 16 bit audio -- cgit v1.2.3