tjosk reports:
"seriously, you wrote it as a lib, but are using too generic function names
(and i dont even want to think if there are global variables/defs that might
conflict too). some time ago i've reported that libxmp defines 'inflate'
function which is also used in libz (my quick fix was to change all
occurances of 'inflate' to 'xmp_inflate'). now there is another:
/1/_src/oscp/local/usr/local/lib/libxmp.a(mix_paula.o): In function `paula_init':
mix_paula.c:(.text.paula_init+0x0): multiple definition of `paula_init'
/1/_src/oscp/local/usr/local/lib/libsc68.a(paulaemul.o):paulaemul.c:(.text.paula_init+0x0): first defined here
collect2: error: ld returned 1 exit status
both things can be simply renamed in libxmp without breaking anything. please do!"
Add libxmp_ prefix to some local functions to prevent namespace clashes when
statically linking the library.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Instead of using linear and mod range quirks, use a dedicated period type
file. This can be also used to frequency-based formats such as 669.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Move memory allocation in module scan functions to load epilogue to avoid
testing and handling allocation errors during module replay.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
The player can be in one of the following states:
XMP_STATE_UNLOADED: after context creation or module release
XMP_STATE_LOADED : when a module is loaded but not playing
XMP_STATE_PLAYING : when a module is loaded and playing
Tracking the player state also allows us to proper end the player and
release the module if xmp_free_context() is called during replay, (or
end the player if xmp_release_module() is called).
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
The regression test suite is important for development but for end user
tests a simpler check is sufficient.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>