audiosdl.bmx 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. ' Copyright (c) 2016-2022 Bruce A Henderson
  2. '
  3. ' This software is provided 'as-is', without any express or implied
  4. ' warranty. In no event will the authors be held liable for any damages
  5. ' arising from the use of this software.
  6. '
  7. ' Permission is granted to anyone to use this software for any purpose,
  8. ' including commercial applications, and to alter it and redistribute it
  9. ' freely, subject to the following restrictions:
  10. '
  11. ' 1. The origin of this software must not be misrepresented; you must not
  12. ' claim that you wrote the original software. If you use this software
  13. ' in a product, an acknowledgment in the product documentation would be
  14. ' appreciated but is not required.
  15. '
  16. ' 2. Altered source versions must be plainly marked as such, and must not be
  17. ' misrepresented as being the original software.
  18. '
  19. ' 3. This notice may not be removed or altered from any source
  20. ' distribution.
  21. '
  22. SuperStrict
  23. Rem
  24. bbdoc: SDL Audio Driver.
  25. End Rem
  26. Module Audio.AudioSDL
  27. Import Audio.SoloudSDL
  28. Import Audio.SoloudAudio
  29. Type TSDLSoloudAudioDriver Extends TSoloudAudioDriver
  30. Method Backend:Int() Override
  31. Return SOLOUD_SDL2
  32. End Method
  33. End Type
  34. ?win32
  35. New TDirectSoundSoloudAudioDriver
  36. New TWinmMMSoloudAudioDriver
  37. New TDefaultSoloudAudioDriver
  38. Type TDirectSoundSoloudAudioDriver Extends TSDLSoloudAudioDriver
  39. Method Name:String() Override
  40. Return "SoLoud::DirectSound"
  41. End Method
  42. Method Startup:Int() Override
  43. SDLAudioInit("directsound")
  44. Return Super.Startup()
  45. End Method
  46. End Type
  47. Type TWinmMMSoloudAudioDriver Extends TSDLSoloudAudioDriver
  48. Method Name:String() Override
  49. Return "SoLoud::WinMM"
  50. End Method
  51. Method Startup:Int() Override
  52. SDLAudioInit("winmm")
  53. Return Super.Startup()
  54. End Method
  55. End Type
  56. Type TDefaultSoloudAudioDriver Extends TDirectSoundSoloudAudioDriver
  57. Method Name:String() Override
  58. Return "SoLoud"
  59. End Method
  60. End Type
  61. ?linux
  62. New TALSASoloudAudioDriver
  63. New TPulseAudioSoloudAudioDriver
  64. New TOSSSoloudAudioDriver
  65. New TNASSoloudAudioDriver
  66. New TDefaultSoloudAudioDriver
  67. Type TALSASoloudAudioDriver Extends TSDLSoloudAudioDriver
  68. Method Name:String() Override
  69. Return "SoLoud::ALSA"
  70. End Method
  71. Method Startup:Int() Override
  72. SDLAudioInit("alsa")
  73. Return Super.Startup()
  74. End Method
  75. End Type
  76. Type TPulseAudioSoloudAudioDriver Extends TSDLSoloudAudioDriver
  77. Method Name:String() Override
  78. Return "SoLoud::PulseAudio"
  79. End Method
  80. Method Startup:Int() Override
  81. SDLAudioInit("pulseaudio")
  82. Return Super.Startup()
  83. End Method
  84. End Type
  85. Type TOSSSoloudAudioDriver Extends TSDLSoloudAudioDriver
  86. Method Name:String() Override
  87. Return "SoLoud::OSS"
  88. End Method
  89. Method Startup:Int() Override
  90. SDLAudioInit("dsp")
  91. Return Super.Startup()
  92. End Method
  93. End Type
  94. Type TNASSoloudAudioDriver Extends TSDLSoloudAudioDriver
  95. Method Name:String() Override
  96. Return "SoLoud::NAS"
  97. End Method
  98. Method Startup:Int() Override
  99. SDLAudioInit("nas")
  100. Return Super.Startup()
  101. End Method
  102. End Type
  103. Type TDefaultSoloudAudioDriver Extends TPulseAudioSoloudAudioDriver
  104. Method Name:String() Override
  105. Return "SoLoud"
  106. End Method
  107. End Type
  108. ?macos
  109. New TCoreAudioSoloudAudioDriver
  110. New TDefaultSoloudAudioDriver
  111. Type TCoreAudioSoloudAudioDriver Extends TSDLSoloudAudioDriver
  112. Method Name:String() Override
  113. Return "SoLoud::CoreAudio"
  114. End Method
  115. Method Startup:Int() Override
  116. SDLAudioInit("coreaudio")
  117. Return Super.Startup()
  118. End Method
  119. End Type
  120. Type TDefaultSoloudAudioDriver Extends TCoreAudioSoloudAudioDriver
  121. Method Name:String() Override
  122. Return "SoLoud"
  123. End Method
  124. End Type
  125. ?haiku
  126. New THaikuSoloudAudioDriver
  127. New TDefaultSoloudAudioDriver
  128. Type THaikuSoloudAudioDriver Extends TSDLSoloudAudioDriver
  129. Method Name:String() Override
  130. Return "SoLoud::Haiku"
  131. End Method
  132. Method Startup:Int() Override
  133. SDLAudioInit("haiku")
  134. Return Super.Startup()
  135. End Method
  136. End Type
  137. Type TDefaultSoloudAudioDriver Extends THaikuSoloudAudioDriver
  138. Method Name:String() Override
  139. Return "SoLoud"
  140. End Method
  141. End Type
  142. ?
  143. SetAudioDriver "SoLoud"