cmake option to build without an audio library.

This commit is contained in:
Campbell Barton
2011-06-23 09:27:56 +00:00
parent 9c2aa3d0ff
commit 2023db70a8
28 changed files with 256 additions and 75 deletions

View File

@@ -104,6 +104,9 @@ option(WITH_BULLET "Enable Bullet (Physics Engine)" ON)
option(WITH_GAMEENGINE "Enable Game Engine" ON)
option(WITH_PLAYER "Build Player" OFF)
option(WITH_AUDASPACE "Build with blenders audio library" ON)
mark_as_advanced(WITH_AUDASPACE)
option(WITH_HEADLESS "Build without graphical support (renderfarm, server mode only)" OFF)
mark_as_advanced(WITH_HEADLESS)
@@ -200,6 +203,10 @@ if(NOT WITH_GAMEENGINE AND WITH_PLAYER)
message(FATAL_ERROR "WITH_PLAYER requires WITH_GAMEENGINE")
endif()
if(WITH_AUDASPACE AND (WITH_OPENAL OR WITH_SDL OR WITH_JACK))
message(FATAL_ERROR "WITH_OPENAL/WITH_SDL/WITH_JACK require WITH_AUDASPACE")
endif()
if(NOT WITH_SAMPLERATE AND (WITH_OPENAL OR WITH_SDL OR WITH_JACK))
message(FATAL_ERROR "WITH_OPENAL/WITH_SDL/WITH_JACK require WITH_SAMPLERATE")
endif()

View File

@@ -306,6 +306,11 @@ if env['BF_NO_ELBEEM'] == 1:
env['CXXFLAGS'].append('-DDISABLE_ELBEEM')
env['CCFLAGS'].append('-DDISABLE_ELBEEM')
# TODO, make optional
env['CPPFLAGS'].append('-DWITH_AUDASPACE')
env['CXXFLAGS'].append('-DWITH_AUDASPACE')
env['CCFLAGS'].append('-DWITH_AUDASPACE')
# lastly we check for root_build_dir ( we should not do before, otherwise we might do wrong builddir
B.root_build_dir = env['BF_BUILDDIR']
B.doc_build_dir = os.path.join(env['BF_INSTALLDIR'], 'doc')

View File

@@ -24,7 +24,6 @@
#
# ***** END GPL LICENSE BLOCK *****
add_subdirectory(audaspace)
add_subdirectory(string)
add_subdirectory(ghost)
add_subdirectory(guardedalloc)
@@ -35,6 +34,10 @@ add_subdirectory(opennl)
add_subdirectory(smoke)
add_subdirectory(mikktspace)
if(WITH_AUDASPACE)
add_subdirectory(audaspace)
endif()
if(WITH_MOD_FLUID)
add_subdirectory(elbeem)
endif()

View File

