@@ -130,33 +130,33 @@ int main(int argc, char **argv) {
130
130
memset (mixBufR , 0 , sizeof (mixBufR ));
131
131
132
132
while (samples_remaining > 0 ) {
133
+ // compute the number of samples to render
134
+ int samples = samples_remaining ;
135
+
133
136
int timer_samples = pcm_timer_driver_estimate (& timer_driver , samples_remaining );
137
+ if (timer_samples < samples ) samples = timer_samples ;
138
+
134
139
int fm_samples = fm_opm_emu_driver_estimate (& fm_driver , samples_remaining );
140
+ if (fm_samples < samples ) samples = fm_samples ;
141
+
135
142
int adpcm_samples = adpcm_pcm_mix_driver_estimate (& adpcm_driver , samples_remaining );
143
+ if (adpcm_samples < samples ) samples = adpcm_samples ;
136
144
137
- int samples = timer_samples ;
138
- if (fm_samples < samples )
139
- samples = fm_samples ;
140
- if (adpcm_samples < samples )
141
- samples = adpcm_samples ;
142
-
143
- // printf("running adpcm\n");
144
145
adpcm_pcm_mix_driver_run (& adpcm_driver , bufL , bufR , samples );
145
146
for (int n = 0 ; n < samples ; n ++ ) {
146
147
mixBufLp [n ] += bufL [n ];
147
148
mixBufRp [n ] += bufR [n ];
148
149
}
149
- // printf("running fm\n");
150
+
150
151
fm_opm_emu_driver_run (& fm_driver , bufL , bufR , samples );
151
152
for (int n = 0 ; n < samples ; n ++ ) {
152
153
mixBufLp [n ] += bufL [n ];
153
154
mixBufRp [n ] += bufR [n ];
154
155
}
155
- // printf("running pcm_timer_driver\n");
156
+
156
157
pcm_timer_driver_advance (& timer_driver , samples );
157
158
158
159
samples_remaining -= samples ;
159
- // printf("timer_samples=%d fm_samples=%d adpcm_samples=%d samples=%d samples_remaining=%d\n", timer_samples, fm_samples, adpcm_samples, samples, samples_remaining);
160
160
mixBufLp += samples ;
161
161
mixBufRp += samples ;
162
162
}
0 commit comments