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)
* 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;
......
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