-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbass_vfx.h
145 lines (121 loc) · 5.68 KB
/
bass_vfx.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/*---------------------------------------------------------------------------------
BASS_VFX 1.0 - Visual FX extension to the BASS Audio Library
Visual Effects:
Spectrum
Specbands
Spec3D
Waveform
-----------------------------------------------------------------------------------
filename : bass_vfx.h
description: main header file
-----------------------------------------------------------------------------------
website: https://www.jobnik.net/projects/bass_vfx
forums : https://www.un4seen.com/forum/?board=1
https://www.jobnik.net/forums
e-mail : bass_vfx@jobnik.net
-----------------------------------------------------------------------------------
Copyright (c) 2008, (: JOBnik! :) [Arthur Aminov, ISRAEL]
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions 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.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------------*/
#ifndef BASS_VFX_H
#define BASS_VFX_H
#ifdef __cplusplus
extern "C" {
#endif
#define BASS_VFXVERSION 0x100 // API version
#define BASS_VFXVERSIONTEXT "1.0"
#ifndef BASS_VFXDEF
#define BASS_VFXDEF(f) WINAPI f
#endif
//---------------------------------------------------------------------------------
// vfx handle
//---------------------------------------------------------------------------------
typedef DWORD HVFX;
//---------------------------------------------------------------------------------
// bass_vfx version
//---------------------------------------------------------------------------------
DWORD BASS_VFXDEF(BASS_VFX_GetVersion)();
// RETURN : For example, 0x01020304 (hex), would be version 1.2.3.4
//---------------------------------------------------------------------------------
// V F X (Visual Effects)
//---------------------------------------------------------------------------------
enum {
BASS_VFX_SPECTRUM,
BASS_VFX_SPECBANDS,
BASS_VFX_SPEC3D,
BASS_VFX_WAVEFORM
};
//---------------------------------------------------------------------------------
// shared parameters for all visual effects
//---------------------------------------------------------------------------------
typedef struct {
HWND hWnd; // window handle
int lWidth; // window width
int lHeight; // window height
UINT uTimerDelay; // timer delay
UINT uTimerResolution; // timer resolution
int lBkGrndColor; // display background color
} BASS_VFXSHARED;
//---------------------------------------------------------------------------------
// Spectrum
//---------------------------------------------------------------------------------
#define BASS_VFX_SPECTRUM_SCALE_SQRT 0
#define BASS_VFX_SPECTRUM_SCALE_LINEAR 1
typedef struct {
BASS_VFXSHARED shared;
int lScale; // BASS_VFX_SPECTRUM_SCALE_xxx
int lFFTsize; // 128/256/512/1024/2048/4096
BOOL lCombineBins; // combine multiple bins
} BASS_VFXSPECTRUM;
//---------------------------------------------------------------------------------
// Specbands
//---------------------------------------------------------------------------------
typedef struct {
BASS_VFXSHARED shared;
int lBands; // number of bands
int lFFTsize; // 128/256/512/1024/2048/4096
} BASS_VFXSPECBANDS;
//---------------------------------------------------------------------------------
// Spec3D
//---------------------------------------------------------------------------------
typedef struct {
BASS_VFXSHARED shared;
int lMarkerPos; // marker position
int lFFTsize; // 128/256/512/1024/2048/4096
BOOL lCombineBins; // combine multiple bins
} BASS_VFXSPEC3D;
//---------------------------------------------------------------------------------
// Waveform
//---------------------------------------------------------------------------------
typedef struct {
BASS_VFXSHARED shared;
} BASS_VFXWAVEFORM;
//---------------------------------------------------------------------------------
// functions
//---------------------------------------------------------------------------------
HVFX BASS_VFXDEF(BASS_VFX_Set)(DWORD handle, HWND hWnd, int vfx);
BOOL BASS_VFXDEF(BASS_VFX_Remove)(DWORD handle, HVFX vfx);
BOOL BASS_VFXDEF(BASS_VFX_SetParameters)(HVFX handle, const void *params);
BOOL BASS_VFXDEF(BASS_VFX_GetParameters)(HVFX handle, void *params);
BOOL BASS_VFXDEF(BASS_VFX_Reset)(HVFX handle);
#ifdef __cplusplus
}
#endif
#endif