diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-04-05 09:21:07 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-04-05 09:21:07 +0000 |
| commit | 5531be1e4e7a5988f5ee2cb1c78a8996acfe7789 (patch) | |
| tree | 095962c01ca41db99707ab88b54ce9a8f97dd846 /src/plugins/Effect | |
| parent | c685eb34a9657ab6788c8e785936b0bfe0bc7cfc (diff) | |
| download | qmmp-5531be1e4e7a5988f5ee2cb1c78a8996acfe7789.tar.gz qmmp-5531be1e4e7a5988f5ee2cb1c78a8996acfe7789.tar.bz2 qmmp-5531be1e4e7a5988f5ee2cb1c78a8996acfe7789.zip | |
libbs2b 3.0.0 support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@891 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Effect')
| -rw-r--r-- | src/plugins/Effect/bs2b/bs2bplugin.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/plugins/Effect/bs2b/bs2bplugin.cpp b/src/plugins/Effect/bs2b/bs2bplugin.cpp index acfeceb9f..494ee43b7 100644 --- a/src/plugins/Effect/bs2b/bs2bplugin.cpp +++ b/src/plugins/Effect/bs2b/bs2bplugin.cpp @@ -36,6 +36,15 @@ Bs2bPlugin::~Bs2bPlugin() bs2b_clear(m_bs2b_handler); } +#if (BS2B_VERSION_INT) >= 0x030000 +#define CASE_BS2B(bitsPerSample, dataType, functionToCall, samples, out_data) \ + case bitsPerSample: \ + { \ + dataType * data = reinterpret_cast<dataType *>(*out_data); \ + functionToCall(m_bs2b_handler, data, samples); \ + } \ + break; +#else #define CASE_BS2B(bitsPerSample, dataType, functionToCall, samples, out_data) \ case bitsPerSample: \ { \ @@ -47,6 +56,8 @@ Bs2bPlugin::~Bs2bPlugin() } \ break; +#endif + ulong Bs2bPlugin::process(char *in_data, const ulong size, char **out_data) { memcpy(*out_data, in_data, size); @@ -54,14 +65,23 @@ ulong Bs2bPlugin::process(char *in_data, const ulong size, char **out_data) return size; uint samples = size / (bitsPerSample() / 8) / 2; + switch (bitsPerSample()) { +#if (BS2B_VERSION_INT) >= 0x030000 + CASE_BS2B(8, int8_t, bs2b_cross_feed_s8, samples, out_data) + CASE_BS2B(16, int16_t, bs2b_cross_feed_s16le, samples, out_data) + CASE_BS2B(24, bs2b_int24_t, bs2b_cross_feed_s24, samples, out_data) + CASE_BS2B(32, int32_t, bs2b_cross_feed_s32le, samples, out_data) +#else CASE_BS2B(8, char, bs2b_cross_feed_s8, samples, out_data) CASE_BS2B(16, short, bs2b_cross_feed_16, samples, out_data) CASE_BS2B(32, long, bs2b_cross_feed_32, samples, out_data) +#endif default: ; // noop } + return size; } |
