All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jogamp.openal.eax.EAXConstants Maven / Gradle / Ivy

/**
* Copyright (c) 2003 Sun Microsystems, Inc. All  Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* -Redistribution of source code must retain the above copyright notice, 
* this list of conditions and the following disclaimer.
*
* -Redistribution in binary form must reproduce the above copyright notice, 
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* Neither the name of Sun Microsystems, Inc. or the names of contributors may 
* be used to endorse or promote products derived from this software without 
* specific prior written permission.
* 
* This software is provided "AS IS," without a warranty of any kind.
* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS
* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A
* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT
* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS
* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*
* You acknowledge that this software is not designed or intended for use in the
* design, construction, operation or maintenance of any nuclear facility.
*/

package com.jogamp.openal.eax;
/**
 *
 * This class implements the basic EAX extension constants.
 *
 * @author Athomas Goldberg
 */
public interface EAXConstants {

    public final static int DSPROPERTY_EAXLISTENER_NONE                 = 0;
    public final static int DSPROPERTY_EAXLISTENER_ALLPARAMETERS        = 1;
    public final static int DSPROPERTY_EAXLISTENER_ROOM                 = 2;
    public final static int DSPROPERTY_EAXLISTENER_ROOMHF               = 3;
    public final static int DSPROPERTY_EAXLISTENER_ROOMROLLOFFFACTOR    = 4;
    public final static int DSPROPERTY_EAXLISTENER_DECAYTIME            = 5;
    public final static int DSPROPERTY_EAXLISTENER_DECAYHFRATIO         = 6;
    public final static int DSPROPERTY_EAXLISTENER_REFLECTIONS          = 7;
    public final static int DSPROPERTY_EAXLISTENER_REFLECTIONSDELAY     = 8;
    public final static int DSPROPERTY_EAXLISTENER_REVERB               = 9;
    public final static int DSPROPERTY_EAXLISTENER_REVERBDELAY          = 10;
    public final static int DSPROPERTY_EAXLISTENER_ENVIRONMENT          = 11;
    public final static int DSPROPERTY_EAXLISTENER_ENVIRONMENTSIZE      = 12;
    public final static int DSPROPERTY_EAXLISTENER_ENVIRONMENTDIFFUSION = 13;
    public final static int DSPROPERTY_EAXLISTENER_AIRABSORPTIONHF      = 14;
    public final static int DSPROPERTY_EAXLISTENER_FLAGS                = 15;
    
//     OR these flags with property id // 
    /** changes take effect immediately */
    public static final int DSPROPERTY_EAXLISTENER_IMMEDIATE  = 0x00000000;

    /** changes take effect later */
    public static final int DSPROPERTY_EAXLISTENER_DEFERRED   = 0x80000000;

    public static final int DSPROPERTY_EAXLISTENER_COMMITDEFERREDSETTINGS = 
            DSPROPERTY_EAXLISTENER_NONE |
            DSPROPERTY_EAXLISTENER_IMMEDIATE;

    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_GENERIC             = 0;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_PADDEDCELL          = 1;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_ROOM                = 2;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_BATHROOM            = 3;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_LIVINGROOM          = 4;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_STONEROOM           = 5;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_AUDITORIUM          = 6;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_CONCERTHALL         = 7;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_CAVE                = 8;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_ARENA               = 9;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_HANGAR              = 10;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_CARPETEDHALLWAY     = 11;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_HALLWAY             = 12;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_STONECORRIDOR       = 13;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_ALLEY               = 14;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_FOREST              = 15;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_CITY                = 16;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_MOUNTAINS           = 17;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_QUARRY              = 18;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_PLAIN               = 19;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_PARKINGLOT          = 20;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_SEWERPIPE           = 21;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_UNDERWATER          = 22;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_DRUGGED             = 23;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_DIZZY               = 24;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_PSYCHOTIC           = 25;
    /** used by DSPROPERTY_EAXLISTENER_ENVIRONMENT */
    public final static int EAX_ENVIRONMENT_COUNT               = 26;

//     These flags determine what properties are affected by environment size.
    /**  reverberation decay time */
    public final static int EAXLISTENERFLAGS_DECAYTIMESCALE        = 0x00000001; 
    /**  reflection level */
    public final static int EAXLISTENERFLAGS_REFLECTIONSSCALE      = 0x00000002;
    /**  initial reflection delay time */
    public final static int EAXLISTENERFLAGS_REFLECTIONSDELAYSCALE = 0x00000004; 
    /**  reflections level */
    public final static int EAXLISTENERFLAGS_REVERBSCALE           = 0x00000008; 
    /**  late reverberation delay time */
    public final static int EAXLISTENERFLAGS_REVERBDELAYSCALE      = 0x00000010; 

    /** This flag limits high-frequency decay time according to air absorption.*/
    public final static int EAXLISTENERFLAGS_DECAYHFLIMIT          = 0x00000020;
    /** reserved future use */
    public final static int EAXLISTENERFLAGS_RESERVED              = 0xFFFFFFC0;

//     property ranges and defaults:

    public final static int EAXLISTENER_MINROOM       = -10000;
    public final static int EAXLISTENER_MAXROOM       = 0;
    public final static int EAXLISTENER_DEFAULTROOM   = -1000;

    public final static int EAXLISTENER_MINROOMHF      = -10000;
    public final static int EAXLISTENER_MAXROOMHF      = 0;
    public final static int EAXLISTENER_DEFAULTROOMHF  = -100;

    public final static float EAXLISTENER_MINROOMROLLOFFFACTOR          = 0.0f;
    public final static float EAXLISTENER_MAXROOMROLLOFFFACTOR          = 10.0f;
    public final static float EAXLISTENER_DEFAULTROOMROLLOFFFACTOR      = 0.0f;

    public final static float EAXLISTENER_MINDECAYTIME                  = 0.1f;
    public final static float EAXLISTENER_MAXDECAYTIME                  = 20.0f;
    public final static float EAXLISTENER_DEFAULTDECAYTIME              = 1.49f;

    public final static float EAXLISTENER_MINDECAYHFRATIO               = 0.1f;
    public final static float EAXLISTENER_MAXDECAYHFRATIO               = 2.0f;
    public final static float EAXLISTENER_DEFAULTDECAYHFRATIO           = 0.83f;

    public final static int EAXLISTENER_MINREFLECTIONS                = -10000;
    public final static int EAXLISTENER_MAXREFLECTIONS                = 1000;
    public final static int EAXLISTENER_DEFAULTREFLECTIONS            = -2602;

    public final static float EAXLISTENER_MINREFLECTIONSDELAY          = 0.0f;
    public final static float EAXLISTENER_MAXREFLECTIONSDELAY          = 0.3f;
    public final static float EAXLISTENER_DEFAULTREFLECTIONSDELAY      = 0.007f;

    public final static int EAXLISTENER_MINREVERB                     = -10000;
    public final static int EAXLISTENER_MAXREVERB                     = 2000;
    public final static int EAXLISTENER_DEFAULTREVERB                 = 200;

    public final static float EAXLISTENER_MINREVERBDELAY               = 0.0f;
    public final static float EAXLISTENER_MAXREVERBDELAY               = 0.1f;
    public final static float EAXLISTENER_DEFAULTREVERBDELAY           = 0.011f;

    public final static int EAXLISTENER_MINENVIRONMENT                = 0;
    public final static int EAXLISTENER_MAXENVIRONMENT = EAX_ENVIRONMENT_COUNT-1;
    public final static int EAXLISTENER_DEFAULTENVIRONMENT = EAX_ENVIRONMENT_GENERIC;

    public final static float EAXLISTENER_MINENVIRONMENTSIZE            = 1.0f;
    public final static float EAXLISTENER_MAXENVIRONMENTSIZE            = 100.0f;
    public final static float EAXLISTENER_DEFAULTENVIRONMENTSIZE        = 7.5f;

    public final static float EAXLISTENER_MINENVIRONMENTDIFFUSION       = 0.0f;
    public final static float EAXLISTENER_MAXENVIRONMENTDIFFUSION       = 1.0f;
    public final static float EAXLISTENER_DEFAULTENVIRONMENTDIFFUSION   = 1.0f;

    public final static float EAXLISTENER_MINAIRABSORPTIONHF          = -100.0f;
    public final static float EAXLISTENER_MAXAIRABSORPTIONHF          = 0.0f;
    public final static float EAXLISTENER_DEFAULTAIRABSORPTIONHF      = -5.0f;

    public final static int EAXLISTENER_DEFAULTFLAGS = 
                                       EAXLISTENERFLAGS_DECAYTIMESCALE |      
                                       EAXLISTENERFLAGS_REFLECTIONSSCALE |    
                                       EAXLISTENERFLAGS_REFLECTIONSDELAYSCALE |
                                       EAXLISTENERFLAGS_REVERBSCALE |
                                       EAXLISTENERFLAGS_REVERBDELAYSCALE |
                                       EAXLISTENERFLAGS_DECAYHFLIMIT;

