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)