@@ -43,7 +43,6 @@ set(INC
../nodes
../editors/include
../render/extern/include
../../../intern/audaspace/intern
../../../intern/ffmpeg
../../../intern/bsp/extern ../blenfont
../../../intern/decimation/extern
@@ -237,6 +236,13 @@ set(SRC
add_definitions(-DGLEW_STATIC)
if(WITH_AUDASPACE)
list(APPEND INC
../../../intern/audaspace/intern
)
add_definitions(-DWITH_AUDASPACE)
endif()
if(WITH_BULLET)
list(APPEND INC ../../../extern/bullet2/src)
add_definitions(-DUSE_BULLET)

View File

@@ -73,7 +73,10 @@
#include "BKE_context.h"
#include "BKE_sound.h"
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
#ifdef WIN32
#define snprintf _snprintf
@@ -697,6 +700,7 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range)
}
seq->strip->len = seq->len;
case SEQ_SOUND:
#ifdef WITH_AUDASPACE
if(!seq->sound)
return;
seq->len = ceil(AUD_getInfo(seq->sound->playback_handle).length * FPS);
@@ -706,6 +710,9 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range)
seq->len = 0;
}
seq->strip->len = seq->len;
#else
return;
#endif
break;
case SEQ_SCENE:
{
@@ -3493,6 +3500,7 @@ Sequence *sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
return seq;
}
#ifdef WITH_AUDASPACE
Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
{
Scene *scene= CTX_data_scene(C); /* only for sound */
@@ -3550,6 +3558,15 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
return seq;
}
#else // WITH_AUDASPACE
Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
{
(void)C;
(void)seqbasep;
(void)seq_load;
return NULL;
}
#endif // WITH_AUDASPACE
Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
{

View File

@@ -21,7 +21,9 @@
#include "DNA_screen_types.h"
#include "DNA_sound_types.h"
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
#include "BKE_utildefines.h"
#include "BKE_global.h"
@@ -36,6 +38,62 @@
static int force_device = -1;
struct bSound* sound_new_file(struct Main *bmain, const char *filename)
{
bSound* sound = NULL;
char str[FILE_MAX];
char *path;
int len;
strcpy(str, filename);
path = /*bmain ? bmain->name :*/ G.main->name;
BLI_path_abs(str, path);
len = strlen(filename);
while(len > 0 && filename[len-1] != '/' && filename[len-1] != '\\')
len--;
sound = alloc_libblock(&bmain->sound, ID_SO, filename+len);
BLI_strncpy(sound->name, filename, FILE_MAX);
// XXX unused currently sound->type = SOUND_TYPE_FILE;
sound_load(bmain, sound);
if(!sound->playback_handle)
{
free_libblock(&bmain->sound, sound);
sound = NULL;
}
return sound;
}
void sound_free(struct bSound* sound)
{
if (sound->packedfile)
{
freePackedFile(sound->packedfile);
sound->packedfile = NULL;
}
#ifdef WITH_AUDASPACE
if(sound->handle)
{
AUD_unload(sound->handle);
sound->handle = NULL;
sound->playback_handle = NULL;
}
#endif // WITH_AUDASPACE
}
#ifdef WITH_AUDASPACE
#ifdef WITH_JACK
static void sound_sync_callback(void* data, int mode, float time)
{
@@ -123,40 +181,6 @@ void sound_exit(void)
AUD_exit();
}
struct bSound* sound_new_file(struct Main *bmain, const char *filename)
{
bSound* sound = NULL;
char str[FILE_MAX];
char *path;
int len;
strcpy(str, filename);
path = /*bmain ? bmain->name :*/ G.main->name;
BLI_path_abs(str, path);
len = strlen(filename);
while(len > 0 && filename[len-1] != '/' && filename[len-1] != '\\')
len--;
sound = alloc_libblock(&bmain->sound, ID_SO, filename+len);
BLI_strncpy(sound->name, filename, FILE_MAX);
// XXX unused currently sound->type = SOUND_TYPE_FILE;
sound_load(bmain, sound);
if(!sound->playback_handle)
{
free_libblock(&bmain->sound, sound);
sound = NULL;
}
return sound;
}
// XXX unused currently
#if 0
struct bSound* sound_new_buffer(struct bContext *C, struct bSound *source)
@@ -301,22 +325,6 @@ void sound_load(struct Main *bmain, struct bSound* sound)
}
}
void sound_free(struct bSound* sound)
{
if (sound->packedfile)
{
freePackedFile(sound->packedfile);
sound->packedfile = NULL;
}
if(sound->handle)
{
AUD_unload(sound->handle);
sound->handle = NULL;
sound->playback_handle = NULL;
}
}
static float sound_get_volume(Scene* scene, Sequence* sequence, float time)
{
AnimData *adt= BKE_animdata_from_id(&scene->id);
@@ -502,3 +510,34 @@ int sound_get_channels(struct bSound* sound)
return info.specs.channels;
}
#else // WITH_AUDASPACE
#include "BLI_utildefines.h"
int sound_define_from_str(const char *UNUSED(str)) { return -1;}
void sound_force_device(int UNUSED(device)) {}
void sound_init_once(void) {}
void sound_init(struct Main *UNUSED(bmain)) {}
void sound_exit(void) {}
void sound_cache(struct bSound* UNUSED(sound), int UNUSED(ignore)) { }
void sound_delete_cache(struct bSound* UNUSED(sound)) {}
void sound_load(struct Main *UNUSED(bmain), struct bSound* UNUSED(sound)) {}
void sound_create_scene(struct Scene *UNUSED(scene)) {}
void sound_destroy_scene(struct Scene *UNUSED(scene)) {}
void sound_mute_scene(struct Scene *UNUSED(scene), int UNUSED(muted)) {}
void* sound_scene_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; }
void* sound_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; }
void sound_remove_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle)) {}
void sound_mute_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle), char UNUSED(mute)) {}
void sound_move_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) {}
static void sound_start_play_scene(struct Scene *UNUSED(scene)) {}
void sound_play_scene(struct Scene *UNUSED(scene)) {}
void sound_stop_scene(struct Scene *UNUSED(scene)) {}
void sound_seek_scene(struct bContext *UNUSED(C)) {}
float sound_sync_scene(struct Scene *UNUSED(scene)) { return 0.0f; }
int sound_scene_playing(struct Scene *UNUSED(scene)) { return 0; }
int sound_read_sound_buffer(struct bSound* UNUSED(sound), float* UNUSED(buffer), int UNUSED(length), float UNUSED(start), float UNUSED(end)) { return 0; }
int sound_get_channels(struct bSound* UNUSED(sound)) { return 1; }
#endif // WITH_AUDASPACE

