Gizmo3D

gzAudioEngine.h

Go to the documentation of this file.
00001 //*****************************************************************************
00002 // File         : gzAudioEngine.h
00003 // Module       : 
00004 // Description  : Class definition of stub calls for AAL
00005 // Author       : Anders Modén      
00006 // Product      : Gizmo3D 2.1.1
00007 //      
00008 // Copyright © 2003- Saab Training Systems AB, Sweden
00009 //          
00010 // NOTE:    Gizmo3D is a high performance 3D Scene Graph and effect visualisation 
00011 //          C++ toolkit for Linux, Mac OS X, Windows (Win32) and IRIX® for  
00012 //          usage in Game or VisSim development.
00013 //
00014 //
00015 // Revision History...                          
00016 //                                  
00017 // Who  Date    Description                     
00018 //                                  
00019 // AMO  060801  Created file    
00020 //
00021 //******************************************************************************
00022 
00023 #ifndef __GZ_AUDIO_ENGINE_H__
00024 #define __GZ_AUDIO_ENGINE_H__
00025 
00032 #include "gzBasicTypes.h"
00033 #include "gzAudioAbstractionLayer.h"
00034 #include "gzBase.h"
00035 
00037 
00038 enum gzAudioEngineType
00039 { 
00040     GZ_AUDIO_ENGINE_NONE            = -1 , 
00041     GZ_AUDIO_ENGINE_DEBUG           =  0 , 
00042     GZ_AUDIO_ENGINE_SOFTWARE        =  1 , 
00043     GZ_AUDIO_ENGINE_OPENAL          =  2 , 
00044     GZ_AUDIO_ENGINE_DIRECT_SOUND    =  3
00045 } ;
00046 
00047 const gzUByte GZ_MAX_AUDIO_ENGINES=10;
00048 
00049 //-------------------- engine dependant implementations ------------------------
00050 
00051 //******************************************************************************
00052 // Class    : gzAudioEngine
00053 //                                  
00054 // Purpose  : -
00055 //                                  
00056 // Notes    : - 
00057 //                                  
00058 // Revision History...                          
00059 //                                  
00060 // Who  Date    Description                     
00061 //                                  
00062 // AMO  060801  Created 
00063 //                                  
00064 //******************************************************************************
00065 class gzAudioEngine
00066 {
00067 public:
00068 
00069     /*
00070 
00071     // ------------------- extensions. Not basically supported by Engine --------------------
00072 
00073     GZ_GRAPH_EXPORT static  inline  gzBool  has_vertex_array()              { return s_vertex_array; }
00074     GZ_GRAPH_EXPORT static  inline  gzBool  has_polygon_offset()            { return s_polygon_offset; }
00075     GZ_GRAPH_EXPORT static  inline  gzBool  has_multitexture()              { return s_multitexture; }
00076     GZ_GRAPH_EXPORT static  inline  gzBool  has_compiled_vertex_array()     { return s_compiled_vertex_array; }
00077     GZ_GRAPH_EXPORT static  inline  gzBool  has_texenvop()                  { return s_texenvop; }
00078     GZ_GRAPH_EXPORT static  inline  gzBool  has_pbuffer()                   { return s_pbuffer; }
00079     GZ_GRAPH_EXPORT static  inline  gzBool  has_compressed_textures()       { return s_compressed_textures; }
00080     GZ_GRAPH_EXPORT static  inline  gzBool  has_compressed_s3tc()           { return s_compressed_s3tc; }
00081     GZ_GRAPH_EXPORT static  inline  gzBool  has_depth_clamp()               { return s_depth_clamp; }
00082     
00083     GZ_GRAPH_EXPORT static  inline  gzBool  has_vertex_program()            { return s_vertex_program; }
00084     GZ_GRAPH_EXPORT static  inline  gzBool  has_fragment_program()          { return s_fragment_program; }
00085     
00086     GZ_GRAPH_EXPORT static  inline  gzBool  has_vertex_buffer_object()      { return s_vertex_buffer_object; }
00087     
00088     GZ_GRAPH_EXPORT static  inline  gzBool  has_two_sided_stencil()         { return s_two_sided_stencil; }
00089     GZ_GRAPH_EXPORT static  inline  gzBool  has_separate_stencil()          { return s_separate_stencil; }
00090 
00091     GZ_GRAPH_EXPORT static  inline  gzBool  has_shader_objects()            { return s_shader_objects; }
00092     GZ_GRAPH_EXPORT static  inline  gzBool  has_vertex_shader()             { return s_vertex_shader; }
00093     GZ_GRAPH_EXPORT static  inline  gzBool  has_fragment_shader()           { return s_fragment_shader; }
00094     GZ_GRAPH_EXPORT static  inline  gzBool  has_multisample()               { return s_multisample; }
00095     GZ_GRAPH_EXPORT static  inline  gzBool  has_auto_mipmap()               { return s_auto_mipmap; }
00096     GZ_GRAPH_EXPORT static  inline  gzBool  has_npot_texture()              { return s_npot_texture; }
00097 
00098 
00099     // --- limits ------
00100 
00101     GZ_GRAPH_EXPORT static  inline  gzInt   getMaxTextureSize()             { return s_maxtexturesize; }
00102 
00103     GZ_GRAPH_EXPORT static  inline  gzULong getNumberOfTextureUnits()       { return s_numberOfTextureUnits; }
00104 
00105     GZ_GRAPH_EXPORT static  inline  gzBool  isRemoteConnection()            { return s_remoteConnection; }
00106     
00107 */
00108 
00109     // --- generic -----
00110 
00111     GZ_GRAPH_EXPORT static gzBool               hasValidEngine();
00112     GZ_GRAPH_EXPORT static gzVoid               useEngine(gzAudioEngineType type);
00113     GZ_GRAPH_EXPORT static gzAudioEngineType    getEngineType();
00114     GZ_GRAPH_EXPORT static gzAudioEngine *      getEngine();
00115     GZ_GRAPH_EXPORT static gzFloat              getVersion();
00116     GZ_GRAPH_EXPORT static gzString             getExtensions();
00117 
00118     // Engine functions
00119     
00120     GZ_GRAPH_EXPORT virtual gzVoid setupEngine()=0;
00121     GZ_GRAPH_EXPORT virtual gzVoid shutdownEngine()=0;
00122 
00123     
00124 protected:
00125 
00126 
00127     /*
00128 
00129     GZ_GRAPH_EXPORT static gzBool   s_vertex_array;
00130     GZ_GRAPH_EXPORT static gzBool   s_compiled_vertex_array;
00131     GZ_GRAPH_EXPORT static gzBool   s_multitexture;
00132     GZ_GRAPH_EXPORT static gzBool   s_texenvop;
00133     GZ_GRAPH_EXPORT static gzBool   s_pbuffer;
00134     GZ_GRAPH_EXPORT static gzBool   s_polygon_offset;
00135     GZ_GRAPH_EXPORT static gzBool   s_compressed_textures;
00136     GZ_GRAPH_EXPORT static gzBool   s_compressed_s3tc;
00137     GZ_GRAPH_EXPORT static gzBool   s_depth_clamp;
00138     GZ_GRAPH_EXPORT static gzBool   s_vertex_program;
00139     GZ_GRAPH_EXPORT static gzBool   s_fragment_program;
00140     GZ_GRAPH_EXPORT static gzBool   s_vertex_buffer_object;
00141     GZ_GRAPH_EXPORT static gzBool   s_two_sided_stencil;
00142     GZ_GRAPH_EXPORT static gzBool   s_separate_stencil;
00143     GZ_GRAPH_EXPORT static gzBool   s_shader_objects;
00144     GZ_GRAPH_EXPORT static gzBool   s_vertex_shader;
00145     GZ_GRAPH_EXPORT static gzBool   s_fragment_shader;
00146     GZ_GRAPH_EXPORT static gzBool   s_multisample;
00147     GZ_GRAPH_EXPORT static gzBool   s_auto_mipmap;
00148     GZ_GRAPH_EXPORT static gzBool   s_npot_texture;
00149 
00150 */
00151 
00152     GZ_GRAPH_EXPORT static gzString             s_gz_extensions;
00153     GZ_GRAPH_EXPORT static gzFloat              s_gz_version;
00154     GZ_GRAPH_EXPORT static gzAudioEngineType    s_engineType;
00155     GZ_GRAPH_EXPORT static gzAudioEngine *      s_currentEngine;
00156 
00157 
00158     GZ_GRAPH_EXPORT static gzAudioEngine *      s_engine[GZ_MAX_AUDIO_ENGINES];
00159 
00160 };
00161 
00162 
00163 #endif //__GZ_AUDIO_ENGINE_H__
00164 
00165 

Documentation for Gizmo3D generated at Wed Feb 20 11:54:02 2008 by   Saab Training Systems AB, ¸ (c) 2003-and beyond