Commit 3be8b02c authored by Max Kellermann's avatar Max Kellermann

decoder/sndfile: make `vio` constexpr

Use `const_cast` to be able to pass it to sf_open_virtual() which has a wrong parameter declaration.
parent bdfaea0c
...@@ -130,7 +130,7 @@ sndfile_vio_tell(void *user_data) ...@@ -130,7 +130,7 @@ sndfile_vio_tell(void *user_data)
* This SF_VIRTUAL_IO implementation wraps MPD's #InputStream to a * This SF_VIRTUAL_IO implementation wraps MPD's #InputStream to a
* libsndfile stream. * libsndfile stream.
*/ */
static SF_VIRTUAL_IO vio = { static constexpr SF_VIRTUAL_IO vio = {
sndfile_vio_get_filelen, sndfile_vio_get_filelen,
sndfile_vio_seek, sndfile_vio_seek,
sndfile_vio_read, sndfile_vio_read,
...@@ -202,7 +202,8 @@ sndfile_stream_decode(DecoderClient &client, InputStream &is) ...@@ -202,7 +202,8 @@ sndfile_stream_decode(DecoderClient &client, InputStream &is)
info.format = 0; info.format = 0;
SndfileInputStream sis{&client, is}; 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) { if (sf == nullptr) {
FormatWarning(sndfile_domain, "sf_open_virtual() failed: %s", FormatWarning(sndfile_domain, "sf_open_virtual() failed: %s",
sf_strerror(nullptr)); sf_strerror(nullptr));
...@@ -274,7 +275,8 @@ sndfile_scan_stream(InputStream &is, TagHandler &handler) noexcept ...@@ -274,7 +275,8 @@ sndfile_scan_stream(InputStream &is, TagHandler &handler) noexcept
info.format = 0; info.format = 0;
SndfileInputStream sis{nullptr, is}; 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) if (sf == nullptr)
return false; return false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment