decoder/sndfile: make vio constexpr

Use `const_cast` to be able to pass it to sf_open_virtual() which has
a wrong parameter declaration.
This commit is contained in:
Max Kellermann 2018-10-19 19:51:17 +02:00
parent bdfaea0c25
commit 3be8b02cc2

View File

@ -130,7 +130,7 @@ sndfile_vio_tell(void *user_data)
* This SF_VIRTUAL_IO implementation wraps MPD's #InputStream to a
* libsndfile stream.
*/
static SF_VIRTUAL_IO vio = {
static constexpr SF_VIRTUAL_IO vio = {
sndfile_vio_get_filelen,
sndfile_vio_seek,
sndfile_vio_read,
@ -202,7 +202,8 @@ sndfile_stream_decode(DecoderClient &client, InputStream &is)
info.format = 0;
SndfileInputStream sis{&client, is};
SNDFILE *const sf = sf_open_virtual(&vio, SFM_READ, &info, &sis);
SNDFILE *const sf = sf_open_virtual(const_cast<SF_VIRTUAL_IO *>(&vio),
SFM_READ, &info, &sis);
if (sf == nullptr) {
FormatWarning(sndfile_domain, "sf_open_virtual() failed: %s",
sf_strerror(nullptr));
@ -274,7 +275,8 @@ sndfile_scan_stream(InputStream &is, TagHandler &handler) noexcept
info.format = 0;
SndfileInputStream sis{nullptr, is};
SNDFILE *const sf = sf_open_virtual(&vio, SFM_READ, &info, &sis);
SNDFILE *const sf = sf_open_virtual(const_cast<SF_VIRTUAL_IO *>(&vio),
SFM_READ, &info, &sis);
if (sf == nullptr)
return false;