1 
2 #include "config.h"
3 
4 #include "AL/al.h"
5 #include "AL/efx.h"
6 
7 #include "effects.h"
8 #include "effects/base.h"
9 
10 
11 namespace {
12 
Null_setParami(EffectProps *,ALenum param,int)13 void Null_setParami(EffectProps* /*props*/, ALenum param, int /*val*/)
14 {
15     switch(param)
16     {
17     default:
18         throw effect_exception{AL_INVALID_ENUM, "Invalid null effect integer property 0x%04x",
19             param};
20     }
21 }
Null_setParamiv(EffectProps * props,ALenum param,const int * vals)22 void Null_setParamiv(EffectProps *props, ALenum param, const int *vals)
23 {
24     switch(param)
25     {
26     default:
27         Null_setParami(props, param, vals[0]);
28     }
29 }
Null_setParamf(EffectProps *,ALenum param,float)30 void Null_setParamf(EffectProps* /*props*/, ALenum param, float /*val*/)
31 {
32     switch(param)
33     {
34     default:
35         throw effect_exception{AL_INVALID_ENUM, "Invalid null effect float property 0x%04x",
36             param};
37     }
38 }
Null_setParamfv(EffectProps * props,ALenum param,const float * vals)39 void Null_setParamfv(EffectProps *props, ALenum param, const float *vals)
40 {
41     switch(param)
42     {
43     default:
44         Null_setParamf(props, param, vals[0]);
45     }
46 }
47 
Null_getParami(const EffectProps *,ALenum param,int *)48 void Null_getParami(const EffectProps* /*props*/, ALenum param, int* /*val*/)
49 {
50     switch(param)
51     {
52     default:
53         throw effect_exception{AL_INVALID_ENUM, "Invalid null effect integer property 0x%04x",
54             param};
55     }
56 }
Null_getParamiv(const EffectProps * props,ALenum param,int * vals)57 void Null_getParamiv(const EffectProps *props, ALenum param, int *vals)
58 {
59     switch(param)
60     {
61     default:
62         Null_getParami(props, param, vals);
63     }
64 }
Null_getParamf(const EffectProps *,ALenum param,float *)65 void Null_getParamf(const EffectProps* /*props*/, ALenum param, float* /*val*/)
66 {
67     switch(param)
68     {
69     default:
70         throw effect_exception{AL_INVALID_ENUM, "Invalid null effect float property 0x%04x",
71             param};
72     }
73 }
Null_getParamfv(const EffectProps * props,ALenum param,float * vals)74 void Null_getParamfv(const EffectProps *props, ALenum param, float *vals)
75 {
76     switch(param)
77     {
78     default:
79         Null_getParamf(props, param, vals);
80     }
81 }
82 
genDefaultProps()83 EffectProps genDefaultProps() noexcept
84 {
85     EffectProps props{};
86     return props;
87 }
88 
89 } // namespace
90 
91 DEFINE_ALEFFECT_VTABLE(Null);
92 
93 const EffectProps NullEffectProps{genDefaultProps()};
94