From 29030b54c98b0aee65fbc10ebf7ba36bed98c02c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 10 Aug 2013 18:02:44 +0200 Subject: util/Error: new error passing library Replaces GLib's GError. --- src/output/OSXOutputPlugin.cxx | 84 ++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 44 deletions(-) (limited to 'src/output/OSXOutputPlugin.cxx') diff --git a/src/output/OSXOutputPlugin.cxx b/src/output/OSXOutputPlugin.cxx index 09f5581d5..8445a8028 100644 --- a/src/output/OSXOutputPlugin.cxx +++ b/src/output/OSXOutputPlugin.cxx @@ -21,6 +21,8 @@ #include "OSXOutputPlugin.hxx" #include "OutputAPI.hxx" #include "util/fifo_buffer.h" +#include "util/Error.hxx" +#include "util/Domain.hxx" #include "thread/Mutex.hxx" #include "thread/Cond.hxx" @@ -47,14 +49,7 @@ struct OSXOutput { struct fifo_buffer *buffer; }; -/** - * The quark used for GError.domain. - */ -static inline GQuark -osx_output_quark(void) -{ - return g_quark_from_static_string("osx_output"); -} +static constexpr Domain osx_output_domain("osx_output"); static bool osx_output_test_default_device(void) @@ -85,10 +80,10 @@ osx_output_configure(OSXOutput *oo, const config_param ¶m) } static struct audio_output * -osx_output_init(const config_param ¶m, GError **error_r) +osx_output_init(const config_param ¶m, Error &error) { OSXOutput *oo = new OSXOutput(); - if (!ao_base_init(&oo->base, &osx_output_plugin, param, error_r)) { + if (!ao_base_init(&oo->base, &osx_output_plugin, param, error)) { delete oo; return NULL; } @@ -107,7 +102,7 @@ osx_output_finish(struct audio_output *ao) } static bool -osx_output_set_device(OSXOutput *oo, GError **error) +osx_output_set_device(OSXOutput *oo, Error &error) { bool ret = true; OSStatus status; @@ -124,9 +119,9 @@ osx_output_set_device(OSXOutput *oo, GError **error) &size, NULL); if (status != noErr) { - g_set_error(error, osx_output_quark(), status, - "Unable to determine number of OS X audio devices: %s", - GetMacOSStatusCommentString(status)); + error.Format(osx_output_domain, status, + "Unable to determine number of OS X audio devices: %s", + GetMacOSStatusCommentString(status)); ret = false; goto done; } @@ -138,9 +133,9 @@ osx_output_set_device(OSXOutput *oo, GError **error) &size, deviceids); if (status != noErr) { - g_set_error(error, osx_output_quark(), status, - "Unable to determine OS X audio device IDs: %s", - GetMacOSStatusCommentString(status)); + error.Format(osx_output_domain, status, + "Unable to determine OS X audio device IDs: %s", + GetMacOSStatusCommentString(status)); ret = false; goto done; } @@ -152,11 +147,11 @@ osx_output_set_device(OSXOutput *oo, GError **error) kAudioDevicePropertyDeviceName, &size, name); if (status != noErr) { - g_set_error(error, osx_output_quark(), status, - "Unable to determine OS X device name " - "(device %u): %s", - (unsigned int) deviceids[i], - GetMacOSStatusCommentString(status)); + error.Format(osx_output_domain, status, + "Unable to determine OS X device name " + "(device %u): %s", + (unsigned int) deviceids[i], + GetMacOSStatusCommentString(status)); ret = false; goto done; } @@ -180,9 +175,9 @@ osx_output_set_device(OSXOutput *oo, GError **error) &(deviceids[i]), sizeof(AudioDeviceID)); if (status != noErr) { - g_set_error(error, osx_output_quark(), status, - "Unable to set OS X audio output device: %s", - GetMacOSStatusCommentString(status)); + error.Format(osx_output_domain, status, + "Unable to set OS X audio output device: %s", + GetMacOSStatusCommentString(status)); ret = false; goto done; } @@ -237,7 +232,7 @@ osx_render(void *vdata, } static bool -osx_output_enable(struct audio_output *ao, GError **error_r) +osx_output_enable(struct audio_output *ao, Error &error) { OSXOutput *oo = (OSXOutput *)ao; @@ -250,20 +245,20 @@ osx_output_enable(struct audio_output *ao, GError **error_r) Component comp = FindNextComponent(NULL, &desc); if (comp == 0) { - g_set_error(error_r, osx_output_quark(), 0, - "Error finding OS X component"); + error.Set(osx_output_domain, + "Error finding OS X component"); return false; } OSStatus status = OpenAComponent(comp, &oo->au); if (status != noErr) { - g_set_error(error_r, osx_output_quark(), status, - "Unable to open OS X component: %s", - GetMacOSStatusCommentString(status)); + error.Format(osx_output_domain, status, + "Unable to open OS X component: %s", + GetMacOSStatusCommentString(status)); return false; } - if (!osx_output_set_device(oo, error_r)) { + if (!osx_output_set_device(oo, error)) { CloseComponent(oo->au); return false; } @@ -279,8 +274,8 @@ osx_output_enable(struct audio_output *ao, GError **error_r) &callback, sizeof(callback)); if (result != noErr) { CloseComponent(oo->au); - g_set_error(error_r, osx_output_quark(), result, - "unable to set callback for OS X audio unit"); + error.Set(osx_output_domain, result, + "unable to set callback for OS X audio unit"); return false; } @@ -316,7 +311,8 @@ osx_output_close(struct audio_output *ao) } static bool -osx_output_open(struct audio_output *ao, AudioFormat &audio_format, GError **error) +osx_output_open(struct audio_output *ao, AudioFormat &audio_format, + Error &error) { OSXOutput *od = (OSXOutput *)ao; @@ -359,16 +355,16 @@ osx_output_open(struct audio_output *ao, AudioFormat &audio_format, GError **err &stream_description, sizeof(stream_description)); if (result != noErr) { - g_set_error(error, osx_output_quark(), result, - "Unable to set format on OS X device"); + error.Set(osx_output_domain, result, + "Unable to set format on OS X device"); return false; } OSStatus status = AudioUnitInitialize(od->au); if (status != noErr) { - g_set_error(error, osx_output_quark(), status, - "Unable to initialize OS X audio unit: %s", - GetMacOSStatusCommentString(status)); + error.Set(osx_output_domain, status, + "Unable to initialize OS X audio unit: %s", + GetMacOSStatusCommentString(status)); return false; } @@ -379,9 +375,9 @@ osx_output_open(struct audio_output *ao, AudioFormat &audio_format, GError **err status = AudioOutputUnitStart(od->au); if (status != 0) { AudioUnitUninitialize(od->au); - g_set_error(error, osx_output_quark(), status, - "unable to start audio output: %s", - GetMacOSStatusCommentString(status)); + error.Format(osx_output_domain, status, + "unable to start audio output: %s", + GetMacOSStatusCommentString(status)); return false; } @@ -390,7 +386,7 @@ osx_output_open(struct audio_output *ao, AudioFormat &audio_format, GError **err static size_t osx_output_play(struct audio_output *ao, const void *chunk, size_t size, - gcc_unused GError **error) + gcc_unused Error &error) { OSXOutput *od = (OSXOutput *)ao; -- cgit v1.2.3