decoder/Plugin: simplify compile-time initialization

Add a `constexpr` constructor and several `constexpr` methods to
construct a DecoderPlugin at compile time, in a way which allows
adding new methods later without having to edit each plugin.
This commit is contained in:
Max Kellermann
2019-06-15 14:44:37 +02:00
parent aebb1baad8
commit 527642a90b
23 changed files with 171 additions and 286 deletions

View File

@@ -644,15 +644,8 @@ static char const *const wavpack_mime_types[] = {
nullptr
};
const struct DecoderPlugin wavpack_decoder_plugin = {
"wavpack",
nullptr,
nullptr,
wavpack_streamdecode,
wavpack_filedecode,
wavpack_scan_file,
wavpack_scan_stream,
nullptr,
wavpack_suffixes,
wavpack_mime_types
};
constexpr DecoderPlugin wavpack_decoder_plugin =
DecoderPlugin("wavpack", wavpack_streamdecode, wavpack_scan_stream,
wavpack_filedecode, wavpack_scan_file)
.WithSuffixes(wavpack_suffixes)
.WithMimeTypes(wavpack_mime_types);