diff options
Diffstat (limited to 'src')
39 files changed, 53 insertions, 50 deletions
diff --git a/src/mixer/MixerPlugin.hxx b/src/mixer/MixerPlugin.hxx index b29ecbab8..2df0d809e 100644 --- a/src/mixer/MixerPlugin.hxx +++ b/src/mixer/MixerPlugin.hxx @@ -35,7 +35,7 @@ struct mixer_plugin { /** * Alocates and configures a mixer device. * - * @param ao the pointer returned by audio_output_plugin.init + * @param ao the pointer returned by AudioOutputPlugin.init * @param param the configuration section * @param error_r location to store the error occurring, or * nullptr to ignore errors diff --git a/src/output/OutputInit.cxx b/src/output/OutputInit.cxx index 16180a415..9783b36ed 100644 --- a/src/output/OutputInit.cxx +++ b/src/output/OutputInit.cxx @@ -46,7 +46,7 @@ #define AUDIO_OUTPUT_FORMAT "format" #define AUDIO_FILTERS "filters" -static const struct audio_output_plugin * +static const AudioOutputPlugin * audio_output_detect(Error &error) { LogDefault(output_domain, "Attempt to detect audio output device"); @@ -129,7 +129,7 @@ audio_output_load_mixer(struct audio_output *ao, bool ao_base_init(struct audio_output *ao, - const struct audio_output_plugin *plugin, + const AudioOutputPlugin *plugin, const config_param ¶m, Error &error) { assert(ao != nullptr); @@ -284,7 +284,7 @@ audio_output_new(const config_param ¶m, PlayerControl &pc, Error &error) { - const struct audio_output_plugin *plugin; + const AudioOutputPlugin *plugin; if (!param.IsNull()) { const char *p; @@ -296,7 +296,7 @@ audio_output_new(const config_param ¶m, return nullptr; } - plugin = audio_output_plugin_get(p); + plugin = AudioOutputPlugin_get(p); if (plugin == nullptr) { error.Format(config_domain, "No such audio output plugin: %s", p); diff --git a/src/output/OutputInternal.hxx b/src/output/OutputInternal.hxx index 18404dc01..67b6ea644 100644 --- a/src/output/OutputInternal.hxx +++ b/src/output/OutputInternal.hxx @@ -33,6 +33,7 @@ class Filter; class MusicPipe; struct config_param; struct PlayerControl; +struct AudioOutputPlugin; enum audio_output_command { AO_COMMAND_NONE = 0, @@ -68,7 +69,7 @@ struct audio_output { /** * The plugin which implements this output device. */ - const struct audio_output_plugin *plugin; + const AudioOutputPlugin *plugin; /** * The #mixer object associated with this audio output device. @@ -289,7 +290,7 @@ audio_output_new(const config_param ¶m, bool ao_base_init(struct audio_output *ao, - const struct audio_output_plugin *plugin, + const AudioOutputPlugin *plugin, const config_param ¶m, Error &error); void diff --git a/src/output/OutputList.cxx b/src/output/OutputList.cxx index b914e6d2e..c523d4cbc 100644 --- a/src/output/OutputList.cxx +++ b/src/output/OutputList.cxx @@ -39,7 +39,7 @@ #include <string.h> -const struct audio_output_plugin *const audio_output_plugins[] = { +const AudioOutputPlugin *const audio_output_plugins[] = { #ifdef HAVE_SHOUT &shout_output_plugin, #endif @@ -89,8 +89,8 @@ const struct audio_output_plugin *const audio_output_plugins[] = { nullptr }; -const struct audio_output_plugin * -audio_output_plugin_get(const char *name) +const AudioOutputPlugin * +AudioOutputPlugin_get(const char *name) { audio_output_plugins_for_each(plugin) if (strcmp(plugin->name, name) == 0) diff --git a/src/output/OutputList.hxx b/src/output/OutputList.hxx index dfcf7487c..bc9c1ae2b 100644 --- a/src/output/OutputList.hxx +++ b/src/output/OutputList.hxx @@ -20,13 +20,15 @@ #ifndef MPD_OUTPUT_LIST_HXX #define MPD_OUTPUT_LIST_HXX -extern const struct audio_output_plugin *const audio_output_plugins[]; +struct AudioOutputPlugin; -const struct audio_output_plugin * -audio_output_plugin_get(const char *name); +extern const AudioOutputPlugin *const audio_output_plugins[]; + +const AudioOutputPlugin * +AudioOutputPlugin_get(const char *name); #define audio_output_plugins_for_each(plugin) \ - for (const struct audio_output_plugin *plugin, \ + for (const AudioOutputPlugin *plugin, \ *const*output_plugin_iterator = &audio_output_plugins[0]; \ (plugin = *output_plugin_iterator) != nullptr; ++output_plugin_iterator) diff --git a/src/output/OutputPlugin.cxx b/src/output/OutputPlugin.cxx index 29fd6455a..60c5681ec 100644 --- a/src/output/OutputPlugin.cxx +++ b/src/output/OutputPlugin.cxx @@ -22,7 +22,7 @@ #include "OutputInternal.hxx" struct audio_output * -ao_plugin_init(const struct audio_output_plugin *plugin, +ao_plugin_init(const AudioOutputPlugin *plugin, const config_param ¶m, Error &error) { diff --git a/src/output/OutputPlugin.hxx b/src/output/OutputPlugin.hxx index 7d77c92b2..f9f65cad6 100644 --- a/src/output/OutputPlugin.hxx +++ b/src/output/OutputPlugin.hxx @@ -32,7 +32,7 @@ class Error; /** * A plugin which controls an audio output device. */ -struct audio_output_plugin { +struct AudioOutputPlugin { /** * the plugin's name */ @@ -150,7 +150,7 @@ struct audio_output_plugin { }; static inline bool -ao_plugin_test_default_device(const struct audio_output_plugin *plugin) +ao_plugin_test_default_device(const AudioOutputPlugin *plugin) { return plugin->test_default_device != nullptr ? plugin->test_default_device() @@ -159,7 +159,7 @@ ao_plugin_test_default_device(const struct audio_output_plugin *plugin) gcc_malloc struct audio_output * -ao_plugin_init(const struct audio_output_plugin *plugin, +ao_plugin_init(const AudioOutputPlugin *plugin, const config_param ¶m, Error &error); diff --git a/src/output/plugins/AlsaOutputPlugin.cxx b/src/output/plugins/AlsaOutputPlugin.cxx index f2d6916a5..fac94a13d 100644 --- a/src/output/plugins/AlsaOutputPlugin.cxx +++ b/src/output/plugins/AlsaOutputPlugin.cxx @@ -848,7 +848,7 @@ alsa_play(struct audio_output *ao, const void *chunk, size_t size, } } -const struct audio_output_plugin alsa_output_plugin = { +const struct AudioOutputPlugin alsa_output_plugin = { "alsa", alsa_test_default_device, alsa_init, diff --git a/src/output/plugins/AlsaOutputPlugin.hxx b/src/output/plugins/AlsaOutputPlugin.hxx index 63508e041..f72116f91 100644 --- a/src/output/plugins/AlsaOutputPlugin.hxx +++ b/src/output/plugins/AlsaOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_ALSA_OUTPUT_PLUGIN_HXX #define MPD_ALSA_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin alsa_output_plugin; +extern const struct AudioOutputPlugin alsa_output_plugin; #endif diff --git a/src/output/plugins/AoOutputPlugin.cxx b/src/output/plugins/AoOutputPlugin.cxx index efc1e0c6e..37b216f90 100644 --- a/src/output/plugins/AoOutputPlugin.cxx +++ b/src/output/plugins/AoOutputPlugin.cxx @@ -267,7 +267,7 @@ ao_output_play(struct audio_output *ao, const void *chunk, size_t size, return size; } -const struct audio_output_plugin ao_output_plugin = { +const struct AudioOutputPlugin ao_output_plugin = { "ao", nullptr, ao_output_init, diff --git a/src/output/plugins/AoOutputPlugin.hxx b/src/output/plugins/AoOutputPlugin.hxx index cbf2fd589..07c2ba16b 100644 --- a/src/output/plugins/AoOutputPlugin.hxx +++ b/src/output/plugins/AoOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_AO_OUTPUT_PLUGIN_HXX #define MPD_AO_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin ao_output_plugin; +extern const struct AudioOutputPlugin ao_output_plugin; #endif diff --git a/src/output/plugins/FifoOutputPlugin.cxx b/src/output/plugins/FifoOutputPlugin.cxx index 6e3a4d332..27b8e4192 100644 --- a/src/output/plugins/FifoOutputPlugin.cxx +++ b/src/output/plugins/FifoOutputPlugin.cxx @@ -294,7 +294,7 @@ fifo_output_play(struct audio_output *ao, const void *chunk, size_t size, } } -const struct audio_output_plugin fifo_output_plugin = { +const struct AudioOutputPlugin fifo_output_plugin = { "fifo", nullptr, fifo_output_init, diff --git a/src/output/plugins/FifoOutputPlugin.hxx b/src/output/plugins/FifoOutputPlugin.hxx index 394ec3ae9..f41ceded6 100644 --- a/src/output/plugins/FifoOutputPlugin.hxx +++ b/src/output/plugins/FifoOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_FIFO_OUTPUT_PLUGIN_HXX #define MPD_FIFO_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin fifo_output_plugin; +extern const struct AudioOutputPlugin fifo_output_plugin; #endif diff --git a/src/output/plugins/HttpdOutputPlugin.cxx b/src/output/plugins/HttpdOutputPlugin.cxx index 6921cb808..f1e1e3701 100644 --- a/src/output/plugins/HttpdOutputPlugin.cxx +++ b/src/output/plugins/HttpdOutputPlugin.cxx @@ -582,7 +582,7 @@ httpd_output_cancel(struct audio_output *ao) }); } -const struct audio_output_plugin httpd_output_plugin = { +const struct AudioOutputPlugin httpd_output_plugin = { "httpd", nullptr, httpd_output_init, diff --git a/src/output/plugins/HttpdOutputPlugin.hxx b/src/output/plugins/HttpdOutputPlugin.hxx index 78218e5f0..df99e2b43 100644 --- a/src/output/plugins/HttpdOutputPlugin.hxx +++ b/src/output/plugins/HttpdOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_HTTPD_OUTPUT_PLUGIN_HXX #define MPD_HTTPD_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin httpd_output_plugin; +extern const struct AudioOutputPlugin httpd_output_plugin; #endif diff --git a/src/output/plugins/JackOutputPlugin.cxx b/src/output/plugins/JackOutputPlugin.cxx index b981c1292..f5e039a17 100644 --- a/src/output/plugins/JackOutputPlugin.cxx +++ b/src/output/plugins/JackOutputPlugin.cxx @@ -746,7 +746,7 @@ mpd_jack_pause(struct audio_output *ao) return true; } -const struct audio_output_plugin jack_output_plugin = { +const struct AudioOutputPlugin jack_output_plugin = { "jack", mpd_jack_test_default_device, mpd_jack_init, diff --git a/src/output/plugins/JackOutputPlugin.hxx b/src/output/plugins/JackOutputPlugin.hxx index ee3fe9238..6f1f7ecb9 100644 --- a/src/output/plugins/JackOutputPlugin.hxx +++ b/src/output/plugins/JackOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_JACK_OUTPUT_PLUGIN_HXX #define MPD_JACK_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin jack_output_plugin; +extern const struct AudioOutputPlugin jack_output_plugin; #endif diff --git a/src/output/plugins/NullOutputPlugin.cxx b/src/output/plugins/NullOutputPlugin.cxx index c336d86e6..8d7f4e6e5 100644 --- a/src/output/plugins/NullOutputPlugin.cxx +++ b/src/output/plugins/NullOutputPlugin.cxx @@ -122,7 +122,7 @@ null_cancel(struct audio_output *ao) nd->timer->Reset(); } -const struct audio_output_plugin null_output_plugin = { +const struct AudioOutputPlugin null_output_plugin = { "null", nullptr, null_init, diff --git a/src/output/plugins/NullOutputPlugin.hxx b/src/output/plugins/NullOutputPlugin.hxx index 05b8ef3d8..f25f5b9f3 100644 --- a/src/output/plugins/NullOutputPlugin.hxx +++ b/src/output/plugins/NullOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_NULL_OUTPUT_PLUGIN_HXX #define MPD_NULL_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin null_output_plugin; +extern const struct AudioOutputPlugin null_output_plugin; #endif diff --git a/src/output/plugins/OSXOutputPlugin.cxx b/src/output/plugins/OSXOutputPlugin.cxx index c247336d7..c58701e0e 100644 --- a/src/output/plugins/OSXOutputPlugin.cxx +++ b/src/output/plugins/OSXOutputPlugin.cxx @@ -409,7 +409,7 @@ osx_output_play(struct audio_output *ao, const void *chunk, size_t size, return size; } -const struct audio_output_plugin osx_output_plugin = { +const struct AudioOutputPlugin osx_output_plugin = { "osx", osx_output_test_default_device, osx_output_init, diff --git a/src/output/plugins/OSXOutputPlugin.hxx b/src/output/plugins/OSXOutputPlugin.hxx index 0de10f83e..d7aed40b6 100644 --- a/src/output/plugins/OSXOutputPlugin.hxx +++ b/src/output/plugins/OSXOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_OSX_OUTPUT_PLUGIN_HXX #define MPD_OSX_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin osx_output_plugin; +extern const struct AudioOutputPlugin osx_output_plugin; #endif diff --git a/src/output/plugins/OpenALOutputPlugin.cxx b/src/output/plugins/OpenALOutputPlugin.cxx index f590f0ea0..7e8df66ea 100644 --- a/src/output/plugins/OpenALOutputPlugin.cxx +++ b/src/output/plugins/OpenALOutputPlugin.cxx @@ -266,7 +266,7 @@ openal_cancel(struct audio_output *ao) od->filled = 0; } -const struct audio_output_plugin openal_output_plugin = { +const struct AudioOutputPlugin openal_output_plugin = { "openal", nullptr, openal_init, diff --git a/src/output/plugins/OpenALOutputPlugin.hxx b/src/output/plugins/OpenALOutputPlugin.hxx index eb43d1aa5..a27e6b53c 100644 --- a/src/output/plugins/OpenALOutputPlugin.hxx +++ b/src/output/plugins/OpenALOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_OPENAL_OUTPUT_PLUGIN_HXX #define MPD_OPENAL_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin openal_output_plugin; +extern const struct AudioOutputPlugin openal_output_plugin; #endif diff --git a/src/output/plugins/OssOutputPlugin.cxx b/src/output/plugins/OssOutputPlugin.cxx index 2157a9476..384637a13 100644 --- a/src/output/plugins/OssOutputPlugin.cxx +++ b/src/output/plugins/OssOutputPlugin.cxx @@ -751,7 +751,7 @@ oss_output_play(struct audio_output *ao, const void *chunk, size_t size, } } -const struct audio_output_plugin oss_output_plugin = { +const struct AudioOutputPlugin oss_output_plugin = { "oss", oss_output_test_default_device, oss_output_init, diff --git a/src/output/plugins/OssOutputPlugin.hxx b/src/output/plugins/OssOutputPlugin.hxx index 4762fa652..f9970c8f0 100644 --- a/src/output/plugins/OssOutputPlugin.hxx +++ b/src/output/plugins/OssOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_OSS_OUTPUT_PLUGIN_HXX #define MPD_OSS_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin oss_output_plugin; +extern const struct AudioOutputPlugin oss_output_plugin; #endif diff --git a/src/output/plugins/PipeOutputPlugin.cxx b/src/output/plugins/PipeOutputPlugin.cxx index 2eb0c6dd8..9aa36f1ed 100644 --- a/src/output/plugins/PipeOutputPlugin.cxx +++ b/src/output/plugins/PipeOutputPlugin.cxx @@ -128,7 +128,7 @@ pipe_output_play(struct audio_output *ao, const void *chunk, size_t size, return ret; } -const struct audio_output_plugin pipe_output_plugin = { +const struct AudioOutputPlugin pipe_output_plugin = { "pipe", nullptr, pipe_output_init, diff --git a/src/output/plugins/PipeOutputPlugin.hxx b/src/output/plugins/PipeOutputPlugin.hxx index 42b01b9f7..bdaf2ecfd 100644 --- a/src/output/plugins/PipeOutputPlugin.hxx +++ b/src/output/plugins/PipeOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_PIPE_OUTPUT_PLUGIN_HXX #define MPD_PIPE_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin pipe_output_plugin; +extern const struct AudioOutputPlugin pipe_output_plugin; #endif diff --git a/src/output/plugins/PulseOutputPlugin.cxx b/src/output/plugins/PulseOutputPlugin.cxx index 6bb66450e..b46774f71 100644 --- a/src/output/plugins/PulseOutputPlugin.cxx +++ b/src/output/plugins/PulseOutputPlugin.cxx @@ -869,7 +869,7 @@ pulse_output_test_default_device(void) return success; } -const struct audio_output_plugin pulse_output_plugin = { +const struct AudioOutputPlugin pulse_output_plugin = { "pulse", pulse_output_test_default_device, pulse_output_init, diff --git a/src/output/plugins/PulseOutputPlugin.hxx b/src/output/plugins/PulseOutputPlugin.hxx index 9df557282..4982256fc 100644 --- a/src/output/plugins/PulseOutputPlugin.hxx +++ b/src/output/plugins/PulseOutputPlugin.hxx @@ -25,7 +25,7 @@ struct PulseMixer; struct pa_cvolume; class Error; -extern const struct audio_output_plugin pulse_output_plugin; +extern const struct AudioOutputPlugin pulse_output_plugin; void pulse_output_lock(PulseOutput *po); diff --git a/src/output/plugins/RecorderOutputPlugin.cxx b/src/output/plugins/RecorderOutputPlugin.cxx index 685438009..bcc1fb33b 100644 --- a/src/output/plugins/RecorderOutputPlugin.cxx +++ b/src/output/plugins/RecorderOutputPlugin.cxx @@ -243,7 +243,7 @@ recorder_output_play(struct audio_output *ao, const void *chunk, size_t size, ? size : 0; } -const struct audio_output_plugin recorder_output_plugin = { +const struct AudioOutputPlugin recorder_output_plugin = { "recorder", nullptr, recorder_output_init, diff --git a/src/output/plugins/RecorderOutputPlugin.hxx b/src/output/plugins/RecorderOutputPlugin.hxx index 4fac911a1..ea1044e0f 100644 --- a/src/output/plugins/RecorderOutputPlugin.hxx +++ b/src/output/plugins/RecorderOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_RECORDER_OUTPUT_PLUGIN_HXX #define MPD_RECORDER_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin recorder_output_plugin; +extern const struct AudioOutputPlugin recorder_output_plugin; #endif diff --git a/src/output/plugins/RoarOutputPlugin.cxx b/src/output/plugins/RoarOutputPlugin.cxx index 1192b2625..d2de95e77 100644 --- a/src/output/plugins/RoarOutputPlugin.cxx +++ b/src/output/plugins/RoarOutputPlugin.cxx @@ -409,7 +409,7 @@ roar_send_tag(struct audio_output *ao, const Tag *meta) self->SendTag(*meta); } -const struct audio_output_plugin roar_output_plugin = { +const struct AudioOutputPlugin roar_output_plugin = { "roar", nullptr, roar_init, diff --git a/src/output/plugins/RoarOutputPlugin.hxx b/src/output/plugins/RoarOutputPlugin.hxx index 27c5dc420..8b7c37512 100644 --- a/src/output/plugins/RoarOutputPlugin.hxx +++ b/src/output/plugins/RoarOutputPlugin.hxx @@ -22,7 +22,7 @@ class RoarOutput; -extern const struct audio_output_plugin roar_output_plugin; +extern const struct AudioOutputPlugin roar_output_plugin; int roar_output_get_volume(RoarOutput *roar); diff --git a/src/output/plugins/ShoutOutputPlugin.cxx b/src/output/plugins/ShoutOutputPlugin.cxx index f86e5ce4b..761f701c5 100644 --- a/src/output/plugins/ShoutOutputPlugin.cxx +++ b/src/output/plugins/ShoutOutputPlugin.cxx @@ -525,7 +525,7 @@ static void my_shout_set_tag(struct audio_output *ao, write_page(sd, IgnoreError()); } -const struct audio_output_plugin shout_output_plugin = { +const struct AudioOutputPlugin shout_output_plugin = { "shout", nullptr, my_shout_init_driver, diff --git a/src/output/plugins/ShoutOutputPlugin.hxx b/src/output/plugins/ShoutOutputPlugin.hxx index d437e0b0d..9f706fc3b 100644 --- a/src/output/plugins/ShoutOutputPlugin.hxx +++ b/src/output/plugins/ShoutOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_SHOUT_OUTPUT_PLUGIN_HXX #define MPD_SHOUT_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin shout_output_plugin; +extern const struct AudioOutputPlugin shout_output_plugin; #endif diff --git a/src/output/plugins/SolarisOutputPlugin.cxx b/src/output/plugins/SolarisOutputPlugin.cxx index 38ed2e314..fafea3e26 100644 --- a/src/output/plugins/SolarisOutputPlugin.cxx +++ b/src/output/plugins/SolarisOutputPlugin.cxx @@ -182,7 +182,7 @@ solaris_output_cancel(struct audio_output *ao) ioctl(so->fd, I_FLUSH); } -const struct audio_output_plugin solaris_output_plugin = { +const struct AudioOutputPlugin solaris_output_plugin = { "solaris", solaris_output_test_default_device, solaris_output_init, diff --git a/src/output/plugins/SolarisOutputPlugin.hxx b/src/output/plugins/SolarisOutputPlugin.hxx index 9ce848a40..3f9ede7a6 100644 --- a/src/output/plugins/SolarisOutputPlugin.hxx +++ b/src/output/plugins/SolarisOutputPlugin.hxx @@ -20,6 +20,6 @@ #ifndef MPD_SOLARIS_OUTPUT_PLUGIN_HXX #define MPD_SOLARIS_OUTPUT_PLUGIN_HXX -extern const struct audio_output_plugin solaris_output_plugin; +extern const struct AudioOutputPlugin solaris_output_plugin; #endif diff --git a/src/output/plugins/WinmmOutputPlugin.cxx b/src/output/plugins/WinmmOutputPlugin.cxx index 66d49eb9a..d1436d673 100644 --- a/src/output/plugins/WinmmOutputPlugin.cxx +++ b/src/output/plugins/WinmmOutputPlugin.cxx @@ -334,7 +334,7 @@ winmm_output_cancel(struct audio_output *ao) winmm_stop(wo); } -const struct audio_output_plugin winmm_output_plugin = { +const struct AudioOutputPlugin winmm_output_plugin = { "winmm", winmm_output_test_default_device, winmm_output_init, diff --git a/src/output/plugins/WinmmOutputPlugin.hxx b/src/output/plugins/WinmmOutputPlugin.hxx index 1409a2e8c..450e58b4e 100644 --- a/src/output/plugins/WinmmOutputPlugin.hxx +++ b/src/output/plugins/WinmmOutputPlugin.hxx @@ -31,7 +31,7 @@ struct WinmmOutput; -extern const struct audio_output_plugin winmm_output_plugin; +extern const struct AudioOutputPlugin winmm_output_plugin; gcc_pure HWAVEOUT |