remove other error codes from public decoding API

pull/14/head
Dimitri Diakopoulos 10 years ago
parent 25e43204d0
commit fe34756ac5

@ -71,7 +71,15 @@ int main()
//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.wavp");
}
catch(const UnsupportedExtensionException & e)
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;
}

@ -35,26 +35,25 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
namespace nqr
{
struct UnsupportedExtensionException : public std::runtime_error
struct UnsupportedExtensionEx : public std::runtime_error
{
UnsupportedExtensionException() : std::runtime_error("Unsupported file extension") {}
UnsupportedExtensionEx() : std::runtime_error("Unsupported file extension") {}
};
// Tofix:
// Individual decoder classes will throw std::exceptions for bad things,
// but NyquistIO implements this enum for high-level error notifications.
enum IOError
struct LoadPathNotImplEx : public std::runtime_error
{
NoError,
LoadPathNotImplemented,
LoadBufferNotImplemented,
UnknownError
LoadPathNotImplEx() : std::runtime_error("Loading from path not implemented") {}
};
struct LoadBufferNotImplEx : public std::runtime_error
{
LoadBufferNotImplEx() : std::runtime_error("Loading from buffer not implemented") {}
};
struct BaseDecoder
{
virtual int LoadFromPath(nqr::AudioData * data, const std::string & path) = 0;
virtual int LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) = 0;
virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) = 0;
virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) = 0;
virtual std::vector<std::string> GetSupportedFileExtensions() = 0;
//@todo implement streaming helper methods here
};

@ -35,8 +35,8 @@ struct CAFDecoder : public nqr::BaseDecoder
{
CAFDecoder() {};
virtual ~CAFDecoder() {};
virtual int LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual int LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual std::vector<std::string> GetSupportedFileExtensions() override;
};

@ -55,8 +55,8 @@ struct FlacDecoder : public nqr::BaseDecoder
{
FlacDecoder() {}
virtual ~FlacDecoder() {}
virtual int LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual int LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual std::vector<std::string> GetSupportedFileExtensions() override;
};

@ -35,8 +35,8 @@ struct MusepackDecoder : public nqr::BaseDecoder
{
MusepackDecoder() {};
virtual ~MusepackDecoder() {};
virtual int LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual int LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual std::vector<std::string> GetSupportedFileExtensions() override;
};

@ -40,8 +40,8 @@ struct OpusDecoder : public nqr::BaseDecoder
{
OpusDecoder() {}
virtual ~OpusDecoder() {}
virtual int LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual int LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual std::vector<std::string> GetSupportedFileExtensions() override;
};

@ -35,8 +35,8 @@ struct VorbisDecoder : public nqr::BaseDecoder
{
VorbisDecoder() {}
virtual ~VorbisDecoder() {}
virtual int LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual int LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual std::vector<std::string> GetSupportedFileExtensions() override;
};

@ -172,8 +172,8 @@ struct WavDecoder : public nqr::BaseDecoder
{
WavDecoder() {}
virtual ~WavDecoder() {}
virtual int LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual int LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual std::vector<std::string> GetSupportedFileExtensions() override;
};

@ -35,8 +35,8 @@ struct WavPackDecoder : public nqr::BaseDecoder
{
WavPackDecoder() {};
virtual ~WavPackDecoder() {};
virtual int LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual int LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override;
virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector<uint8_t> & memory) override;
virtual std::vector<std::string> GetSupportedFileExtensions() override;
};

