diff options
author | JP Cimalando <jpcima@users.noreply.github.com> | 2018-04-15 14:09:41 +0200 |
---|---|---|
committer | JP Cimalando <jpcima@users.noreply.github.com> | 2018-04-15 14:09:41 +0200 |
commit | 347dca55bb25f61a0cd2d2b45529944da764e734 (patch) | |
tree | 59831bc2949f7ad638123c4380b10bbbc1e27b4a /src/adlmidi_private.hpp | |
parent | 3ed5907fd849a27ee770fed599a22d0841fe9f19 (diff) | |
download | libADLMIDI-347dca55bb25f61a0cd2d2b45529944da764e734.tar.gz libADLMIDI-347dca55bb25f61a0cd2d2b45529944da764e734.tar.bz2 libADLMIDI-347dca55bb25f61a0cd2d2b45529944da764e734.zip |
add more sample types
Diffstat (limited to 'src/adlmidi_private.hpp')
-rw-r--r-- | src/adlmidi_private.hpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 271bc5e..b60c7c0 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -153,6 +153,32 @@ inline int32_t adl_cvtS8(int32_t x) { return adl_cvtS16(x) / 256; } +inline int32_t adl_cvtS24(int32_t x) +{ + return adl_cvtS16(x) * 256; +} +inline int32_t adl_cvtS32(int32_t x) +{ + return adl_cvtS16(x) * 65536; +} +inline int32_t adl_cvtU16(int32_t x) +{ + return adl_cvtS16(x) - INT16_MIN; +} +inline int32_t adl_cvtU8(int32_t x) +{ + return adl_cvtS8(x) - INT8_MIN; +} +inline int32_t adl_cvtU24(int32_t x) +{ + enum { int24_min = -(1 << 23) }; + return adl_cvtS24(x) - int24_min; +} +inline int32_t adl_cvtU32(int32_t x) +{ + // unsigned operation because overflow on signed integers is undefined + return (uint32_t)adl_cvtS32(x) - (uint32_t)INT32_MIN; +} /* Smart pointer for C heaps, created with malloc() call. |