//----------------------------------------------------------------------------- // Torque Game Engine // Copyright (C) GarageGames.com, Inc. //----------------------------------------------------------------------------- #ifndef _PLATFORMAL_H_ #define _PLATFORMAL_H_ #ifndef _PLATFORM_H_ #include "platform/platform.h" #endif #define AL_NO_PROTOTYPES #include #include #include // extra enums for win32/miles implementation enum { // error values AL_CONTEXT_ALREADY_INSTANTIATED = 0xbaadf00d, AL_ENVIRONMENT_ALREADY_INSTANTIATED, AL_UNSUPPORTED, AL_INVALID_BUFFER, AL_ERROR, // context extention ALC_PROVIDER, ALC_PROVIDER_COUNT, ALC_PROVIDER_NAME, ALC_SPEAKER, ALC_SPEAKER_COUNT, ALC_SPEAKER_NAME, ALC_BUFFER_DYNAMIC_MEMORY_SIZE, ALC_BUFFER_DYNAMIC_MEMORY_USAGE, ALC_BUFFER_DYNAMIC_COUNT, ALC_BUFFER_MEMORY_USAGE, ALC_BUFFER_COUNT, ALC_BUFFER_LATENCY, // misc 3d params AL_MIN_DISTANCE, AL_MAX_DISTANCE, AL_CONE_OUTER_GAIN, // relative with pos(0,0,0) won't work for ambient sounds with miles AL_SOURCE_AMBIENT, AL_PAN, // other extensions AL_BUFFER_KEEP_RESIDENT, AL_FORMAT_WAVE_EXT, // Environment extensions: AL_ENV_EFFECT_VOLUME_EXT, AL_ENV_FLAGS_EXT, AL_ENV_DAMPING_EXT, AL_ENV_ENVIRONMENT_SIZE_EXT, AL_ENV_ROOM_VOLUME_EXT, }; enum { // sample level environment: AL_ENV_SAMPLE_REVERB_MIX_EXT = 0, AL_ENV_SAMPLE_DIRECT_EXT, AL_ENV_SAMPLE_DIRECT_HF_EXT, AL_ENV_SAMPLE_ROOM_EXT, AL_ENV_SAMPLE_ROOM_HF_EXT, AL_ENV_SAMPLE_OBSTRUCTION_EXT, AL_ENV_SAMPLE_OBSTRUCTION_LF_RATIO_EXT, AL_ENV_SAMPLE_OCCLUSION_EXT, AL_ENV_SAMPLE_OCCLUSION_LF_RATIO_EXT, AL_ENV_SAMPLE_OCCLUSION_ROOM_RATIO_EXT, AL_ENV_SAMPLE_ROOM_ROLLOFF_EXT, AL_ENV_SAMPLE_AIR_ABSORPTION_EXT, AL_ENV_SAMPLE_OUTSIDE_VOLUME_HF_EXT, AL_ENV_SAMPLE_FLAGS_EXT, AL_ENV_SAMPLE_COUNT, }; // room types: same as miles/eax enum { AL_ENVIRONMENT_GENERIC = 0, AL_ENVIRONMENT_PADDEDCELL, AL_ENVIRONMENT_ROOM, AL_ENVIRONMENT_BATHROOM, AL_ENVIRONMENT_LIVINGROOM, AL_ENVIRONMENT_STONEROOM, AL_ENVIRONMENT_AUDITORIUM, AL_ENVIRONMENT_CONCERTHALL, AL_ENVIRONMENT_CAVE, AL_ENVIRONMENT_ARENA, AL_ENVIRONMENT_HANGAR, AL_ENVIRONMENT_CARPETEDHALLWAY, AL_ENVIRONMENT_HALLWAY, AL_ENVIRONMENT_STONECORRIDOR, AL_ENVIRONMENT_ALLEY, AL_ENVIRONMENT_FOREST, AL_ENVIRONMENT_CITY, AL_ENVIRONMENT_MOUNTAINS, AL_ENVIRONMENT_QUARRY, AL_ENVIRONMENT_PLAIN, AL_ENVIRONMENT_PARKINGLOT, AL_ENVIRONMENT_SEWERPIPE, AL_ENVIRONMENT_UNDERWATER, AL_ENVIRONMENT_DRUGGED, AL_ENVIRONMENT_DIZZY, AL_ENVIRONMENT_PSYCHOTIC, AL_ENVIRONMENT_COUNT }; // declare OpenAL functions #define AL_EXTENSION(ext_name) extern bool gDoesSupport_##ext_name; #define AL_FUNCTION(fn_return,fn_name,fn_args) extern fn_return (FN_CDECL *fn_name)fn_args; #define AL_EXT_FUNCTION(ext_name,fn_return,fn_name,fn_args) extern fn_return (FN_CDECL *fn_name)fn_args; #ifndef _OPENALFN_H_ #include #endif namespace Audio { bool libraryInit(const char *library); void libraryInitExtensions(); void libraryShutdown(); inline bool doesSupportIASIG() { return gDoesSupport_AL_EXT_IASIG; } inline bool doesSupportDynamix() { return gDoesSupport_AL_EXT_DYNAMIX; } // helpers F32 DBToLinear(F32 value); F32 linearToDB(F32 value); } // end namespace Audio #endif // _H_PLATFORMAL_