    public final static int DSPROPERTY_EAXBUFFER_NONE                   = 0;
    public final static int DSPROPERTY_EAXBUFFER_ALLPARAMETERS          = 1;
    public final static int DSPROPERTY_EAXBUFFER_DIRECT                 = 2;
    public final static int DSPROPERTY_EAXBUFFER_DIRECTHF               = 3;
    public final static int DSPROPERTY_EAXBUFFER_ROOM                   = 4;
    public final static int DSPROPERTY_EAXBUFFER_ROOMHF                 = 5;
    public final static int DSPROPERTY_EAXBUFFER_ROOMROLLOFFFACTOR      = 6;
    public final static int DSPROPERTY_EAXBUFFER_OBSTRUCTION            = 7;
    public final static int DSPROPERTY_EAXBUFFER_OBSTRUCTIONLFRATIO     = 8;
    public final static int DSPROPERTY_EAXBUFFER_OCCLUSION              = 9;
    public final static int DSPROPERTY_EAXBUFFER_OCCLUSIONLFRATIO       = 10;
    public final static int DSPROPERTY_EAXBUFFER_OCCLUSIONROOMRATIO     = 11;
    public final static int DSPROPERTY_EAXBUFFER_OUTSIDEVOLUMEHF        = 13;
    public final static int DSPROPERTY_EAXBUFFER_AIRABSORPTIONFACTOR    = 14;
    public final static int DSPROPERTY_EAXBUFFER_FLAGS                  = 15;

//     OR these flags with property id
    /**  changes take effect immediately */
    public final static int DSPROPERTY_EAXBUFFER_IMMEDIATE = 0x00000000;
    /** changes take effect later */ 
    public final static int DSPROPERTY_EAXBUFFER_DEFERRED  = 0x80000000;
    public final static int DSPROPERTY_EAXBUFFER_COMMITDEFERREDSETTINGS = 
            DSPROPERTY_EAXBUFFER_NONE |
            DSPROPERTY_EAXBUFFER_IMMEDIATE;


//     Used by DSPROPERTY_EAXBUFFER_FLAGS
//        TRUE:    value is computed automatically - property is an offset
//        FALSE:   value is used directly
//
//     Note: The number and order of flags may change in future EAX versions.
//           To insure future compatibility, use flag defines as follows:
//                  myFlags = EAXBUFFERFLAGS_DIRECTHFAUTO | EAXBUFFERFLAGS_ROOMAUTO;
//           instead of:
//                  myFlags = 0x00000003;
//
    /** affects DSPROPERTY_EAXBUFFER_DIRECTHF */
    public final static int EAXBUFFERFLAGS_DIRECTHFAUTO = 0x00000001; 
    /**  affects DSPROPERTY_EAXBUFFER_ROOM */
    public final static int EAXBUFFERFLAGS_ROOMAUTO     = 0x00000002;
    /** affects DSPROPERTY_EAXBUFFER_ROOMHF */
    public final static int EAXBUFFERFLAGS_ROOMHFAUTO   = 0x00000004;
    /** reserved future use */
    public final static int EAXBUFFERFLAGS_RESERVED     = 0xFFFFFFF8;

//     property ranges and defaults:

    public final static int EAXBUFFER_MINDIRECT                  = (-10000);
    public final static int EAXBUFFER_MAXDIRECT                  = 1000;
    public final static int EAXBUFFER_DEFAULTDIRECT              = 0;

    public final static int EAXBUFFER_MINDIRECTHF                = (-10000);
    public final static int EAXBUFFER_MAXDIRECTHF                = 0;
    public final static int EAXBUFFER_DEFAULTDIRECTHF            = 0;

    public final static int EAXBUFFER_MINROOM                    = (-10000);
    public final static int EAXBUFFER_MAXROOM                    = 1000;
    public final static int EAXBUFFER_DEFAULTROOM                = 0;

    public final static int EAXBUFFER_MINROOMHF                  = (-10000);
    public final static int EAXBUFFER_MAXROOMHF                  = 0;
    public final static int EAXBUFFER_DEFAULTROOMHF              = 0;

    public final static float EAXBUFFER_MINROOMROLLOFFFACTOR       = 0.0f;
    public final static float EAXBUFFER_MAXROOMROLLOFFFACTOR       = 10.f;
    public final static float EAXBUFFER_DEFAULTROOMROLLOFFFACTOR   = 0.0f;

    public final static int EAXBUFFER_MINOBSTRUCTION             = (-10000);
    public final static int EAXBUFFER_MAXOBSTRUCTION             = 0;
    public final static int EAXBUFFER_DEFAULTOBSTRUCTION         = 0;

