gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

pa_win_ds_dynlink.h (3701B)


      1 /*
      2  * Interface for dynamically loading directsound and providing a dummy
      3  * implementation if it isn't present.
      4  *
      5  * Author: Ross Bencina (some portions Phil Burk & Robert Marsanyi)
      6  *
      7  * For PortAudio Portable Real-Time Audio Library
      8  * For more information see: http://www.portaudio.com
      9  * Copyright (c) 1999-2006 Phil Burk, Robert Marsanyi and Ross Bencina
     10  *
     11  * Permission is hereby granted, free of charge, to any person obtaining
     12  * a copy of this software and associated documentation files
     13  * (the "Software"), to deal in the Software without restriction,
     14  * including without limitation the rights to use, copy, modify, merge,
     15  * publish, distribute, sublicense, and/or sell copies of the Software,
     16  * and to permit persons to whom the Software is furnished to do so,
     17  * subject to the following conditions:
     18  *
     19  * The above copyright notice and this permission notice shall be
     20  * included in all copies or substantial portions of the Software.
     21  *
     22  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     23  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     24  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
     25  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
     26  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
     27  * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
     28  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     29  */
     30 
     31 /*
     32  * The text above constitutes the entire PortAudio license; however, 
     33  * the PortAudio community also makes the following non-binding requests:
     34  *
     35  * Any person wishing to distribute modifications to the Software is
     36  * requested to send the modifications to the original developer so that
     37  * they can be incorporated into the canonical version. It is also 
     38  * requested that these non-binding requests be included along with the 
     39  * license above.
     40  */
     41 
     42 /**
     43  @file
     44  @ingroup hostapi_src
     45 */
     46 
     47 #ifndef INCLUDED_PA_DSOUND_DYNLINK_H
     48 #define INCLUDED_PA_DSOUND_DYNLINK_H
     49 
     50 /* on Borland compilers, WIN32 doesn't seem to be defined by default, which
     51     breaks dsound.h. Adding the define here fixes the problem. - rossb. */
     52 #ifdef __BORLANDC__
     53 #if !defined(WIN32)
     54 #define WIN32
     55 #endif
     56 #endif
     57 
     58 /*
     59   Use the earliest version of DX required, no need to polute the namespace
     60 */
     61 #ifdef PAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE
     62 #define DIRECTSOUND_VERSION 0x0800
     63 #else
     64 #define DIRECTSOUND_VERSION 0x0300
     65 #endif
     66 #include <dsound.h>
     67 
     68 #ifdef __cplusplus
     69 extern "C"
     70 {
     71 #endif /* __cplusplus */
     72 
     73 
     74 typedef struct
     75 {
     76     HINSTANCE hInstance_;
     77     
     78     HRESULT (WINAPI *DllGetClassObject)(REFCLSID , REFIID , LPVOID *);
     79 
     80     HRESULT (WINAPI *DirectSoundCreate)(LPGUID, LPDIRECTSOUND *, LPUNKNOWN);
     81     HRESULT (WINAPI *DirectSoundEnumerateW)(LPDSENUMCALLBACKW, LPVOID);
     82     HRESULT (WINAPI *DirectSoundEnumerateA)(LPDSENUMCALLBACKA, LPVOID);
     83 
     84     HRESULT (WINAPI *DirectSoundCaptureCreate)(LPGUID, LPDIRECTSOUNDCAPTURE *, LPUNKNOWN);
     85     HRESULT (WINAPI *DirectSoundCaptureEnumerateW)(LPDSENUMCALLBACKW, LPVOID);
     86     HRESULT (WINAPI *DirectSoundCaptureEnumerateA)(LPDSENUMCALLBACKA, LPVOID);
     87 
     88 #ifdef PAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE
     89     HRESULT (WINAPI *DirectSoundFullDuplexCreate8)(
     90                 LPCGUID, LPCGUID, LPCDSCBUFFERDESC, LPCDSBUFFERDESC,
     91                 HWND, DWORD, LPDIRECTSOUNDFULLDUPLEX *, LPDIRECTSOUNDCAPTUREBUFFER8 *, 
     92                 LPDIRECTSOUNDBUFFER8 *, LPUNKNOWN );
     93 #endif
     94 }PaWinDsDSoundEntryPoints;
     95 
     96 extern PaWinDsDSoundEntryPoints paWinDsDSoundEntryPoints;
     97 
     98 void PaWinDs_InitializeDSoundEntryPoints(void);
     99 void PaWinDs_TerminateDSoundEntryPoints(void);
    100 
    101 
    102 #ifdef __cplusplus
    103 }
    104 #endif /* __cplusplus */
    105 
    106 #endif /* INCLUDED_PA_DSOUND_DYNLINK_H */