@ -65,7 +65,7 @@ void NyquistIO::Load(AudioData * data, const std::string & path)
}
else
{
throw UnsupportedExtensionException();
throw UnsupportedExtensionEx();
}
}
@ -73,7 +73,7 @@ void NyquistIO::Load(AudioData * data, std::string extension, const std::vector<
{
if (decoderTable.find(extension) == decoderTable.end())
{
throw UnsupportedExtensionException();
throw UnsupportedExtensionEx();
}
if (decoderTable.size())

@ -31,14 +31,14 @@ using namespace nqr;
// Public Interface //
//////////////////////
int CAFDecoder::LoadFromPath(AudioData * data, const std::string & path)
void CAFDecoder::LoadFromPath(AudioData * data, const std::string & path)
{
return IOError::LoadPathNotImplemented;
throw LoadPathNotImplEx();
}
int CAFDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
void CAFDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
{
return IOError::LoadBufferNotImplemented;
throw LoadBufferNotImplEx();
}
std::vector<std::string> CAFDecoder::GetSupportedFileExtensions()

@ -166,15 +166,14 @@ private:
// Public Interface //
//////////////////////
int FlacDecoder::LoadFromPath(AudioData * data, const std::string & path)
void FlacDecoder::LoadFromPath(AudioData * data, const std::string & path)
{
FlacDecoderInternal decoder(data, path);
return IOError::NoError;
}
int FlacDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
void FlacDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
{
return IOError::LoadBufferNotImplemented;
throw LoadBufferNotImplEx();
}
std::vector<std::string> FlacDecoder::GetSupportedFileExtensions()

@ -178,17 +178,15 @@ private:
// Public Interface //
//////////////////////
int MusepackDecoder::LoadFromPath(AudioData * data, const std::string & path)
void MusepackDecoder::LoadFromPath(AudioData * data, const std::string & path)
{
auto fileBuffer = nqr::ReadFile(path);
MusepackInternal decoder(data, fileBuffer.buffer);
return IOError::NoError;
}
int MusepackDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
void MusepackDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
{
MusepackInternal decoder(data, memory);
return IOError::NoError;
}
std::vector<std::string> MusepackDecoder::GetSupportedFileExtensions()

@ -160,17 +160,15 @@ private:
// Public Interface //
//////////////////////
int nqr::OpusDecoder::LoadFromPath(AudioData * data, const std::string & path)
void nqr::OpusDecoder::LoadFromPath(AudioData * data, const std::string & path)
{
auto fileBuffer = nqr::ReadFile(path);
OpusDecoderInternal decoder(data, fileBuffer.buffer);
return IOError::NoError;
}
int nqr::OpusDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
void nqr::OpusDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
{
OpusDecoderInternal decoder(data, memory);
return IOError::NoError;
}
std::vector<std::string> nqr::OpusDecoder::GetSupportedFileExtensions()

@ -182,15 +182,14 @@ private:
// Public Interface //
//////////////////////
int VorbisDecoder::LoadFromPath(AudioData * data, const std::string & path)
void VorbisDecoder::LoadFromPath(AudioData * data, const std::string & path)
{
VorbisDecoderInternal decoder(data, path);
return IOError::NoError;
}
int VorbisDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
void VorbisDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
{
return IOError::LoadBufferNotImplemented;
throw LoadBufferNotImplEx();
}
std::vector<std::string> VorbisDecoder::GetSupportedFileExtensions()

@ -33,13 +33,13 @@ using namespace nqr;
// Public Interface //
//////////////////////
int WavDecoder::LoadFromPath(AudioData * data, const std::string & path)
void WavDecoder::LoadFromPath(AudioData * data, const std::string & path)
{
auto fileBuffer = nqr::ReadFile(path);
return LoadFromBuffer(data, fileBuffer.buffer);
}
int WavDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
void WavDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
{
//////////////////////
// Read RIFF Header //
@ -218,8 +218,6 @@ int WavDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & me
data->samples.resize(totalSamples);
ConvertToFloat32(data->samples.data(), memory.data() + DataChunkInfo.offset, totalSamples, data->sourceFormat);
}
return IOError::NoError;
}
std::vector<std::string> WavDecoder::GetSupportedFileExtensions()

@ -142,15 +142,14 @@ private:
// Public Interface //
//////////////////////
int WavPackDecoder::LoadFromPath(AudioData * data, const std::string & path)
void WavPackDecoder::LoadFromPath(AudioData * data, const std::string & path)
{
WavPackInternal decoder(data, path);
return IOError::NoError;
}
int WavPackDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
void WavPackDecoder::LoadFromBuffer(AudioData * data, const std::vector<uint8_t> & memory)
{
return IOError::LoadBufferNotImplemented;
throw LoadBufferNotImplEx();
}
std::vector<std::string> WavPackDecoder::GetSupportedFileExtensions()

Loading…
Cancel
Save