@samitouri / QOSamiQemu / commits / bba8a87001

coreaudio: Improve naming

coreaudio had names that are not conforming to QEMU codding style. coreaudioVoiceOut also had some members that are prefixed with redundant words like "output" or "audio". Global names included "out" to tell they are specific to output devices, but this rule was not completely enforced. The frame size had three different names "frameSize", "bufferFrameSize", and "frameCount". Replace identifiers to fix these problems. Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20260304-coreaudio-v8-3-bf1d40731e73@rsg.ci.i.u-tokyo.ac.jp>

Akihiko Odaki committed Mar 4, 2026 at 15:16 UTC bba8a87001918a74feebdc7a1271880efd348e02
1 file changed +95 -93
audio/coreaudio.m
+95 -93
@@ -43,34 +43,34 @@ struct AudioCoreaudio {
43 typedef struct coreaudioVoiceOut {
44 HWVoiceOut hw;
45 pthread_mutex_t buf_mutex;
46 - AudioDeviceID outputDeviceID;
47 - int frameSizeSetting;
48 - uint32_t bufferCount;
49 - UInt32 audioDevicePropertyBufferFrameSize;
46 + AudioDeviceID device_id;
47 + int frame_size_setting;
48 + uint32_t buffer_count;
49 + UInt32 device_frame_size;
50 AudioDeviceIOProcID ioprocid;
51 bool enabled;
52 -} coreaudioVoiceOut;
52 +} CoreaudioVoiceOut;
53
54 -static const AudioObjectPropertyAddress voice_addr = {
54 +static const AudioObjectPropertyAddress voice_out_addr = {
55 kAudioHardwarePropertyDefaultOutputDevice,
56 kAudioObjectPropertyScopeGlobal,
57 kAudioObjectPropertyElementMain
58 };
59
60 -static OSStatus coreaudio_get_voice(AudioDeviceID *id)
60 +static OSStatus coreaudio_get_voice_out(AudioDeviceID *id)
61 {
62 UInt32 size = sizeof(*id);
63
64 return AudioObjectGetPropertyData(kAudioObjectSystemObject,
65 - &voice_addr,
65 + &voice_out_addr,
66 0,
67 NULL,
68 &size,
69 id);
70 }
71
72 -static OSStatus coreaudio_get_framesizerange(AudioDeviceID id,
73 - AudioValueRange *framerange)
72 +static OSStatus coreaudio_get_out_framesizerange(AudioDeviceID id,
73 + AudioValueRange *framerange)
74 {
75 UInt32 size = sizeof(*framerange);
76 AudioObjectPropertyAddress addr = {
@@ -87,7 +87,7 @@ static OSStatus coreaudio_get_framesizerange(AudioDeviceID id,
87 framerange);
88 }
89
90 -static OSStatus coreaudio_get_framesize(AudioDeviceID id, UInt32 *framesize)
90 +static OSStatus coreaudio_get_out_framesize(AudioDeviceID id, UInt32 *framesize)
91 {
92 UInt32 size = sizeof(*framesize);
93 AudioObjectPropertyAddress addr = {
@@ -104,7 +104,7 @@ static OSStatus coreaudio_get_framesize(AudioDeviceID id, UInt32 *framesize)
104 framesize);
105 }
106
107 -static OSStatus coreaudio_set_framesize(AudioDeviceID id, UInt32 *framesize)
107 +static OSStatus coreaudio_set_out_framesize(AudioDeviceID id, UInt32 *framesize)
108 {
109 UInt32 size = sizeof(*framesize);
110 AudioObjectPropertyAddress addr = {
@@ -121,8 +121,8 @@ static OSStatus coreaudio_set_framesize(AudioDeviceID id, UInt32 *framesize)
121 framesize);
122 }
123
124 -static OSStatus coreaudio_set_streamformat(AudioDeviceID id,
125 - AudioStreamBasicDescription *d)
124 +static OSStatus coreaudio_set_out_streamformat(AudioDeviceID id,
125 + AudioStreamBasicDescription *d)
126 {
127 UInt32 size = sizeof(*d);
128 AudioObjectPropertyAddress addr = {
@@ -139,7 +139,7 @@ static OSStatus coreaudio_set_streamformat(AudioDeviceID id,
139 d);
140 }
141
142 -static OSStatus coreaudio_get_isrunning(AudioDeviceID id, UInt32 *result)
142 +static OSStatus coreaudio_get_out_isrunning(AudioDeviceID id, UInt32 *result)
143 {
144 UInt32 size = sizeof(*result);
145 AudioObjectPropertyAddress addr = {
@@ -243,7 +243,8 @@ static void G_GNUC_PRINTF(3, 4) coreaudio_logerr2(OSStatus status,
243 #define coreaudio_playback_logerr(status, ...) \
244 coreaudio_logerr2(status, "playback", __VA_ARGS__)
245
246 -static int coreaudio_buf_lock(coreaudioVoiceOut *core, const char *fn_name)
246 +static int coreaudio_voice_out_buf_lock(CoreaudioVoiceOut *core,
247 + const char *fn_name)
248 {
249 int err;
250
@@ -256,7 +257,8 @@ static int coreaudio_buf_lock(coreaudioVoiceOut *core, const char *fn_name)
257 return 0;
258 }
259
259 -static int coreaudio_buf_unlock(coreaudioVoiceOut *core, const char *fn_name)
260 +static int coreaudio_voice_out_buf_unlock(CoreaudioVoiceOut *core,
261 + const char *fn_name)
262 {
263 int err;
264
@@ -269,20 +271,20 @@ static int coreaudio_buf_unlock(coreaudioVoiceOut *core, const char *fn_name)
271 return 0;
272 }
273
272 -#define COREAUDIO_WRAPPER_FUNC(name, ret_type, args_decl, args) \
273 - static ret_type glue(coreaudio_, name)args_decl \
274 - { \
275 - coreaudioVoiceOut *core = (coreaudioVoiceOut *)hw; \
276 - ret_type ret; \
277 - \
278 - if (coreaudio_buf_lock(core, "coreaudio_" #name)) { \
279 - return 0; \
280 - } \
281 - \
282 - ret = glue(audio_generic_, name)args; \
283 - \
284 - coreaudio_buf_unlock(core, "coreaudio_" #name); \
285 - return ret; \
274 +#define COREAUDIO_WRAPPER_FUNC(name, ret_type, args_decl, args) \
275 + static ret_type glue(coreaudio_, name)args_decl \
276 + { \
277 + CoreaudioVoiceOut *core = (CoreaudioVoiceOut *)hw; \
278 + ret_type ret; \
279 + \
280 + if (coreaudio_voice_out_buf_lock(core, "coreaudio_" #name)) { \
281 + return 0; \
282 + } \
283 + \
284 + ret = glue(audio_generic_, name)args; \
285 + \
286 + coreaudio_voice_out_buf_unlock(core, "coreaudio_" #name); \
287 + return ret; \
288 }
289 COREAUDIO_WRAPPER_FUNC(buffer_get_free, size_t, (HWVoiceOut *hw), (hw))
290 COREAUDIO_WRAPPER_FUNC(get_buffer_out, void *, (HWVoiceOut *hw, size_t *size),
@@ -298,7 +300,7 @@ COREAUDIO_WRAPPER_FUNC(write, size_t, (HWVoiceOut *hw, void *buf, size_t size),
300 * callback to feed audiooutput buffer. called without BQL.
301 * allowed to lock "buf_mutex", but disallowed to have any other locks.
302 */
301 -static OSStatus audioDeviceIOProc(
303 +static OSStatus out_device_ioproc(
304 AudioDeviceID inDevice,
305 const AudioTimeStamp *inNow,
306 const AudioBufferList *inInputData,
@@ -307,33 +309,33 @@ static OSStatus audioDeviceIOProc(
309 const AudioTimeStamp *inOutputTime,
310 void *hwptr)
311 {
310 - UInt32 frameCount, pending_frames;
312 + UInt32 frame_size, pending_frames;
313 void *out = outOutputData->mBuffers[0].mData;
314 HWVoiceOut *hw = hwptr;
313 - coreaudioVoiceOut *core = hwptr;
315 + CoreaudioVoiceOut *core = hwptr;
316 size_t len;
317
316 - if (coreaudio_buf_lock(core, "audioDeviceIOProc")) {
318 + if (coreaudio_voice_out_buf_lock(core, "out_device_ioproc")) {
319 inInputTime = 0;
320 return 0;
321 }
322
321 - if (inDevice != core->outputDeviceID) {
322 - coreaudio_buf_unlock(core, "audioDeviceIOProc(old device)");
323 + if (inDevice != core->device_id) {
324 + coreaudio_voice_out_buf_unlock(core, "out_device_ioproc(old device)");
325 return 0;
326 }
327
326 - frameCount = core->audioDevicePropertyBufferFrameSize;
328 + frame_size = core->device_frame_size;
329 pending_frames = hw->pending_emul / hw->info.bytes_per_frame;
330
331 /* if there are not enough samples, set signal and return */
330 - if (pending_frames < frameCount) {
332 + if (pending_frames < frame_size) {
333 inInputTime = 0;
332 - coreaudio_buf_unlock(core, "audioDeviceIOProc(empty)");
334 + coreaudio_voice_out_buf_unlock(core, "out_device_ioproc(empty)");
335 return 0;
336 }
337
336 - len = frameCount * hw->info.bytes_per_frame;
338 + len = frame_size * hw->info.bytes_per_frame;
339 while (len) {
340 size_t write_len, start;
341
@@ -349,16 +351,16 @@ static OSStatus audioDeviceIOProc(
351 out += write_len;
352 }
353
352 - coreaudio_buf_unlock(core, "audioDeviceIOProc");
354 + coreaudio_voice_out_buf_unlock(core, "out_device_ioproc");
355 return 0;
356 }
357
356 -static OSStatus init_out_device(coreaudioVoiceOut *core)
358 +static OSStatus init_out_device(CoreaudioVoiceOut *core)
359 {
360 + AudioValueRange value_range;
361 OSStatus status;
359 - AudioValueRange frameRange;
362
361 - AudioStreamBasicDescription streamBasicDescription = {
363 + AudioStreamBasicDescription stream_basic_description = {
364 .mBitsPerChannel = audio_format_bits(core->hw.info.af),
365 .mBytesPerFrame = core->hw.info.bytes_per_frame,
366 .mBytesPerPacket = core->hw.info.bytes_per_frame,
@@ -369,21 +371,20 @@ static OSStatus init_out_device(coreaudioVoiceOut *core)
371 .mSampleRate = core->hw.info.freq
372 };
373
372 - status = coreaudio_get_voice(&core->outputDeviceID);
374 + status = coreaudio_get_voice_out(&core->device_id);
375 if (status != kAudioHardwareNoError) {
376 coreaudio_playback_logerr(status,
377 "Could not get default output device");
378 return status;
379 }
378 - if (core->outputDeviceID == kAudioDeviceUnknown) {
380 + if (core->device_id == kAudioDeviceUnknown) {
381 error_report("coreaudio: Could not initialize playback: "
382 "Unknown audio device");
383 return status;
384 }
385
386 /* get minimum and maximum buffer frame sizes */
385 - status = coreaudio_get_framesizerange(core->outputDeviceID,
386 - &frameRange);
387 + status = coreaudio_get_out_framesizerange(core->device_id, &value_range);
388 if (status == kAudioHardwareBadObjectError) {
389 return 0;
390 }
@@ -393,34 +394,34 @@ static OSStatus init_out_device(coreaudioVoiceOut *core)
394 return status;
395 }
396
396 - if (frameRange.mMinimum > core->frameSizeSetting) {
397 - core->audioDevicePropertyBufferFrameSize = frameRange.mMinimum;
397 + if (value_range.mMinimum > core->frame_size_setting) {
398 + core->device_frame_size = value_range.mMinimum;
399 warn_report("coreaudio: Upsizing buffer frames to %f",
399 - frameRange.mMinimum);
400 - } else if (frameRange.mMaximum < core->frameSizeSetting) {
401 - core->audioDevicePropertyBufferFrameSize = frameRange.mMaximum;
400 + value_range.mMinimum);
401 + } else if (value_range.mMaximum < core->frame_size_setting) {
402 + core->device_frame_size = value_range.mMaximum;
403 warn_report("coreaudio: Downsizing buffer frames to %f",
403 - frameRange.mMaximum);
404 + value_range.mMaximum);
405 } else {
405 - core->audioDevicePropertyBufferFrameSize = core->frameSizeSetting;
406 + core->device_frame_size = core->frame_size_setting;
407 }
408
409 /* set Buffer Frame Size */
409 - status = coreaudio_set_framesize(core->outputDeviceID,
410 - &core->audioDevicePropertyBufferFrameSize);
410 + status = coreaudio_set_out_framesize(core->device_id,
411 + &core->device_frame_size);
412 if (status == kAudioHardwareBadObjectError) {
413 return 0;
414 }
415 if (status != kAudioHardwareNoError) {
416 coreaudio_playback_logerr(status,
417 "Could not set device buffer frame size %" PRIu32,
417 - (uint32_t)core->audioDevicePropertyBufferFrameSize);
418 + (uint32_t)core->device_frame_size);
419 return status;
420 }
421
422 /* get Buffer Frame Size */
422 - status = coreaudio_get_framesize(core->outputDeviceID,
423 - &core->audioDevicePropertyBufferFrameSize);
423 + status = coreaudio_get_out_framesize(core->device_id,
424 + &core->device_frame_size);
425 if (status == kAudioHardwareBadObjectError) {
426 return 0;
427 }
@@ -429,19 +430,19 @@ static OSStatus init_out_device(coreaudioVoiceOut *core)
430 "Could not get device buffer frame size");
431 return status;
432 }
432 - core->hw.samples = core->bufferCount * core->audioDevicePropertyBufferFrameSize;
433 + core->hw.samples = core->buffer_count * core->device_frame_size;
434
435 /* set Samplerate */
435 - status = coreaudio_set_streamformat(core->outputDeviceID,
436 - &streamBasicDescription);
436 + status = coreaudio_set_out_streamformat(core->device_id,
437 + &stream_basic_description);
438 if (status == kAudioHardwareBadObjectError) {
439 return 0;
440 }
441 if (status != kAudioHardwareNoError) {
442 coreaudio_playback_logerr(status,
443 "Could not set samplerate %lf",
443 - streamBasicDescription.mSampleRate);
444 - core->outputDeviceID = kAudioDeviceUnknown;
444 + stream_basic_description.mSampleRate);
445 + core->device_id = kAudioDeviceUnknown;
446 return status;
447 }
448
@@ -456,8 +457,8 @@ static OSStatus init_out_device(coreaudioVoiceOut *core)
457 * with the callers of AudioObjectGetPropertyData.
458 */
459 core->ioprocid = NULL;
459 - status = AudioDeviceCreateIOProcID(core->outputDeviceID,
460 - audioDeviceIOProc,
460 + status = AudioDeviceCreateIOProcID(core->device_id,
461 + out_device_ioproc,
462 &core->hw,
463 &core->ioprocid);
464 if (status == kAudioHardwareBadDeviceError) {
@@ -465,20 +466,20 @@ static OSStatus init_out_device(coreaudioVoiceOut *core)
466 }
467 if (status != kAudioHardwareNoError || core->ioprocid == NULL) {
468 coreaudio_playback_logerr(status, "Could not set IOProc");
468 - core->outputDeviceID = kAudioDeviceUnknown;
469 + core->device_id = kAudioDeviceUnknown;
470 return status;
471 }
472
473 return 0;
474 }
475
475 -static void fini_out_device(coreaudioVoiceOut *core)
476 +static void fini_out_device(CoreaudioVoiceOut *core)
477 {
478 OSStatus status;
479 UInt32 isrunning;
480
481 /* stop playback */
481 - status = coreaudio_get_isrunning(core->outputDeviceID, &isrunning);
482 + status = coreaudio_get_out_isrunning(core->device_id, &isrunning);
483 if (status != kAudioHardwareBadObjectError) {
484 if (status != kAudioHardwareNoError) {
485 coreaudio_logerr(status,
@@ -486,7 +487,7 @@ static void fini_out_device(coreaudioVoiceOut *core)
487 }
488
489 if (isrunning) {
489 - status = AudioDeviceStop(core->outputDeviceID, core->ioprocid);
490 + status = AudioDeviceStop(core->device_id, core->ioprocid);
491 if (status != kAudioHardwareBadDeviceError && status != kAudioHardwareNoError) {
492 coreaudio_logerr(status, "Could not stop playback");
493 }
@@ -494,20 +495,20 @@ static void fini_out_device(coreaudioVoiceOut *core)
495 }
496
497 /* remove callback */
497 - status = AudioDeviceDestroyIOProcID(core->outputDeviceID,
498 + status = AudioDeviceDestroyIOProcID(core->device_id,
499 core->ioprocid);
500 if (status != kAudioHardwareBadDeviceError && status != kAudioHardwareNoError) {
501 coreaudio_logerr(status, "Could not remove IOProc");
502 }
502 - core->outputDeviceID = kAudioDeviceUnknown;
503 + core->device_id = kAudioDeviceUnknown;
504 }
505
505 -static void update_device_playback_state(coreaudioVoiceOut *core)
506 +static void update_out_device_playback_state(CoreaudioVoiceOut *core)
507 {
508 OSStatus status;
509 UInt32 isrunning;
510
510 - status = coreaudio_get_isrunning(core->outputDeviceID, &isrunning);
511 + status = coreaudio_get_out_isrunning(core->device_id, &isrunning);
512 if (status != kAudioHardwareNoError) {
513 if (status != kAudioHardwareBadObjectError) {
514 coreaudio_logerr(status,
@@ -520,7 +521,7 @@ static void update_device_playback_state(coreaudioVoiceOut *core)
521 if (core->enabled) {
522 /* start playback */
523 if (!isrunning) {
523 - status = AudioDeviceStart(core->outputDeviceID, core->ioprocid);
524 + status = AudioDeviceStart(core->device_id, core->ioprocid);
525 if (status != kAudioHardwareBadDeviceError && status != kAudioHardwareNoError) {
526 coreaudio_logerr(status, "Could not resume playback");
527 }
@@ -528,7 +529,7 @@ static void update_device_playback_state(coreaudioVoiceOut *core)
529 } else {
530 /* stop playback */
531 if (isrunning) {
531 - status = AudioDeviceStop(core->outputDeviceID,
532 + status = AudioDeviceStop(core->device_id,
533 core->ioprocid);
534 if (status != kAudioHardwareBadDeviceError && status != kAudioHardwareNoError) {
535 coreaudio_logerr(status, "Could not pause playback");
@@ -538,22 +539,22 @@ static void update_device_playback_state(coreaudioVoiceOut *core)
539 }
540
541 /* called without BQL. */
541 -static OSStatus handle_voice_change(
542 +static OSStatus handle_voice_out_change(
543 AudioObjectID in_object_id,
544 UInt32 in_number_addresses,
545 const AudioObjectPropertyAddress *in_addresses,
546 void *in_client_data)
547 {
547 - coreaudioVoiceOut *core = in_client_data;
548 + CoreaudioVoiceOut *core = in_client_data;
549
550 bql_lock();
551
551 - if (core->outputDeviceID) {
552 + if (core->device_id) {
553 fini_out_device(core);
554 }
555
556 if (!init_out_device(core)) {
556 - update_device_playback_state(core);
557 + update_out_device_playback_state(core);
558 }
559
560 bql_unlock();
@@ -563,7 +564,7 @@ static OSStatus handle_voice_change(
564 static int coreaudio_init_out(HWVoiceOut *hw, struct audsettings *as)
565 {
566 OSStatus status;
566 - coreaudioVoiceOut *core = (coreaudioVoiceOut *)hw;
567 + CoreaudioVoiceOut *core = (CoreaudioVoiceOut *)hw;
568 int err;
569 Audiodev *dev = hw->s->dev;
570 AudiodevCoreaudioPerDirectionOptions *cpdo = dev->u.coreaudio.out;
@@ -581,13 +582,14 @@ static int coreaudio_init_out(HWVoiceOut *hw, struct audsettings *as)
582 as->fmt = AUDIO_FORMAT_F32;
583 audio_pcm_init_info(&hw->info, as);
584
584 - core->frameSizeSetting = audio_buffer_frames(
585 + core->frame_size_setting = audio_buffer_frames(
586 qapi_AudiodevCoreaudioPerDirectionOptions_base(cpdo), as, 11610);
587
587 - core->bufferCount = cpdo->has_buffer_count ? cpdo->buffer_count : 4;
588 + core->buffer_count = cpdo->has_buffer_count ? cpdo->buffer_count : 4;
589
590 status = AudioObjectAddPropertyListener(kAudioObjectSystemObject,
590 - &voice_addr, handle_voice_change,
591 + &voice_out_addr,
592 + handle_voice_out_change,
593 core);
594 if (status != kAudioHardwareNoError) {
595 coreaudio_playback_logerr(status,
@@ -597,8 +599,8 @@ static int coreaudio_init_out(HWVoiceOut *hw, struct audsettings *as)
599
600 if (init_out_device(core)) {
601 status = AudioObjectRemovePropertyListener(kAudioObjectSystemObject,
600 - &voice_addr,
601 - handle_voice_change,
602 + &voice_out_addr,
603 + handle_voice_out_change,
604 core);
605 if (status != kAudioHardwareNoError) {
606 coreaudio_playback_logerr(status,
@@ -615,11 +617,11 @@ static void coreaudio_fini_out (HWVoiceOut *hw)
617 {
618 OSStatus status;
619 int err;
618 - coreaudioVoiceOut *core = (coreaudioVoiceOut *)hw;
620 + CoreaudioVoiceOut *core = (CoreaudioVoiceOut *)hw;
621
622 status = AudioObjectRemovePropertyListener(kAudioObjectSystemObject,
621 - &voice_addr,
622 - handle_voice_change,
623 + &voice_out_addr,
624 + handle_voice_out_change,
625 core);
626 if (status != kAudioHardwareNoError) {
627 coreaudio_logerr(status, "Could not remove voice property change listener");
@@ -636,10 +638,10 @@ static void coreaudio_fini_out (HWVoiceOut *hw)
638
639 static void coreaudio_enable_out(HWVoiceOut *hw, bool enable)
640 {
639 - coreaudioVoiceOut *core = (coreaudioVoiceOut *)hw;
641 + CoreaudioVoiceOut *core = (CoreaudioVoiceOut *)hw;
642
643 core->enabled = enable;
642 - update_device_playback_state(core);
644 + update_out_device_playback_state(core);
645 }
646
647 static void audio_coreaudio_class_init(ObjectClass *klass, const void *data)