    public final static float EAXBUFFER_MINOBSTRUCTIONLFRATIO      = 0.0f;
    public final static float EAXBUFFER_MAXOBSTRUCTIONLFRATIO      = 1.0f;
    public final static float EAXBUFFER_DEFAULTOBSTRUCTIONLFRATIO  = 0.0f;

    public final static int EAXBUFFER_MINOCCLUSION               = (-10000);
    public final static int EAXBUFFER_MAXOCCLUSION               = 0;
    public final static int EAXBUFFER_DEFAULTOCCLUSION           = 0;

    public final static float EAXBUFFER_MINOCCLUSIONLFRATIO        = 0.0f;
    public final static float EAXBUFFER_MAXOCCLUSIONLFRATIO        = 1.0f;
    public final static float EAXBUFFER_DEFAULTOCCLUSIONLFRATIO    = 0.25f;

    public final static float EAXBUFFER_MINOCCLUSIONROOMRATIO      = 0.0f;
    public final static float EAXBUFFER_MAXOCCLUSIONROOMRATIO      = 10.0f;
    public final static float EAXBUFFER_DEFAULTOCCLUSIONROOMRATIO  = 0.5f;

    public final static int EAXBUFFER_MINOUTSIDEVOLUMEHF         = (-10000);
    public final static int EAXBUFFER_MAXOUTSIDEVOLUMEHF         = 0;
    public final static int EAXBUFFER_DEFAULTOUTSIDEVOLUMEHF     = 0;

    public final static float EAXBUFFER_MINAIRABSORPTIONFACTOR     = 0.0f;
    public final static float EAXBUFFER_MAXAIRABSORPTIONFACTOR     = 10.0f;
    public final static float EAXBUFFER_DEFAULTAIRABSORPTIONFACTOR = 1.0f;

    public final static int EAXBUFFER_DEFAULTFLAGS =  
                                                EAXBUFFERFLAGS_DIRECTHFAUTO |
                                                EAXBUFFERFLAGS_ROOMAUTO |
                                                EAXBUFFERFLAGS_ROOMHFAUTO;

//     Material transmission presets
//     3 values in this order:
//         1: occlusion (or obstruction)
//         2: occlusion LF Ratio (or obstruction LF Ratio)
//         3: occlusion Room Ratio

//     Single window material preset
    public final static int EAX_MATERIAL_SINGLEWINDOW          = (-2800);
    public final static float EAX_MATERIAL_SINGLEWINDOWLF        = 0.71f;
    public final static float EAX_MATERIAL_SINGLEWINDOWROOMRATIO = 0.43f;

//     Double window material preset
    public final static int EAX_MATERIAL_DOUBLEWINDOW          = (-5000);
    public final static float EAX_MATERIAL_DOUBLEWINDOWHF        = 0.40f;
    public final static float EAX_MATERIAL_DOUBLEWINDOWROOMRATIO = 0.24f;

//     Thin door material preset
    public final static int EAX_MATERIAL_THINDOOR              = (-1800);
    public final static float EAX_MATERIAL_THINDOORLF            = 0.66f;
    public final static float EAX_MATERIAL_THINDOORROOMRATIO     = 0.66f;

//     Thick door material preset
    public final static int EAX_MATERIAL_THICKDOOR             = (-4400);
    public final static float EAX_MATERIAL_THICKDOORLF           = 0.64f;
    public final static float EAX_MATERIAL_THICKDOORROOMRTATION  = 0.27f;

//     Wood wall material preset
    public final static int EAX_MATERIAL_WOODWALL              = (-4000);
    public final static float EAX_MATERIAL_WOODWALLLF            = 0.50f;
    public final static float EAX_MATERIAL_WOODWALLROOMRATIO     = 0.30f;

//     Brick wall material preset
    public final static int EAX_MATERIAL_BRICKWALL             = (-5000);
    public final static float EAX_MATERIAL_BRICKWALLLF           = 0.60f;
    public final static float EAX_MATERIAL_BRICKWALLROOMRATIO    = 0.24f;

//     Stone wall material preset
    public final static int EAX_MATERIAL_STONEWALL             = (-6000);
    public final static float EAX_MATERIAL_STONEWALLLF           = 0.68f;
    public final static float EAX_MATERIAL_STONEWALLROOMRATIO    = 0.20f;

//     Curtain material preset
    public final static int EAX_MATERIAL_CURTAIN               = (-1200);
    public final static float EAX_MATERIAL_CURTAINLF             = 0.15f;
    public final static float EAX_MATERIAL_CURTAINROOMRATIO      = 1.00f;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy