null.cpp 1.9 KB

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