Fixed some documentation and raised errors

This commit is contained in:
nucular 2016-03-05 19:39:12 +01:00
parent e300cb8548
commit 57ccea261e
3 changed files with 135 additions and 77 deletions

View File

@ -113,7 +113,7 @@
</tr>
<tr>
<td class="name" nowrap><a href="#self.waveform">self.waveform</a></td>
<td class="summary">(<a href="../index.html#WAVEFORM"><em>WAVEFORM</em></a>) The base wave form</td>
<td class="summary">The base <a href="../index.html#WAVEFORM">wave form</a> (<em>default</em> <a href="../index.html#WAVEFORM">SQUARE</a>)</td>
</tr>
<tr>
<td class="name" nowrap><a href="#self.envelope.attack">self.envelope.attack</a></td>
@ -124,7 +124,7 @@
<tr>
<td class="name" nowrap><a href="#self.envelope.sustain">self.envelope.sustain</a></td>
<td class="summary">Sustain time:
Time the sound sustains on its peak volume
Time the sound stays on its peak volume
(<em>default</em> 0.0, <em>min</em> 0.0, <em>max</em> 1.0)</td>
</tr>
<tr>
@ -272,7 +272,7 @@
<td class="summary">Generate the sound to a binary string.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#sfxr.Sound:generateSoundData">sfxr.Sound:generateSoundData ([rate=44100[, depth=0[, a]]])</a></td>
<td class="name" nowrap><a href="#sfxr.Sound:generateSoundData">sfxr.Sound:generateSoundData ([rate=44100[, depth=0[, sounddata]]])</a></td>
<td class="summary">Synthesize the sound to a LÖVE SoundData instance.</td>
</tr>
<tr>
@ -316,7 +316,7 @@
<td class="summary">Generate and export the audio data to a PCM WAVE file.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#sfxr.Sound:save">sfxr.Sound:save (f[, to=true])</a></td>
<td class="name" nowrap><a href="#sfxr.Sound:save">sfxr.Sound:save (f[, minify=true])</a></td>
<td class="summary">Save the sound parameters to a file as a Lua table</td>
</tr>
<tr>
@ -325,11 +325,12 @@
</tr>
<tr>
<td class="name" nowrap><a href="#sfxr.Sound:saveBinary">sfxr.Sound:saveBinary (f)</a></td>
<td class="summary">Save the sound parameters to a file in the sfxr binary format</td>
<td class="summary">Save the sound parameters to a file in the sfxr binary format (version 102)</td>
</tr>
<tr>
<td class="name" nowrap><a href="#sfxr.Sound:loadBinary">sfxr.Sound:loadBinary (f)</a></td>
<td class="summary">Load the sound parameters from a file in the sfxr binary format</td>
<td class="summary">Load the sound parameters from a file in the sfxr binary format
(version 100, 101, 102)</td>
</tr>
</table>
@ -579,7 +580,7 @@
<strong>self.waveform</strong>
</dt>
<dd>
(<a href="../index.html#WAVEFORM"><em>WAVEFORM</em></a>) The base wave form
The base <a href="../index.html#WAVEFORM">wave form</a> (<em>default</em> <a href="../index.html#WAVEFORM">SQUARE</a>)
@ -610,7 +611,7 @@
</dt>
<dd>
Sustain time:
Time the sound sustains on its peak volume
Time the sound stays on its peak volume
(<em>default</em> 0.0, <em>min</em> 0.0, <em>max</em> 1.0)
@ -987,6 +988,8 @@
a generator that yields the sample data when called
</ol>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x"
<h3>Usage:</h3>
@ -1017,6 +1020,8 @@
</ul>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x"
@ -1058,6 +1063,8 @@
the number of written samples (== #tab)</li>
</ol>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x"
@ -1099,13 +1106,15 @@
the number of written samples</li>
</ol>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x", "invalid endianness: x"
</dd>
<dt>
<a name = "sfxr.Sound:generateSoundData"></a>
<strong>sfxr.Sound:generateSoundData ([rate=44100[, depth=0[, a]]])</strong>
<strong>sfxr.Sound:generateSoundData ([rate=44100[, depth=0[, sounddata]]])</strong>
</dt>
<dd>
Synthesize the sound to a LÖVE SoundData instance.
@ -1123,10 +1132,10 @@
the bit depth
(<em>default</em> 0)
</li>
<li><span class="parameter">a</span>
<li><span class="parameter">sounddata</span>
<span class="types"><span class="type">love.sound.SoundData</span></span>
SoundData instance (will be created if
not passed)
a SoundData instance (will be
created if not passed)
(<em>optional</em>)
</li>
</ul>
@ -1141,6 +1150,8 @@
the number of written samples</li>
</ol>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x"
@ -1364,7 +1375,8 @@
<ul>
<li><span class="parameter">f</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a>, <span class="type">file</span> or <span class="type">love.filesystem.File</span></span>
a file path, a Lua file object, a love.filesystem.File instance
a path or file in <code>wb</code>-mode
(passed files will not be closed)
</li>
<li><span class="parameter">rate</span>
<span class="types"><a class="type" href="../index.html#SAMPLERATE">SAMPLERATE</a></span>
@ -1379,13 +1391,15 @@
</ul>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x"
</dd>
<dt>
<a name = "sfxr.Sound:save"></a>
<strong>sfxr.Sound:save (f[, to=true])</strong>
<strong>sfxr.Sound:save (f[, minify=true])</strong>
</dt>
<dd>
Save the sound parameters to a file as a Lua table
@ -1395,11 +1409,12 @@
<ul>
<li><span class="parameter">f</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a>, <span class="type">file</span> or <span class="type">love.filesystem.File</span></span>
a file path, a Lua file object, a love.filesystem.File instance
a path or file in <code>w</code>-mode
(passed files will not be closed)
</li>
<li><span class="parameter">to</span>
<span class="types"><span class="type">whether</span></span>
minify the output
<li><span class="parameter">minify</span>
<span class="types"><span class="type">bool</span></span>
whether to minify the output or not
(<em>default</em> true)
</li>
</ul>
@ -1421,11 +1436,14 @@
<ul>
<li><span class="parameter">f</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a>, <span class="type">file</span> or <span class="type">love.filesystem.File</span></span>
a file path, a Lua file object, a love.filesystem.File instance
a path or file in <code>r</code>-mode
(passed files will not be closed)
</li>
</ul>
<h3>Raises:</h3>
"incompatible version: x.x.x"
@ -1435,14 +1453,15 @@
<strong>sfxr.Sound:saveBinary (f)</strong>
</dt>
<dd>
Save the sound parameters to a file in the sfxr binary format
Save the sound parameters to a file in the sfxr binary format (version 102)
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">f</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a>, <span class="type">file</span> or <span class="type">love.filesystem.File</span></span>
a file path, a Lua file object, a love.filesystem.File instance
a path or file in <code>wb</code>-mode
(passed files will not be closed)
</li>
</ul>
@ -1457,17 +1476,21 @@
</dt>
<dd>
Load the sound parameters from a file in the sfxr binary format
(version 100, 101, 102)
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">f</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a>, <span class="type">file</span> or <span class="type">love.filesystem.File</span></span>
a file path, a Lua file object, a love.filesystem.File instance
a path or file in <code>rb</code>-mode
(passed files will not be closed)
</li>
</ul>
<h3>Raises:</h3>
"incompatible version: x", "unexpected file length"
@ -1479,7 +1502,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.3</a></i>
<i style="float:right;">Last updated 2016-03-02 00:35:01 </i>
<i style="float:right;">Last updated 2016-03-05 19:36:51 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

View File

@ -113,7 +113,7 @@
</tr>
<tr>
<td class="name" nowrap><a href="#self.waveform">self.waveform</a></td>
<td class="summary">(<a href="index.html#WAVEFORM"><em>WAVEFORM</em></a>) The base wave form</td>
<td class="summary">The base <a href="index.html#WAVEFORM">wave form</a> (<em>default</em> <a href="index.html#WAVEFORM">SQUARE</a>)</td>
</tr>
<tr>
<td class="name" nowrap><a href="#self.envelope.attack">self.envelope.attack</a></td>
@ -124,7 +124,7 @@
<tr>
<td class="name" nowrap><a href="#self.envelope.sustain">self.envelope.sustain</a></td>
<td class="summary">Sustain time:
Time the sound sustains on its peak volume
Time the sound stays on its peak volume
(<em>default</em> 0.0, <em>min</em> 0.0, <em>max</em> 1.0)</td>
</tr>
<tr>
@ -272,7 +272,7 @@
<td class="summary">Generate the sound to a binary string.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#sfxr.Sound:generateSoundData">sfxr.Sound:generateSoundData ([rate=44100[, depth=0[, a]]])</a></td>
<td class="name" nowrap><a href="#sfxr.Sound:generateSoundData">sfxr.Sound:generateSoundData ([rate=44100[, depth=0[, sounddata]]])</a></td>
<td class="summary">Synthesize the sound to a LÖVE SoundData instance.</td>
</tr>
<tr>
@ -316,7 +316,7 @@
<td class="summary">Generate and export the audio data to a PCM WAVE file.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#sfxr.Sound:save">sfxr.Sound:save (f[, to=true])</a></td>
<td class="name" nowrap><a href="#sfxr.Sound:save">sfxr.Sound:save (f[, minify=true])</a></td>
<td class="summary">Save the sound parameters to a file as a Lua table</td>
</tr>
<tr>
@ -325,11 +325,12 @@
</tr>
<tr>
<td class="name" nowrap><a href="#sfxr.Sound:saveBinary">sfxr.Sound:saveBinary (f)</a></td>
<td class="summary">Save the sound parameters to a file in the sfxr binary format</td>
<td class="summary">Save the sound parameters to a file in the sfxr binary format (version 102)</td>
</tr>
<tr>
<td class="name" nowrap><a href="#sfxr.Sound:loadBinary">sfxr.Sound:loadBinary (f)</a></td>
<td class="summary">Load the sound parameters from a file in the sfxr binary format</td>
<td class="summary">Load the sound parameters from a file in the sfxr binary format
(version 100, 101, 102)</td>
</tr>
</table>
@ -579,7 +580,7 @@
<strong>self.waveform</strong>
</dt>
<dd>
(<a href="index.html#WAVEFORM"><em>WAVEFORM</em></a>) The base wave form
The base <a href="index.html#WAVEFORM">wave form</a> (<em>default</em> <a href="index.html#WAVEFORM">SQUARE</a>)
@ -610,7 +611,7 @@
</dt>
<dd>
Sustain time:
Time the sound sustains on its peak volume
Time the sound stays on its peak volume
(<em>default</em> 0.0, <em>min</em> 0.0, <em>max</em> 1.0)
@ -987,6 +988,8 @@
a generator that yields the sample data when called
</ol>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x"
<h3>Usage:</h3>
@ -1017,6 +1020,8 @@
</ul>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x"
@ -1058,6 +1063,8 @@
the number of written samples (== #tab)</li>
</ol>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x"
@ -1099,13 +1106,15 @@
the number of written samples</li>
</ol>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x", "invalid endianness: x"
</dd>
<dt>
<a name = "sfxr.Sound:generateSoundData"></a>
<strong>sfxr.Sound:generateSoundData ([rate=44100[, depth=0[, a]]])</strong>
<strong>sfxr.Sound:generateSoundData ([rate=44100[, depth=0[, sounddata]]])</strong>
</dt>
<dd>
Synthesize the sound to a LÖVE SoundData instance.
@ -1123,10 +1132,10 @@
the bit depth
(<em>default</em> 0)
</li>
<li><span class="parameter">a</span>
<li><span class="parameter">sounddata</span>
<span class="types"><span class="type">love.sound.SoundData</span></span>
SoundData instance (will be created if
not passed)
a SoundData instance (will be
created if not passed)
(<em>optional</em>)
</li>
</ul>
@ -1141,6 +1150,8 @@
the number of written samples</li>
</ol>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x"
@ -1364,7 +1375,8 @@
<ul>
<li><span class="parameter">f</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a>, <span class="type">file</span> or <span class="type">love.filesystem.File</span></span>
a file path, a Lua file object, a love.filesystem.File instance
a path or file in <code>wb</code>-mode
(passed files will not be closed)
</li>
<li><span class="parameter">rate</span>
<span class="types"><a class="type" href="index.html#SAMPLERATE">SAMPLERATE</a></span>
@ -1379,13 +1391,15 @@
</ul>
<h3>Raises:</h3>
"invalid sample rate: x", "invalid bit depth: x"
</dd>
<dt>
<a name = "sfxr.Sound:save"></a>
<strong>sfxr.Sound:save (f[, to=true])</strong>
<strong>sfxr.Sound:save (f[, minify=true])</strong>
</dt>
<dd>
Save the sound parameters to a file as a Lua table
@ -1395,11 +1409,12 @@
<ul>
<li><span class="parameter">f</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a>, <span class="type">file</span> or <span class="type">love.filesystem.File</span></span>
a file path, a Lua file object, a love.filesystem.File instance
a path or file in <code>w</code>-mode
(passed files will not be closed)
</li>
<li><span class="parameter">to</span>
<span class="types"><span class="type">whether</span></span>
minify the output
<li><span class="parameter">minify</span>
<span class="types"><span class="type">bool</span></span>
whether to minify the output or not
(<em>default</em> true)
</li>
</ul>
@ -1421,11 +1436,14 @@
<ul>
<li><span class="parameter">f</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a>, <span class="type">file</span> or <span class="type">love.filesystem.File</span></span>
a file path, a Lua file object, a love.filesystem.File instance
a path or file in <code>r</code>-mode
(passed files will not be closed)
</li>
</ul>
<h3>Raises:</h3>
"incompatible version: x.x.x"
@ -1435,14 +1453,15 @@
<strong>sfxr.Sound:saveBinary (f)</strong>
</dt>
<dd>
Save the sound parameters to a file in the sfxr binary format
Save the sound parameters to a file in the sfxr binary format (version 102)
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">f</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a>, <span class="type">file</span> or <span class="type">love.filesystem.File</span></span>
a file path, a Lua file object, a love.filesystem.File instance
a path or file in <code>wb</code>-mode
(passed files will not be closed)
</li>
</ul>
@ -1457,17 +1476,21 @@
</dt>
<dd>
Load the sound parameters from a file in the sfxr binary format
(version 100, 101, 102)
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">f</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a>, <span class="type">file</span> or <span class="type">love.filesystem.File</span></span>
a file path, a Lua file object, a love.filesystem.File instance
a path or file in <code>rb</code>-mode
(passed files will not be closed)
</li>
</ul>
<h3>Raises:</h3>
"incompatible version: x", "unexpected file length"
@ -1479,7 +1502,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.3</a></i>
<i style="float:right;">Last updated 2016-03-02 00:35:01 </i>
<i style="float:right;">Last updated 2016-03-05 19:36:51 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

View File

@ -270,7 +270,7 @@ function sfxr.Sound:resetParameters()
-- Times to repeat the frequency slide over the course of the envelope
-- (*default* 0.0, *min* 0.0, *max* 1.0)
self.repeatspeed = 0.0
--- (@{WAVEFORM|*WAVEFORM*}) The base wave form
--- The base @{WAVEFORM|wave form} (*default* @{WAVEFORM|SQUARE})
self.waveform = sfxr.SQUARE
--- Attack time:
@ -278,7 +278,7 @@ function sfxr.Sound:resetParameters()
-- (*default* 0.0, *min* 0.0, *max* 1.0)
self.envelope.attack = 0.0
--- Sustain time:
-- Time the sound sustains on its peak volume
-- Time the sound stays on its peak volume
-- (*default* 0.0, *min* 0.0, *max* 1.0)
self.envelope.sustain = 0.3
--- Sustain punch:
@ -415,11 +415,12 @@ end
-- @usage for s in sound:generate(44100, 0) do
-- -- do something with s
-- end
-- @raise "invalid sample rate: x", "invalid bit depth: x"
function sfxr.Sound:generate(rate, depth)
rate = rate or 44100
depth = depth or 0
assert(sfxr.SAMPLERATE[rate], "Invalid sample rate: " .. tostring(rate))
assert(sfxr.BITDEPTH[depth], "Invalid bit depth: " .. tostring(depth))
assert(sfxr.SAMPLERATE[rate], "invalid sample rate: " .. tostring(rate))
assert(sfxr.BITDEPTH[depth], "invalid bit depth: " .. tostring(depth))
-- Initialize all locals
local fperiod, maxperiod
@ -691,9 +692,10 @@ end
-- Does not take any other limits into account, so the returned count might be
-- higher than samples actually generated. Still useful though.
-- @tparam[opt=44100] SAMPLERATE rate the sample rate
-- @raise "invalid sample rate: x", "invalid bit depth: x"
function sfxr.Sound:getEnvelopeLimit(rate)
rate = rate or 44100
assert(sfxr.SAMPLERATE[rate], "Invalid sample rate: " .. tostring(rate))
assert(sfxr.SAMPLERATE[rate], "invalid sample rate: " .. tostring(rate))
local env_length = {
self.envelope.attack^2 * 100000, --- attack
@ -711,11 +713,12 @@ end
-- @tparam[opt] {} tab the table to synthesize into
-- @treturn {number,...} the table filled with sample data
-- @treturn int the number of written samples (== #tab)
-- @raise "invalid sample rate: x", "invalid bit depth: x"
function sfxr.Sound:generateTable(rate, depth, tab)
rate = rate or 44100
depth = depth or 0
assert(sfxr.SAMPLERATE[rate], "Invalid sample rate: " .. tostring(rate))
assert(sfxr.BITDEPTH[depth], "Invalid bit depth: " .. tostring(depth))
assert(sfxr.SAMPLERATE[rate], "invalid sample rate: " .. tostring(rate))
assert(sfxr.BITDEPTH[depth], "invalid bit depth: " .. tostring(depth))
-- this could really use table pre-allocation, but Lua doesn't provide that
local t = tab or {}
@ -733,12 +736,13 @@ end
-- @tparam[opt=0] ENDIANNESS endianness the endianness (ignored when depth == 8)
-- @treturn string a binary string of sample data
-- @treturn int the number of written samples
-- @raise "invalid sample rate: x", "invalid bit depth: x", "invalid endianness: x"
function sfxr.Sound:generateString(rate, depth, endianness)
rate = rate or 44100
depth = depth or 16
assert(sfxr.SAMPLERATE[rate], "Invalid sample rate: " .. tostring(rate))
assert(sfxr.BITDEPTH[depth] and depth ~= 0, "Invalid bit depth: " .. tostring(depth))
assert(sfxr.ENDIANNESS[endianness], "Invalid endianness: " .. tostring(endianness))
assert(sfxr.SAMPLERATE[rate], "invalid sample rate: " .. tostring(rate))
assert(sfxr.BITDEPTH[depth] and depth ~= 0, "invalid bit depth: " .. tostring(depth))
assert(sfxr.ENDIANNESS[endianness], "invalid endianness: " .. tostring(endianness))
local s = ""
--- buffer for arguments to string.char
@ -778,15 +782,16 @@ end
--- Synthesize the sound to a LÖVE SoundData instance.
-- @tparam[opt=44100] SAMPLERATE rate the sample rate
-- @tparam[opt=0] BITDEPTH depth the bit depth
-- @tparam[opt] love.sound.SoundData a SoundData instance (will be created if
-- not passed)
-- @tparam[opt] love.sound.SoundData sounddata a SoundData instance (will be
-- created if not passed)
-- @treturn love.sound.SoundData a SoundData instance
-- @treturn int the number of written samples
-- @raise "invalid sample rate: x", "invalid bit depth: x"
function sfxr.Sound:generateSoundData(rate, depth, sounddata)
rate = rate or 44100
depth = depth or 0
assert(sfxr.SAMPLERATE[rate], "Invalid sample rate: " .. tostring(rate))
assert(sfxr.BITDEPTH[depth] and depth, "Invalid bit depth: " .. tostring(depth))
assert(sfxr.SAMPLERATE[rate], "invalid sample rate: " .. tostring(rate))
assert(sfxr.BITDEPTH[depth] and depth, "invalid bit depth: " .. tostring(depth))
local tab, count = self:generateTable(rate, depth)
@ -1110,14 +1115,16 @@ function sfxr.Sound:randomBlip(seed)
end
--- Generate and export the audio data to a PCM WAVE file.
-- @tparam ?string|file|love.filesystem.File f a file path, a Lua file object, a love.filesystem.File instance
-- @tparam ?string|file|love.filesystem.File f a path or file in `wb`-mode
-- (passed files will not be closed)
-- @tparam[opt=44100] SAMPLERATE rate the sample rate
-- @tparam[opt=0] BITDEPTH depth the bit depth
-- @raise "invalid sample rate: x", "invalid bit depth: x"
function sfxr.Sound:exportWAV(f, rate, depth)
rate = rate or 44100
depth = depth or 16
assert(sfxr.SAMPLERATE[rate], "Invalid sample rate: " .. tostring(rate))
assert(sfxr.BITDEPTH[depth] and depth ~= 0, "Invalid bit depth: " .. tostring(depth))
assert(sfxr.SAMPLERATE[rate], "invalid sample rate: " .. tostring(rate))
assert(sfxr.BITDEPTH[depth] and depth ~= 0, "invalid bit depth: " .. tostring(depth))
local close = false
if type(f) == "string" then
@ -1216,9 +1223,10 @@ function sfxr.Sound:exportWAV(f, rate, depth)
end
--- Save the sound parameters to a file as a Lua table
-- @tparam ?string|file|love.filesystem.File f a file path, a Lua file object, a love.filesystem.File instance
-- @tparam[opt=true] whether to minify the output
function sfxr.Sound:save(f, compressed)
-- @tparam ?string|file|love.filesystem.File f a path or file in `w`-mode
-- (passed files will not be closed)
-- @tparam[opt=true] bool minify whether to minify the output or not
function sfxr.Sound:save(f, minify)
local close = false
if type(f) == "string" then
f = io.open(f, "w")
@ -1243,14 +1251,14 @@ function sfxr.Sound:save(f, compressed)
if obj ~= def then
local k = table.concat(keys, ".")
if not compressed then
if not minify then
code = code .. "\n" .. string.rep(" ", #keys - 1)
end
code = code .. string.format("%s=%s;", name, obj)
end
elseif type(obj) == "table" then
local spacing = compressed and "" or "\n" .. string.rep(" ", #keys - 1)
local spacing = minify and "" or "\n" .. string.rep(" ", #keys - 1)
code = code .. spacing .. string.format("%s={", name)
for k, v in pairs(obj) do
@ -1273,7 +1281,9 @@ function sfxr.Sound:save(f, compressed)
end
--- Load the sound parameters from a file containing a Lua table
-- @tparam ?string|file|love.filesystem.File f a file path, a Lua file object, a love.filesystem.File instance
-- @tparam ?string|file|love.filesystem.File f a path or file in `r`-mode
-- (passed files will not be closed)
-- @raise "incompatible version: x.x.x"
function sfxr.Sound:load(f)
local close = false
if type(f) == "string" then
@ -1290,9 +1300,7 @@ function sfxr.Sound:load(f)
local params, version = assert(loadstring(code))()
-- check version compatibility
if version > sfxr.VERSION then
error("Incompatible version: " .. tostring(version))
end
assert(version > sfxr.VERSION, "incompatible version: " .. tostring(version))
self:resetParameters()
-- merge the loaded table into the own
@ -1303,8 +1311,9 @@ function sfxr.Sound:load(f)
end
end
--- Save the sound parameters to a file in the sfxr binary format
-- @tparam ?string|file|love.filesystem.File f a file path, a Lua file object, a love.filesystem.File instance
--- Save the sound parameters to a file in the sfxr binary format (version 102)
-- @tparam ?string|file|love.filesystem.File f a path or file in `wb`-mode
-- (passed files will not be closed)
function sfxr.Sound:saveBinary(f)
local close = false
if type(f) == "string" then
@ -1360,7 +1369,10 @@ function sfxr.Sound:saveBinary(f)
end
--- Load the sound parameters from a file in the sfxr binary format
-- @tparam ?string|file|love.filesystem.File f a file path, a Lua file object, a love.filesystem.File instance
-- (version 100, 101, 102)
-- @tparam ?string|file|love.filesystem.File f a path or file in `rb`-mode
-- (passed files will not be closed)
-- @raise "incompatible version: x", "unexpected file length"
function sfxr.Sound:loadBinary(f)
local close = false
if type(f) == "string" then
@ -1394,7 +1406,7 @@ function sfxr.Sound:loadBinary(f)
local version = s:byte(off)
off = off + 4
if version < 100 or version > 102 then
return nil, "unknown version number "..version
error("incompatible version: " .. tostring(version))
end
self.wavetype = s:byte(off)
@ -1435,7 +1447,7 @@ function sfxr.Sound:loadBinary(f)
self.change.amount = readFloat()
end
assert(off-1 == s:len())
assert(off-1 == s:len(), "unexpected file length")
end
return sfxr