Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# Channels.hpp

Go to the documentation of this file.

    00001 ///////////////////////////////////////////////////////////////////////////////
    00002 /// @file Channels.hpp
    00003 ///
    00004 /// @brief Destiny Sound System Channel handling
    00005 ///
    00006 /// @author paradoxnj
    00007 ///
    00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the
    00009 /// contents of this file is subject to the Destiny3D Member License which
    00010 /// can be found at http://www.destiny3d.com.  Any other usage is prohibited.
    00011 ///
    00012 /// This file is distributed "AS IS" without warranty of any kind.  Novus
    00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file
    00014 /// for any particular purpose.
    00015 ///
    00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved.
    00017 ///
    00018 /// <hr>
    00019 ///                                 Change History
    00020 /// <hr>
    00021 ///
    00022 /// @date Jan 2002
    00023 /// @author paradoxnj
    00024 /// @remarks Creation
    00025 ///
    00026 ///////////////////////////////////////////////////////////////////////////////
    00027
    00028 //Sound Systems
    00029 #ifndef CHANNELS_H
    00030 #define CHANNELS_H
    00031
    00032 #include <windows.h>
    00033 #include <mmsystem.h>
    00034 #include <dsound.h>
    00035 //#include <dshow.h>
    00036 //#include "eax.h"
    00037 #include "DirectSound.hpp"
    00038
    00039 #include "deFileSystem.hpp"
    00040 #include "deResource.hpp"
    00041
    00042 class deSFXManager;
    00043 //class deChannel;
    00044
    00045 IdeResourceBase                         *deSound_LoadWAV(const char *filename, IdeFile *filesystem, deBoolean isThreaded);
    00046 IdeResourceBase                         *deSound_LoadOGG(const char *filename, IdeFile *filesystem, deBoolean isThreaded);
    00047
    00048 class deSFXManager
    00049 {
    00050 public:
    00051     deSFXManager();
    00052     virtual ~deSFXManager();
    00053
    00054 public:
    00055     IDirectSoundBuffer8                 *m_pBuffer;
    00056     IDirectSoundFXGargle                *m_pGargle;
    00057     IDirectSoundFXChorus                *m_pChorus;
    00058     IDirectSoundFXFlanger               *m_pFlanger;
    00059     IDirectSoundFXEcho                  *m_pEcho;
    00060     IDirectSoundFXDistortion            *m_pDistortion;
    00061     IDirectSoundFXCompressor            *m_pCompressor;
    00062     IDirectSoundFXParamEq               *m_pParamEq;
    00063     IDirectSoundFXWavesReverb           *m_pReverb;
    00064
    00065     DSFXGargle                          m_GargleSettings;
    00066     DSFXChorus                          m_ChorusSettings;
    00067     DSFXFlanger                         m_FlangerSettings;
    00068     DSFXEcho                            m_EchoSettings;
    00069     DSFXDistortion                      m_DistortionSettings;
    00070     DSFXCompressor                      m_CompressorSettings;
    00071     DSFXParamEq                         m_ParamEqSettings;
    00072     DSFXWavesReverb                     m_ReverbSettings;
    00073
    00074     DSEFFECTDESC                        m_EffectDesc[DESFX_ENUM];
    00075     const GUID                          *m_RefID[DESFX_ENUM];
    00076     LPVOID                              *m_pIntPtr[DESFX_ENUM];
    00077
    00078     DWORD                               m_NumEffects;
    00079     DWORD                               m_NumActiveBufs;
    00080
    00081 public:
    00082     deBoolean                           Initialize(IDirectSoundBuffer *buffer);
    00083     void                                Destroy();
    00084
    00085     void                                GetGargleSettings(deSFX_Gargle *gargle);
    00086     void                                GetChorusSettings(deSFX_Chorus *chorus);
    00087     void                                GetFlangerSettings(deSFX_Flanger *flanger);
    00088     void                                GetEchoSettings(deSFX_Echo *echo);
    00089     void                                GetDistortionSettings(deSFX_Distortion *distortion);
    00090     void                                GetCompressorSettings(deSFX_Compressor *compressor);
    00091     void                                GetParamEqSettings(deSFX_ParamEQ *param_eq);
    00092     void                                GetReverbSettings(deSFX_Reverb *reverb);
    00093
    00094     void                                SetGargleSettings(deSFX_Gargle *gargle);
    00095     void                                SetChorusSettings(deSFX_Chorus *chorus);
    00096     void                                SetFlangerSettings(deSFX_Flanger *flanger);
    00097     void                                SetEchoSettings(deSFX_Echo *echo);
    00098     void                                SetDistortionSettings(deSFX_Distortion *distortion);
    00099     void                                SetCompressorSettings(deSFX_Compressor *compressor);
    00100     void                                SetParamEqSettings(deSFX_ParamEQ *param_eq);
    00101     void                                SetReverbSettings(deSFX_Reverb *reverb);
    00102
    00103     deBoolean                           ActivateFX();
    00104     deBoolean                           EnableFX(deSFX_Type type);
    00105     deBoolean                           DisableFX();
    00106
    00107     deBoolean                           Play(deBoolean loop = deFALSE);
    00108     deBoolean                           IsPlaying();
    00109     void                                Stop();
    00110
    00111     void                                SetVolume(float vol);
    00112
    00113 };
    00114
    00115 #endif
    00116