diff --git a/examples/src/Main.cpp b/examples/src/Main.cpp index d2adaa1..635a1d9 100644 --- a/examples/src/Main.cpp +++ b/examples/src/Main.cpp @@ -11,7 +11,7 @@ using namespace nqr; -int main() +int main( int argc, const char **argv ) try { AudioDevice::ListAudioDevices(); @@ -69,7 +69,7 @@ int main() //Block-split-stereo-ima4-reaper.wav //auto result = loader.Load(fileData, "test_data/ad_hoc/TestBeat_44_16_mono-ima4-reaper.wav"); - loader.Load(fileData, "test_data/ad_hoc/TestBeat_44_16_stereo-ima4-reaper.wav"); + loader.Load(fileData, argc > 1 ? argv[1] : "test_data/ad_hoc/TestBeat_44_16_stereo-ima4-reaper.wav"); } catch(const UnsupportedExtensionEx & e) { @@ -114,4 +114,21 @@ int main() std::cout << "Encoder Status: " << encoderStatus << std::endl; return 0; -} \ No newline at end of file +} +catch(const UnsupportedExtensionEx & e) +{ + std::cerr << "Caught: " << e.what() << std::endl; +} +catch(const LoadPathNotImplEx & e) +{ + std::cerr << "Caught: " << e.what() << std::endl; +} +catch(const LoadBufferNotImplEx & e) +{ + std::cerr << "Caught: " << e.what() << std::endl; +} +catch (const std::exception & e) +{ + std::cerr << "Caught: " << e.what() << std::endl; + std::exit(1); +} diff --git a/src/MusepackDependencies.c b/src/MusepackDependencies.c index eef206c..cd9b7b1 100644 --- a/src/MusepackDependencies.c +++ b/src/MusepackDependencies.c @@ -40,6 +40,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "musepack/libmpcdec/streaminfo.c" #include "musepack/libmpcdec/synth_filter.c" #include "musepack/libmpcdec/crc32.c" +#include "musepack/libmpcdec/mpc_reader.c" +#include "musepack/libmpcdec/mpc_decoder.c" +#include "musepack/libmpcdec/mpc_demux.c" +#include "musepack/libmpcdec/mpc_bits_reader.c" #ifdef __clang__ #pragma clang diagnostic pop diff --git a/src/OpusDependencies.c b/src/OpusDependencies.c index 326f7bf..b7273d3 100644 --- a/src/OpusDependencies.c +++ b/src/OpusDependencies.c @@ -93,8 +93,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "opus/celt/vq.c" // Disabled inline because of name clash of opus_custom_encoder_get_size. -//#include "opus/celt/celt_decoder.c" -//#include "opus/celt/celt_encoder.c" +#include "opus/celt/celt_decoder.c" +#define opus_custom_encoder_get_size opus_custom_encoder_get_size_alt +#include "opus/celt/celt_encoder.c" /* See celt/celt_decoder.c + celt/celt_encoder.c in the project browser. diff --git a/src/WavPackDependencies.c b/src/WavPackDependencies.c new file mode 100644 index 0000000..a5e46a0 --- /dev/null +++ b/src/WavPackDependencies.c @@ -0,0 +1,68 @@ +/* +Copyright (c) 2015, Dimitri Diakopoulos All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#if (_MSC_VER) + #pragma warning (push) + #pragma warning (disable: 181 111 4267 4996 4244 4701 4702 4133 4100 4127 4206 4312 4505 4365 4005 4013 4334 4703) +#endif + +#ifdef __clang__ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wconversion" + #pragma clang diagnostic ignored "-Wshadow" + #pragma clang diagnostic ignored "-Wdeprecated-register" +#endif + +#ifdef _WIN32 +#ifndef WIN32 +#define WIN32 +#endif +#endif + +#include "wavpack/src/bits.c" +#include "wavpack/src/extra1.c" +#define WavpackExtraInfo WavpackExtraInfo_alt +#define log2overhead log2overhead_alt +#define xtable xtable_alt +#include "wavpack/src/extra2.c" +#include "wavpack/src/float.c" +#include "wavpack/src/metadata.c" +#define decorr_stereo_pass decorr_stereo_pass_alt +#include "wavpack/src/pack.c" +#include "wavpack/src/tags.c" +#undef decorr_stereo_pass +#define decorr_stereo_pass decorr_stereo_pass_alt_2 +#include "wavpack/src/unpack.c" +#include "wavpack/src/unpack3.c" +#include "wavpack/src/words.c" +#include "wavpack/src/wputils.c" + +#ifdef __clang__ + #pragma clang diagnostic pop +#endif + +#if (_MSC_VER) + #pragma warning (pop) +#endif diff --git a/third_party/musepack/libmpcdec/mpc_bits_reader.h b/third_party/musepack/libmpcdec/mpc_bits_reader.h index a7d8d66..0b00738 100755 --- a/third_party/musepack/libmpcdec/mpc_bits_reader.h +++ b/third_party/musepack/libmpcdec/mpc_bits_reader.h @@ -32,6 +32,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#pragma once #define MAX_ENUM 32 MPC_API int mpc_bits_get_block(mpc_bits_reader * r, mpc_block * p_block); diff --git a/third_party/musepack/libmpcdec/mpc_decoder.c b/third_party/musepack/libmpcdec/mpc_decoder.c index 5f56c00..21a9de4 100755 --- a/third_party/musepack/libmpcdec/mpc_decoder.c +++ b/third_party/musepack/libmpcdec/mpc_decoder.c @@ -45,19 +45,19 @@ #include "mpc_bits_reader.h" //SV7 tables -extern const mpc_lut_data mpc_HuffQ [7] [2]; -extern const mpc_lut_data mpc_HuffHdr; +extern /*const*/ mpc_lut_data mpc_HuffQ [7] [2]; +extern /*const*/ mpc_lut_data mpc_HuffHdr; extern const mpc_huffman mpc_table_HuffSCFI [ 4]; -extern const mpc_lut_data mpc_HuffDSCF; +extern /*const*/ mpc_lut_data mpc_HuffDSCF; //SV8 tables -extern const mpc_can_data mpc_can_Bands; -extern const mpc_can_data mpc_can_SCFI[2]; -extern const mpc_can_data mpc_can_DSCF[2]; -extern const mpc_can_data mpc_can_Res [2]; -extern const mpc_can_data mpc_can_Q [8][2]; -extern const mpc_can_data mpc_can_Q1; -extern const mpc_can_data mpc_can_Q9up; +extern /*const*/ mpc_can_data mpc_can_Bands; +extern /*const*/ mpc_can_data mpc_can_SCFI[2]; +extern /*const*/ mpc_can_data mpc_can_DSCF[2]; +extern /*const*/ mpc_can_data mpc_can_Res [2]; +extern /*const*/ mpc_can_data mpc_can_Q [6/*8*/][2]; +extern /*const*/ mpc_can_data mpc_can_Q1; +extern /*const*/ mpc_can_data mpc_can_Q9up; //------------------------------------------------------------------------------ // types