/plugins/spu2-x/src/Windows/dsp.h
https://github.com/Icelight/pcsx2 · C Header · 58 lines · 18 code · 11 blank · 29 comment · 0 complexity · 7b37278d01e1d93c0089f348678626b9 MD5 · raw file
- //GiGaHeRz's SPU2 Driver
- //Copyright (c) 2003-2008, David Quintana <gigaherz@gmail.com>
- //
- //This library is free software; you can redistribute it and/or
- //modify it under the terms of the GNU Lesser General Public
- //License as published by the Free Software Foundation; either
- //version 2.1 of the License, or (at your option) any later version.
- //
- //This library is distributed in the hope that it will be useful,
- //but WITHOUT ANY WARRANTY; without even the implied warranty of
- //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- //Lesser General Public License for more details.
- //
- //You should have received a copy of the GNU Lesser General Public
- //License along with this library; if not, write to the Free Software
- //Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
- //
- // DSP plugin interface
- // notes:
- // any window that remains in foreground should optimally pass unused
- // keystrokes to the parent (winamp's) window, so that the user
- // can still control it. As for storing configuration,
- // Configuration data should be stored in <dll directory>\plugin.ini
- // (look at the vis plugin for configuration code)
- #pragma once
- typedef struct winampDSPModule {
- char *description; // description
- HWND hwndParent; // parent window (filled in by calling app)
- HINSTANCE hDllInstance; // instance handle to this DLL (filled in by calling app)
- void (*Config)(struct winampDSPModule *this_mod); // configuration dialog (if needed)
- int (*Init)(struct winampDSPModule *this_mod); // 0 on success, creates window, etc (if needed)
- // modify waveform samples: returns number of samples to actually write
- // (typically numsamples, but no more than twice numsamples, and no less than half numsamples)
- // numsamples should always be at least 128. should, but I'm not sure
- int (*ModifySamples)(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
- void (*Quit)(struct winampDSPModule *this_mod); // called when unloading
- void *userData; // user data, optional
- } winampDSPModule;
- typedef struct {
- int version; // DSP_HDRVER
- char *description; // description of library
- winampDSPModule* (*getModule)(int); // module retrieval function
- } winampDSPHeader;
- // exported symbols
- typedef winampDSPHeader* (*winampDSPGetHeaderType)();
- // header version: 0x20 == 0.20 == winamp 2.0
- #define DSP_HDRVER 0x20