View File

@@ -49,7 +49,9 @@
#include "BLI_blenlib.h"
#include "AUD_C-API.h" /* must be before BKE_sound.h for define */
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
#include "BKE_global.h"
#include "BKE_idprop.h"

View File

@@ -28,7 +28,6 @@ set(INC
../../makesrna
../../windowmanager
../../../../intern/guardedalloc
../../../../intern/audaspace/intern
)
set(INC_SYS
@@ -41,4 +40,11 @@ set(SRC
sound_intern.h
)
if(WITH_AUDASPACE)
list(APPEND INC
../../../../intern/audaspace/intern
)
add_definitions(-DWITH_AUDASPACE)
endif()
blender_add_lib(bf_editor_sound "${SRC}" "${INC}" "${INC_SYS}")

View File

@@ -64,7 +64,9 @@
#include "WM_api.h"
#include "WM_types.h"
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
#include "ED_sound.h"
#include "ED_util.h"
@@ -81,6 +83,7 @@ static void open_init(bContext *C, wmOperator *op)
uiIDContextProperty(C, &pprop->ptr, &pprop->prop);
}
#ifdef WITH_AUDASPACE
static int open_exec(bContext *C, wmOperator *op)
{
char path[FILE_MAX];
@@ -131,6 +134,17 @@ static int open_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
#else //WITH_AUDASPACE
static int open_exec(bContext *UNUSED(C), wmOperator *op)
{
BKE_report(op->reports, RPT_ERROR, "Compiled without sound support");
return OPERATOR_CANCELLED;
}
#endif
static int open_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
if(!RNA_property_is_set(op->ptr, "relative_path"))

View File

@@ -28,7 +28,6 @@ set(INC
../../makesrna
../../windowmanager
../../../../intern/guardedalloc
../../../../intern/audaspace/intern
)
set(INC_SYS
@@ -47,4 +46,11 @@ set(SRC
graph_intern.h
)
if(WITH_AUDASPACE)
list(APPEND INC
../../../../intern/audaspace/intern
)
add_definitions(-DWITH_AUDASPACE)
endif()
blender_add_lib(bf_editor_space_graph "${SRC}" "${INC}" "${INC_SYS}")

View File

@@ -37,7 +37,9 @@
#include <string.h>
#include <float.h>
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
#include "MEM_guardedalloc.h"
@@ -1079,6 +1081,7 @@ static float fcurve_samplingcb_sound (FCurve *UNUSED(fcu), void *data, float eva
/* ------------------- */
#ifdef WITH_AUDASPACE
static int graphkeys_sound_bake_exec(bContext *C, wmOperator *op)
{
bAnimContext ac;
@@ -1149,6 +1152,17 @@ static int graphkeys_sound_bake_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
#else //WITH_AUDASPACE
static int graphkeys_sound_bake_exec(bContext *UNUSED(C), wmOperator *op)
{
BKE_report(op->reports, RPT_ERROR, "Compiled without sound support");
return OPERATOR_CANCELLED;
}
#endif //WITH_AUDASPACE
static int graphkeys_sound_bake_invoke (bContext *C, wmOperator *op, wmEvent *event)
{
bAnimContext ac;

View File

@@ -29,7 +29,6 @@ set(INC
../../makesrna
../../windowmanager
../../../../intern/guardedalloc
../../../../intern/audaspace/intern
)
set(INC_SYS
@@ -49,4 +48,11 @@ set(SRC
sequencer_intern.h
)
if(WITH_AUDASPACE)
list(APPEND INC
../../../../intern/audaspace/intern
)
add_definitions(-DWITH_AUDASPACE)
endif()
blender_add_lib(bf_editor_space_sequencer "${SRC}" "${INC}" "${INC_SYS}")

View File

@@ -70,7 +70,10 @@
#include "UI_view2d.h"
#include "BKE_sound.h"
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
/* own include */
#include "sequencer_intern.h"

View File

@@ -171,6 +171,10 @@ if(WITH_IMAGE_HDR)
add_definitions(-DWITH_HDR)
endif()
if(WITH_AUDASPACE)
add_definitions(-DWITH_AUDASPACE)
endif()
if(WITH_CODEC_QUICKTIME)
list(APPEND INC ../../quicktime)
add_definitions(-DWITH_QUICKTIME)

View File

@@ -45,7 +45,9 @@
#ifdef WITH_QUICKTIME
#include "quicktime_export.h"
#include "AUD_C-API.h"
# ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
# endif
#endif
#ifdef WITH_FFMPEG

View File

@@ -33,7 +33,6 @@ set(INC
../../windowmanager
../../editors/include
../../../../intern/guardedalloc
../../../../intern/audaspace/intern
)
set(INC_SYS
@@ -86,4 +85,11 @@ if(WITH_PYTHON_SAFETY)
add_definitions(-DWITH_PYTHON_SAFETY)
endif()
if(WITH_AUDASPACE)
list(APPEND INC
../../../intern/audaspace/intern
)
add_definitions(-DWITH_AUDASPACE)
endif()
blender_add_lib(bf_python "${SRC}" "${INC}" "${INC_SYS}")

View File

@@ -60,8 +60,6 @@
#include "../generic/blf_py_api.h"
#include "../generic/IDProp.h"
#include "AUD_PyInit.h"
PyObject *bpy_package_py= NULL;
PyDoc_STRVAR(bpy_script_paths_doc,

View File

@@ -179,7 +179,9 @@ static struct _inittab bpy_internal_modules[]= {
// {(char *)"mathutils.geometry", BPyInit_mathutils_geometry},
{(char *)"bgl", BPyInit_bgl},
{(char *)"blf", BPyInit_blf},
#ifdef WITH_AUDASPACE
{(char *)"aud", AUD_initPython},
#endif
{NULL, NULL}
};

View File

@@ -38,7 +38,6 @@ set(INC
../render/extern/include
../include
../windowmanager
../../../intern/audaspace/intern
../../../intern/guardedalloc
)
@@ -66,4 +65,11 @@ endif()
add_definitions(-DWITH_QUICKTIME)
if(WITH_AUDASPACE)
list(APPEND INC
../../../intern/audaspace/intern
)
add_definitions(-DWITH_AUDASPACE)
endif()
blender_add_lib(bf_quicktime "${SRC}" "${INC}" "${INC_SYS}")

View File

@@ -38,7 +38,9 @@
#include "DNA_scene_types.h"
#include "DNA_userdef_types.h"
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
#include "BKE_global.h"
#include "BKE_main.h"

View File

@@ -95,7 +95,9 @@ extern float BKE_screen_view3d_zoom_to_fac(float camzoom);
#include "BKE_ipo.h"
/***/
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
//XXX #include "BSE_headerbuttons.h"
#include "BKE_context.h"

View File

@@ -4,7 +4,6 @@ set(INC
../../../intern/string
../../../intern/container
../../../intern/guardedalloc
../../../intern/audaspace/intern
../../../source/gameengine/Rasterizer/RAS_OpenGLRasterizer
../../../source/gameengine/Converter
../../../source/blender/imbuf
@@ -59,7 +58,14 @@ set(SRC
add_definitions(-DGLEW_STATIC)
if(WITH_AUDASPACE)
add_definitions(-DWITH_AUDASPACE)
endif()
if(WITH_CODEC_FFMPEG)
list(APPEND INC
../../../intern/audaspace/intern
)
add_definitions(-DWITH_FFMPEG)
endif()

View File

@@ -30,7 +30,6 @@ set(INC
../../../intern/guardedalloc
../../../intern/container
../../../source/gameengine/Rasterizer/RAS_OpenGLRasterizer
../../../intern/audaspace/intern
../../../source/gameengine/Converter
../../../source/gameengine/BlenderRoutines
../../../source/blender/imbuf
@@ -113,4 +112,11 @@ if(WITH_BULLET)
add_definitions(-DUSE_BULLET)
endif()
if(WITH_AUDASPACE)
list(APPEND INC
../../../intern/audaspace/intern
)
add_definitions(-DWITH_AUDASPACE)
endif()
blender_add_lib(ge_converter "${SRC}" "${INC}" "${INC_SYS}")

View File

@@ -43,7 +43,11 @@
#include "KX_BlenderSceneConverter.h"
#include "KX_ConvertActuators.h"
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
// Actuators
//SCA logiclibrary native logicbricks
#include "SCA_PropertyActuator.h"

View File

@@ -50,7 +50,6 @@ set(INC
../../../source/gameengine/SceneGraph
../../../source/gameengine/Physics/common
../../../source/gameengine/Network/LoopBackNetwork
../../../intern/audaspace/intern
../../../source/blender/blenloader
../../../source/blender/gpu
)
@@ -219,6 +218,13 @@ if(WITH_CODEC_FFMPEG)
add_definitions(-DWITH_FFMPEG)
endif()
if(WITH_AUDASPACE)
list(APPEND INC
../../../intern/audaspace/intern
)
add_definitions(-DWITH_AUDASPACE)
endif()
if(WITH_BULLET)
list(APPEND INC
../../../extern/bullet2/src

View File

@@ -68,7 +68,9 @@
#include "KX_PyConstraintBinding.h"
#include "PHY_IPhysicsEnvironment.h"
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
#include "NG_NetworkScene.h"
#include "NG_NetworkDeviceInterface.h"

View File

@@ -36,7 +36,11 @@
#include "KX_SoundActuator.h"
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
#include "KX_GameObject.h"
#include "KX_PyMath.h" // needed for PyObjectFrom()
#include <iostream>

View File

@@ -36,7 +36,10 @@
#include "SCA_IActuator.h"
#include "AUD_C-API.h"
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif
#include "BKE_sound.h"
typedef struct KX_3DSoundSettings