audio: remove obsolete/obscure functions
AUD_init_time_stamp_{in,out} and AUD_get_elapsed_usec_{in,out} are only used by the adlib device. The result isn't actually being used since ADLIB_KILL_TIMERS was set some 20y ago. Let's drop this dead code now. Drop QEMUAudioTimeStamp as well as reported by Akihiko Odaki. Reviewed-by: Mark Cave-Ayland <mark.caveayland@nutanix.com> Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Marc-André Lureau committed
Nov 10, 2025 at 15:13 UTC
52ef022ae83cccc7b1faba25828d7f696e137ec7
4 files changed
+1
-62
audio/audio_template.h
-34
@@ -569,40 +569,6 @@ bool glue(AUD_is_active_, TYPE)(SW *sw)
569
return sw ? sw->active : 0;
570
}
571
572
-void glue (AUD_init_time_stamp_, TYPE) (SW *sw, QEMUAudioTimeStamp *ts)
573
-{
574
- if (!sw) {
575
- return;
576
- }
577
-
578
- ts->old_ts = sw->hw->ts_helper;
579
-}
580
-
581
-uint64_t glue (AUD_get_elapsed_usec_, TYPE) (SW *sw, QEMUAudioTimeStamp *ts)
582
-{
583
- uint64_t delta, cur_ts, old_ts;
584
-
585
- if (!sw) {
586
- return 0;
587
- }
588
-
589
- cur_ts = sw->hw->ts_helper;
590
- old_ts = ts->old_ts;
591
- /* dolog ("cur %" PRId64 " old %" PRId64 "\n", cur_ts, old_ts); */
592
-
593
- if (cur_ts >= old_ts) {
594
- delta = cur_ts - old_ts;
595
- } else {
596
- delta = UINT64_MAX - old_ts + cur_ts;
597
- }
598
-
599
- if (!delta) {
600
- return 0;
601
- }
602
-
603
- return muldiv64 (delta, sw->hw->info.freq, 1000000);
604
-}
605
-
572
#undef TYPE
573
#undef HW
574
#undef SW
hw/audio/adlib.c
+1
-17
@@ -34,8 +34,6 @@
34
35
#define DEBUG 0
36
37
-#define ADLIB_KILL_TIMERS 1
38
-
37
#define ADLIB_DESC "Yamaha YM3812 (OPL2)"
38
39
#if DEBUG
@@ -71,7 +69,6 @@ struct AdlibState {
69
uint64_t dexp[2];
70
SWVoiceOut *voice;
71
int left, pos, samples;
74
- QEMUAudioTimeStamp ats;
72
FM_OPL *opl;
73
PortioList port_list;
74
};
@@ -88,19 +85,7 @@ static void adlib_kill_timers (AdlibState *s)
85
86
for (i = 0; i < 2; ++i) {
87
if (s->ticking[i]) {
91
- uint64_t delta;
92
-
93
- delta = AUD_get_elapsed_usec_out (s->voice, &s->ats);
94
- ldebug (
95
- "delta = %f dexp = %f expired => %d",
96
- delta / 1000000.0,
97
- s->dexp[i] / 1000000.0,
98
- delta >= s->dexp[i]
99
- );
100
- if (ADLIB_KILL_TIMERS || delta >= s->dexp[i]) {
101
- adlib_stop_opl_timer (s, i);
102
- AUD_init_time_stamp_out (s->voice, &s->ats);
103
- }
88
+ adlib_stop_opl_timer(s, i);
89
}
90
}
91
}
@@ -149,7 +134,6 @@ static void timer_handler (void *opaque, int c, double interval_Sec)
134
#endif
135
136
s->dexp[n] = interval_Sec * 1000000.0;
152
- AUD_init_time_stamp_out (s->voice, &s->ats);
137
}
138
139
static int write_audio (AdlibState *s, int samples)
include/qemu/audio.h
-10
@@ -50,10 +50,6 @@ struct AudioBackendClass {
50
51
typedef struct AudioBackend AudioBackend;
52
53
-typedef struct QEMUAudioTimeStamp {
54
- uint64_t old_ts;
55
-} QEMUAudioTimeStamp;
56
-
53
bool AUD_backend_check(AudioBackend **be, Error **errp);
54
55
SWVoiceOut *AUD_open_out (
@@ -71,9 +67,6 @@ int AUD_get_buffer_size_out (SWVoiceOut *sw);
67
void AUD_set_active_out(SWVoiceOut *sw, bool on);
68
bool AUD_is_active_out(SWVoiceOut *sw);
69
74
-void AUD_init_time_stamp_out (SWVoiceOut *sw, QEMUAudioTimeStamp *ts);
75
-uint64_t AUD_get_elapsed_usec_out (SWVoiceOut *sw, QEMUAudioTimeStamp *ts);
76
-
70
#define AUDIO_MAX_CHANNELS 16
71
typedef struct Volume {
72
bool mute;
@@ -112,9 +105,6 @@ size_t AUD_read (SWVoiceIn *sw, void *pcm_buf, size_t size);
105
void AUD_set_active_in(SWVoiceIn *sw, bool on);
106
bool AUD_is_active_in(SWVoiceIn *sw);
107
115
-void AUD_init_time_stamp_in (SWVoiceIn *sw, QEMUAudioTimeStamp *ts);
116
-uint64_t AUD_get_elapsed_usec_in (SWVoiceIn *sw, QEMUAudioTimeStamp *ts);
117
-
108
void audio_cleanup(void);
109
110
typedef struct st_sample st_sample;
scripts/codeconverter/codeconverter/test_regexps.py
-1
@@ -202,7 +202,6 @@ typedef struct {
202
uint64_t dexp[2];
203
SWVoiceOut *voice;
204
int left, pos, samples;
205
- QEMUAudioTimeStamp ats;
205
FM_OPL *opl;
206
PortioList port_list;
207
} AdlibState;