sound.lua 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. -- love.sound
  2. --------------------------------------------------------------------------------
  3. --------------------------------------------------------------------------------
  4. ------------------------------------OBJECTS-------------------------------------
  5. --------------------------------------------------------------------------------
  6. --------------------------------------------------------------------------------
  7. -- Decoder (love.sound.newDecoder)
  8. love.test.sound.Decoder = function(test)
  9. -- create obj
  10. local decoder = love.sound.newDecoder('resources/click.ogg')
  11. test:assertObject(decoder)
  12. -- check decoder props
  13. test:assertMatch({8, 16}, decoder:getBitDepth(), 'check bit depth')
  14. test:assertMatch({1, 2}, decoder:getChannelCount(), 'check channel count')
  15. test:assertEquals(66, math.floor(decoder:getDuration()*1000), 'check duration')
  16. test:assertEquals(44100, decoder:getSampleRate(), 'check sample rate')
  17. -- check makes sound data (test in method below)
  18. test:assertObject(decoder:decode())
  19. -- check cloning sound
  20. local clone = decoder:clone()
  21. test:assertMatch({8, 16}, clone:getBitDepth(), 'check cloned bit depth')
  22. test:assertMatch({1, 2}, clone:getChannelCount(), 'check cloned channel count')
  23. test:assertEquals(66, math.floor(clone:getDuration()*1000), 'check cloned duration')
  24. test:assertEquals(44100, clone:getSampleRate(), 'check cloned sample rate')
  25. end
  26. -- SoundData (love.sound.newSoundData)
  27. love.test.sound.SoundData = function(test)
  28. -- create obj
  29. local sdata = love.sound.newSoundData('resources/click.ogg')
  30. test:assertObject(sdata)
  31. -- check data props
  32. test:assertEquals(11708, sdata:getSize(), 'check size')
  33. test:assertNotNil(sdata:getString())
  34. test:assertMatch({8, 16}, sdata:getBitDepth(), 'check bit depth')
  35. test:assertMatch({1, 2}, sdata:getChannelCount(), 'check channel count')
  36. test:assertEquals(66, math.floor(sdata:getDuration()*1000), 'check duration')
  37. test:assertEquals(44100, sdata:getSampleRate(), 'check sample rate')
  38. test:assertEquals(2927, sdata:getSampleCount(), 'check sample count')
  39. -- check cloning
  40. local clone = sdata:clone()
  41. test:assertEquals(11708, clone:getSize(), 'check clone size')
  42. test:assertNotNil(clone:getString())
  43. test:assertMatch({8, 16}, clone:getBitDepth(), 'check clone bit depth')
  44. test:assertMatch({1, 2}, clone:getChannelCount(), 'check clone channel count')
  45. test:assertEquals(66, math.floor(clone:getDuration()*1000), 'check clone duration')
  46. test:assertEquals(44100, clone:getSampleRate(), 'check clone sample rate')
  47. test:assertEquals(2927, clone:getSampleCount(), 'check clone sample count')
  48. -- check sample setting
  49. test:assertEquals(-22, math.floor(sdata:getSample(0.001)*100000), 'check sample 1')
  50. test:assertEquals(-22, math.floor(sdata:getSample(0.005)*100000), 'check sample 1')
  51. sdata:setSample(0.002, 1)
  52. test:assertEquals(1, sdata:getSample(0.002), 'check setting sample manually')
  53. end
  54. --------------------------------------------------------------------------------
  55. --------------------------------------------------------------------------------
  56. ------------------------------------METHODS-------------------------------------
  57. --------------------------------------------------------------------------------
  58. --------------------------------------------------------------------------------
  59. -- love.sound.newDecoder
  60. -- @NOTE this is just basic nil checking, objs have their own test method
  61. love.test.sound.newDecoder = function(test)
  62. test:assertObject(love.sound.newDecoder('resources/click.ogg'))
  63. end
  64. -- love.sound.newSoundData
  65. -- @NOTE this is just basic nil checking, objs have their own test method
  66. love.test.sound.newSoundData = function(test)
  67. test:assertObject(love.sound.newSoundData('resources/click.ogg'))
  68. test:assertObject(love.sound.newSoundData(math.floor((1/32)*44100), 44100, 16, 1))
  69. end