Revision 1ea879e5

b/audio/alsaaudio.c
527 527
    int rpos, live, decr;
528 528
    int samples;
529 529
    uint8_t *dst;
530
    st_sample_t *src;
530
    struct st_sample *src;
531 531
    snd_pcm_sframes_t avail;
532 532

  
533 533
    live = audio_pcm_hw_get_live_out (hw);
......
612 612
    }
613 613
}
614 614

  
615
static int alsa_init_out (HWVoiceOut *hw, audsettings_t *as)
615
static int alsa_init_out (HWVoiceOut *hw, struct audsettings *as)
616 616
{
617 617
    ALSAVoiceOut *alsa = (ALSAVoiceOut *) hw;
618 618
    struct alsa_params_req req;
619 619
    struct alsa_params_obt obt;
620 620
    snd_pcm_t *handle;
621
    audsettings_t obt_as;
621
    struct audsettings obt_as;
622 622

  
623 623
    req.fmt = aud_to_alsafmt (as->fmt);
624 624
    req.freq = as->freq;
......
692 692
    return -1;
693 693
}
694 694

  
695
static int alsa_init_in (HWVoiceIn *hw, audsettings_t *as)
695
static int alsa_init_in (HWVoiceIn *hw, struct audsettings *as)
696 696
{
697 697
    ALSAVoiceIn *alsa = (ALSAVoiceIn *) hw;
698 698
    struct alsa_params_req req;
699 699
    struct alsa_params_obt obt;
700 700
    snd_pcm_t *handle;
701
    audsettings_t obt_as;
701
    struct audsettings obt_as;
702 702

  
703 703
    req.fmt = aud_to_alsafmt (as->fmt);
704 704
    req.freq = as->freq;
......
792 792

  
793 793
    for (i = 0; i < 2; ++i) {
794 794
        void *src;
795
        st_sample_t *dst;
795
        struct st_sample *dst;
796 796
        snd_pcm_sframes_t nread;
797 797
        snd_pcm_uframes_t len;
798 798

  
b/audio/audio.c
47 47
    int enabled;
48 48
    int nb_voices;
49 49
    int greedy;
50
    audsettings_t settings;
50
    struct audsettings settings;
51 51
};
52 52

  
53 53
static struct {
......
91 91

  
92 92
static AudioState glob_audio_state;
93 93

  
94
volume_t nominal_volume = {
94
struct mixeng_volume nominal_volume = {
95 95
    0,
96 96
#ifdef FLOAT_MIXENG
97 97
    1.0,
......
513 513
    }
514 514
}
515 515

  
516
static void audio_print_settings (audsettings_t *as)
516
static void audio_print_settings (struct audsettings *as)
517 517
{
518 518
    dolog ("frequency=%d nchannels=%d fmt=", as->freq, as->nchannels);
519 519

  
......
556 556
    AUD_log (NULL, "\n");
557 557
}
558 558

  
559
static int audio_validate_settings (audsettings_t *as)
559
static int audio_validate_settings (struct audsettings *as)
560 560
{
561 561
    int invalid;
562 562

  
......
580 580
    return invalid ? -1 : 0;
581 581
}
582 582

  
583
static int audio_pcm_info_eq (struct audio_pcm_info *info, audsettings_t *as)
583
static int audio_pcm_info_eq (struct audio_pcm_info *info, struct audsettings *as)
584 584
{
585 585
    int bits = 8, sign = 0;
586 586

  
......
609 609
        && info->swap_endianness == (as->endianness != AUDIO_HOST_ENDIANNESS);
610 610
}
611 611

  
612
void audio_pcm_init_info (struct audio_pcm_info *info, audsettings_t *as)
612
void audio_pcm_init_info (struct audio_pcm_info *info, struct audsettings *as)
613 613
{
614 614
    int bits = 8, sign = 0, shift = 0;
615 615

  
......
704 704
/*
705 705
 * Capture
706 706
 */
707
static void noop_conv (st_sample_t *dst, const void *src,
708
                       int samples, volume_t *vol)
707
static void noop_conv (struct st_sample *dst, const void *src,
708
                       int samples, struct mixeng_volume *vol)
709 709
{
710 710
    (void) src;
711 711
    (void) dst;
......
715 715

  
716 716
static CaptureVoiceOut *audio_pcm_capture_find_specific (
717 717
    AudioState *s,
718
    audsettings_t *as
718
    struct audsettings *as
719 719
    )
720 720
{
721 721
    CaptureVoiceOut *cap;
......
891 891
{
892 892
    HWVoiceIn *hw = sw->hw;
893 893
    int samples, live, ret = 0, swlim, isamp, osamp, rpos, total = 0;
894
    st_sample_t *src, *dst = sw->buf;
894
    struct st_sample *src, *dst = sw->buf;
895 895

  
896 896
    rpos = audio_pcm_sw_get_rpos_in (sw) % hw->samples;
897 897

  
......
1442 1442
        while (live) {
1443 1443
            int left = hw->samples - rpos;
1444 1444
            int to_capture = audio_MIN (live, left);
1445
            st_sample_t *src;
1445
            struct st_sample *src;
1446 1446
            struct capture_callback *cb;
1447 1447

  
1448 1448
            src = hw->mix_buf + rpos;
......
1812 1812

  
1813 1813
CaptureVoiceOut *AUD_add_capture (
1814 1814
    AudioState *s,
1815
    audsettings_t *as,
1815
    struct audsettings *as,
1816 1816
    struct audio_capture_ops *ops,
1817 1817
    void *cb_opaque
1818 1818
    )
......
1863 1863
        /* XXX find a more elegant way */
1864 1864
        hw->samples = 4096 * 4;
1865 1865
        hw->mix_buf = audio_calloc (AUDIO_FUNC, hw->samples,
1866
                                    sizeof (st_sample_t));
1866
                                    sizeof (struct st_sample));
1867 1867
        if (!hw->mix_buf) {
1868 1868
            dolog ("Could not allocate capture mix buffer (%d samples)\n",
1869 1869
                   hw->samples);
b/audio/audio.h
44 44
#define AUDIO_HOST_ENDIANNESS 0
45 45
#endif
46 46

  
47
typedef struct {
47
struct audsettings {
48 48
    int freq;
49 49
    int nchannels;
50 50
    audfmt_e fmt;
51 51
    int endianness;
52
} audsettings_t;
52
};
53 53

  
54 54
typedef enum {
55 55
    AUD_CNOTIFY_ENABLE,
......
100 100
void AUD_remove_card (QEMUSoundCard *card);
101 101
CaptureVoiceOut *AUD_add_capture (
102 102
    AudioState *s,
103
    audsettings_t *as,
103
    struct audsettings *as,
104 104
    struct audio_capture_ops *ops,
105 105
    void *opaque
106 106
    );
......
112 112
    const char *name,
113 113
    void *callback_opaque,
114 114
    audio_callback_fn_t callback_fn,
115
    audsettings_t *settings
115
    struct audsettings *settings
116 116
    );
117 117

  
118 118
void AUD_close_out (QEMUSoundCard *card, SWVoiceOut *sw);
......
133 133
    const char *name,
134 134
    void *callback_opaque,
135 135
    audio_callback_fn_t callback_fn,
136
    audsettings_t *settings
136
    struct audsettings *settings
137 137
    );
138 138

  
139 139
void AUD_close_in (QEMUSoundCard *card, SWVoiceIn *sw);
b/audio/audio_int.h
76 76
    int rpos;
77 77
    uint64_t ts_helper;
78 78

  
79
    st_sample_t *mix_buf;
79
    struct st_sample *mix_buf;
80 80

  
81 81
    int samples;
82 82
    LIST_HEAD (sw_out_listhead, SWVoiceOut) sw_head;
......
95 95
    int total_samples_captured;
96 96
    uint64_t ts_helper;
97 97

  
98
    st_sample_t *conv_buf;
98
    struct st_sample *conv_buf;
99 99

  
100 100
    int samples;
101 101
    LIST_HEAD (sw_in_listhead, SWVoiceIn) sw_head;
......
107 107
    struct audio_pcm_info info;
108 108
    t_sample *conv;
109 109
    int64_t ratio;
110
    st_sample_t *buf;
110
    struct st_sample *buf;
111 111
    void *rate;
112 112
    int total_hw_samples_mixed;
113 113
    int active;
114 114
    int empty;
115 115
    HWVoiceOut *hw;
116 116
    char *name;
117
    volume_t vol;
117
    struct mixeng_volume vol;
118 118
    struct audio_callback callback;
119 119
    LIST_ENTRY (SWVoiceOut) entries;
120 120
};
......
125 125
    int64_t ratio;
126 126
    void *rate;
127 127
    int total_hw_samples_acquired;
128
    st_sample_t *buf;
128
    struct st_sample *buf;
129 129
    f_sample *clip;
130 130
    HWVoiceIn *hw;
131 131
    char *name;
132
    volume_t vol;
132
    struct mixeng_volume vol;
133 133
    struct audio_callback callback;
134 134
    LIST_ENTRY (SWVoiceIn) entries;
135 135
};
......
149 149
};
150 150

  
151 151
struct audio_pcm_ops {
152
    int  (*init_out)(HWVoiceOut *hw, audsettings_t *as);
152
    int  (*init_out)(HWVoiceOut *hw, struct audsettings *as);
153 153
    void (*fini_out)(HWVoiceOut *hw);
154 154
    int  (*run_out) (HWVoiceOut *hw);
155 155
    int  (*write)   (SWVoiceOut *sw, void *buf, int size);
156 156
    int  (*ctl_out) (HWVoiceOut *hw, int cmd, ...);
157 157

  
158
    int  (*init_in) (HWVoiceIn *hw, audsettings_t *as);
158
    int  (*init_in) (HWVoiceIn *hw, struct audsettings *as);
159 159
    void (*fini_in) (HWVoiceIn *hw);
160 160
    int  (*run_in)  (HWVoiceIn *hw);
161 161
    int  (*read)    (SWVoiceIn *sw, void *buf, int size);
......
204 204
extern struct audio_driver dsound_audio_driver;
205 205
extern struct audio_driver esd_audio_driver;
206 206
extern struct audio_driver pa_audio_driver;
207
extern volume_t nominal_volume;
207
extern struct mixeng_volume nominal_volume;
208 208

  
209
void audio_pcm_init_info (struct audio_pcm_info *info, audsettings_t *as);
209
void audio_pcm_init_info (struct audio_pcm_info *info, struct audsettings *as);
210 210
void audio_pcm_info_clear_buf (struct audio_pcm_info *info, void *buf, int len);
211 211

  
212 212
int  audio_pcm_sw_write (SWVoiceOut *sw, void *buf, int len);
b/audio/audio_template.h
82 82

  
83 83
static int glue (audio_pcm_hw_alloc_resources_, TYPE) (HW *hw)
84 84
{
85
    HWBUF = audio_calloc (AUDIO_FUNC, hw->samples, sizeof (st_sample_t));
85
    HWBUF = audio_calloc (AUDIO_FUNC, hw->samples, sizeof (struct st_sample));
86 86
    if (!HWBUF) {
87 87
        dolog ("Could not allocate " NAME " buffer (%d samples)\n",
88 88
               hw->samples);
......
116 116
    samples = ((int64_t) sw->hw->samples << 32) / sw->ratio;
117 117
#endif
118 118

  
119
    sw->buf = audio_calloc (AUDIO_FUNC, samples, sizeof (st_sample_t));
119
    sw->buf = audio_calloc (AUDIO_FUNC, samples, sizeof (struct st_sample));
120 120
    if (!sw->buf) {
121 121
        dolog ("Could not allocate buffer for `%s' (%d samples)\n",
122 122
               SW_NAME (sw), samples);
......
140 140
    SW *sw,
141 141
    HW *hw,
142 142
    const char *name,
143
    audsettings_t *as
143
    struct audsettings *as
144 144
    )
145 145
{
146 146
    int err;
......
229 229
static HW *glue (audio_pcm_hw_find_specific_, TYPE) (
230 230
    AudioState *s,
231 231
    HW *hw,
232
    audsettings_t *as
232
    struct audsettings *as
233 233
    )
234 234
{
235 235
    while ((hw = glue (audio_pcm_hw_find_any_, TYPE) (s, hw))) {
......
240 240
    return NULL;
241 241
}
242 242

  
243
static HW *glue (audio_pcm_hw_add_new_, TYPE) (AudioState *s, audsettings_t *as)
243
static HW *glue (audio_pcm_hw_add_new_, TYPE) (AudioState *s,
244
                                               struct audsettings *as)
244 245
{
245 246
    HW *hw;
246 247
    struct audio_driver *drv = s->drv;
......
308 309
    return NULL;
309 310
}
310 311

  
311
static HW *glue (audio_pcm_hw_add_, TYPE) (AudioState *s, audsettings_t *as)
312
static HW *glue (audio_pcm_hw_add_, TYPE) (AudioState *s,
313
                                           struct audsettings *as)
312 314
{
313 315
    HW *hw;
314 316

  
......
335 337
static SW *glue (audio_pcm_create_voice_pair_, TYPE) (
336 338
    AudioState *s,
337 339
    const char *sw_name,
338
    audsettings_t *as
340
    struct audsettings *as
339 341
    )
340 342
{
341 343
    SW *sw;
342 344
    HW *hw;
343
    audsettings_t hw_as;
345
    struct audsettings hw_as;
344 346

  
345 347
    if (glue (conf.fixed_, TYPE).enabled) {
346 348
        hw_as = glue (conf.fixed_, TYPE).settings;
......
405 407
    const char *name,
406 408
    void *callback_opaque ,
407 409
    audio_callback_fn_t callback_fn,
408
    audsettings_t *as
410
    struct audsettings *as
409 411
    )
410 412
{
411 413
    AudioState *s;
b/audio/coreaudio.c
233 233
    HWVoiceOut *hw = hwptr;
234 234
    coreaudioVoiceOut *core = (coreaudioVoiceOut *) hwptr;
235 235
    int rpos, live;
236
    st_sample_t *src;
236
    struct st_sample *src;
237 237
#ifndef FLOAT_MIXENG
238 238
#ifdef RECIPROCAL
239 239
    const float scale = 1.f / UINT_MAX;
......
289 289
    return audio_pcm_sw_write (sw, buf, len);
290 290
}
291 291

  
292
static int coreaudio_init_out (HWVoiceOut *hw, audsettings_t *as)
292
static int coreaudio_init_out (HWVoiceOut *hw, struct audsettings *as)
293 293
{
294 294
    OSStatus status;
295 295
    coreaudioVoiceOut *core = (coreaudioVoiceOut *) hw;
b/audio/dsound_template.h
174 174
}
175 175

  
176 176
#ifdef DSBTYPE_IN
177
static int dsound_init_in (HWVoiceIn *hw, audsettings_t *as)
177
static int dsound_init_in (HWVoiceIn *hw, struct audsettings *as)
178 178
#else
179
static int dsound_init_out (HWVoiceOut *hw, audsettings_t *as)
179
static int dsound_init_out (HWVoiceOut *hw, struct audsettings *as)
180 180
#endif
181 181
{
182 182
    int err;
183 183
    HRESULT hr;
184 184
    dsound *s = &glob_dsound;
185 185
    WAVEFORMATEX wfx;
186
    audsettings_t obt_as;
186
    struct audsettings obt_as;
187 187
#ifdef DSBTYPE_IN
188 188
    const char *typ = "ADC";
189 189
    DSoundVoiceIn *ds = (DSoundVoiceIn *) hw;
b/audio/dsoundaudio.c
47 47
    int set_primary;
48 48
    int bufsize_in;
49 49
    int bufsize_out;
50
    audsettings_t settings;
50
    struct audsettings settings;
51 51
    int latency_millis;
52 52
} conf = {
53 53
    1,
......
68 68
    LPDIRECTSOUND dsound;
69 69
    LPDIRECTSOUNDCAPTURE dsound_capture;
70 70
    LPDIRECTSOUNDBUFFER dsound_primary_buffer;
71
    audsettings_t settings;
71
    struct audsettings settings;
72 72
} dsound;
73 73

  
74 74
static dsound glob_dsound;
......
307 307
    return -1;
308 308
}
309 309

  
310
static int waveformat_from_audio_settings (WAVEFORMATEX *wfx, audsettings_t *as)
310
static int waveformat_from_audio_settings (WAVEFORMATEX *wfx,
311
                                           struct audsettings *as)
311 312
{
312 313
    memset (wfx, 0, sizeof (*wfx));
313 314

  
......
346 347
    return 0;
347 348
}
348 349

  
349
static int waveformat_to_audio_settings (WAVEFORMATEX *wfx, audsettings_t *as)
350
static int waveformat_to_audio_settings (WAVEFORMATEX *wfx,
351
                                         struct audsettings *as)
350 352
{
351 353
    if (wfx->wFormatTag != WAVE_FORMAT_PCM) {
352 354
        dolog ("Invalid wave format, tag is not PCM, but %d\n",
......
448 450
    int src_len1 = dst_len;
449 451
    int src_len2 = 0;
450 452
    int pos = hw->rpos + dst_len;
451
    st_sample_t *src1 = hw->mix_buf + hw->rpos;
452
    st_sample_t *src2 = NULL;
453
    struct st_sample *src1 = hw->mix_buf + hw->rpos;
454
    struct st_sample *src2 = NULL;
453 455

  
454 456
    if (pos > hw->samples) {
455 457
        src_len1 = hw->samples - hw->rpos;
b/audio/esdaudio.c
115 115
        while (to_mix) {
116 116
            ssize_t written;
117 117
            int chunk = audio_MIN (to_mix, hw->samples - rpos);
118
            st_sample_t *src = hw->mix_buf + rpos;
118
            struct st_sample *src = hw->mix_buf + rpos;
119 119

  
120 120
            hw->clip (esd->pcm_buf, src, chunk);
121 121

  
......
188 188
    return audio_pcm_sw_write (sw, buf, len);
189 189
}
190 190

  
191
static int qesd_init_out (HWVoiceOut *hw, audsettings_t *as)
191
static int qesd_init_out (HWVoiceOut *hw, struct audsettings *as)
192 192
{
193 193
    ESDVoiceOut *esd = (ESDVoiceOut *) hw;
194
    audsettings_t obt_as = *as;
194
    struct audsettings obt_as = *as;
195 195
    int esdfmt = ESD_STREAM | ESD_PLAY;
196 196
    int err;
197 197
    sigset_t set, old_set;
......
421 421
    return audio_pcm_sw_read (sw, buf, len);
422 422
}
423 423

  
424
static int qesd_init_in (HWVoiceIn *hw, audsettings_t *as)
424
static int qesd_init_in (HWVoiceIn *hw, struct audsettings *as)
425 425
{
426 426
    ESDVoiceIn *esd = (ESDVoiceIn *) hw;
427
    audsettings_t obt_as = *as;
427
    struct audsettings obt_as = *as;
428 428
    int esdfmt = ESD_STREAM | ESD_RECORD;
429 429
    int err;
430 430
    sigset_t set, old_set;
b/audio/fmodaudio.c
142 142
    int src_len1 = dst_len;
143 143
    int src_len2 = 0;
144 144
    int pos = hw->rpos + dst_len;
145
    st_sample_t *src1 = hw->mix_buf + hw->rpos;
146
    st_sample_t *src2 = NULL;
145
    struct st_sample *src1 = hw->mix_buf + hw->rpos;
146
    struct st_sample *src2 = NULL;
147 147

  
148 148
    if (pos > hw->samples) {
149 149
        src_len1 = hw->samples - hw->rpos;
......
355 355
    }
356 356
}
357 357

  
358
static int fmod_init_out (HWVoiceOut *hw, audsettings_t *as)
358
static int fmod_init_out (HWVoiceOut *hw, struct audsettings *as)
359 359
{
360 360
    int bits16, mode, channel;
361 361
    FMODVoiceOut *fmd = (FMODVoiceOut *) hw;
362
    audsettings_t obt_as = *as;
362
    struct audsettings obt_as = *as;
363 363

  
364 364
    mode = aud_to_fmodfmt (as->fmt, as->nchannels == 2 ? 1 : 0);
365 365
    fmd->fmod_sample = FSOUND_Sample_Alloc (
......
417 417
    return 0;
418 418
}
419 419

  
420
static int fmod_init_in (HWVoiceIn *hw, audsettings_t *as)
420
static int fmod_init_in (HWVoiceIn *hw, struct audsettings *as)
421 421
{
422 422
    int bits16, mode;
423 423
    FMODVoiceIn *fmd = (FMODVoiceIn *) hw;
424
    audsettings_t obt_as = *as;
424
    struct audsettings obt_as = *as;
425 425

  
426 426
    if (conf.broken_adc) {
427 427
        return -1;
b/audio/mixeng.c
290 290
    uint64_t opos;
291 291
    uint64_t opos_inc;
292 292
    uint32_t ipos;              /* position in the input stream (integer) */
293
    st_sample_t ilast;          /* last sample in the input stream */
293
    struct st_sample ilast;          /* last sample in the input stream */
294 294
};
295 295

  
296 296
/*
......
329 329
    qemu_free (opaque);
330 330
}
331 331

  
332
void mixeng_clear (st_sample_t *buf, int len)
332
void mixeng_clear (struct st_sample *buf, int len)
333 333
{
334
    memset (buf, 0, len * sizeof (st_sample_t));
334
    memset (buf, 0, len * sizeof (struct st_sample));
335 335
}
b/audio/mixeng.h
25 25
#define QEMU_MIXENG_H
26 26

  
27 27
#ifdef FLOAT_MIXENG
28
typedef float real_t;
29
typedef struct { int mute; real_t r; real_t l; } volume_t;
30
typedef struct { real_t l; real_t r; } st_sample_t;
28
typedef float mixeng_real;
29
struct mixeng_volume { int mute; mixeng_real r; mixeng_real l; };
30
struct mixeng_sample { mixeng_real l; mixeng_real r; };
31 31
#else
32
typedef struct { int mute; int64_t r; int64_t l; } volume_t;
33
typedef struct { int64_t l; int64_t r; } st_sample_t;
32
struct mixeng_volume { int mute; int64_t r; int64_t l; };
33
struct st_sample { int64_t l; int64_t r; };
34 34
#endif
35 35

  
36
typedef void (t_sample) (st_sample_t *dst, const void *src,
37
                         int samples, volume_t *vol);
38
typedef void (f_sample) (void *dst, const st_sample_t *src, int samples);
36
typedef void (t_sample) (struct st_sample *dst, const void *src,
37
                         int samples, struct mixeng_volume *vol);
38
typedef void (f_sample) (void *dst, const struct st_sample *src, int samples);
39 39

  
40 40
extern t_sample *mixeng_conv[2][2][2][3];
41 41
extern f_sample *mixeng_clip[2][2][2][3];
42 42

  
43 43
void *st_rate_start (int inrate, int outrate);
44
void st_rate_flow (void *opaque, st_sample_t *ibuf, st_sample_t *obuf,
44
void st_rate_flow (void *opaque, struct st_sample *ibuf, struct st_sample *obuf,
45 45
                   int *isamp, int *osamp);
46
void st_rate_flow_mix (void *opaque, st_sample_t *ibuf, st_sample_t *obuf,
46
void st_rate_flow_mix (void *opaque, struct st_sample *ibuf, struct st_sample *obuf,
47 47
                       int *isamp, int *osamp);
48 48
void st_rate_stop (void *opaque);
49
void mixeng_clear (st_sample_t *buf, int len);
49
void mixeng_clear (struct st_sample *buf, int len);
50 50

  
51 51
#endif  /* mixeng.h */
b/audio/mixeng_template.h
44 44
#define ET glue (ENDIAN_CONVERSION, glue (_, IN_T))
45 45

  
46 46
#ifdef FLOAT_MIXENG
47
static real_t inline glue (conv_, ET) (IN_T v)
47
static mixeng_real inline glue (conv_, ET) (IN_T v)
48 48
{
49 49
    IN_T nv = ENDIAN_CONVERT (v);
50 50

  
51 51
#ifdef RECIPROCAL
52 52
#ifdef SIGNED
53
    return nv * (1.f / (real_t) (IN_MAX - IN_MIN));
53
    return nv * (1.f / (mixeng_real) (IN_MAX - IN_MIN));
54 54
#else
55
    return (nv - HALF) * (1.f / (real_t) IN_MAX);
55
    return (nv - HALF) * (1.f / (mixeng_real) IN_MAX);
56 56
#endif
57 57
#else  /* !RECIPROCAL */
58 58
#ifdef SIGNED
59
    return nv / (real_t) (IN_MAX - IN_MIN);
59
    return nv / (mixeng_real) (IN_MAX - IN_MIN);
60 60
#else
61
    return (nv - HALF) / (real_t) IN_MAX;
61
    return (nv - HALF) / (mixeng_real) IN_MAX;
62 62
#endif
63 63
#endif
64 64
}
65 65

  
66
static IN_T inline glue (clip_, ET) (real_t v)
66
static IN_T inline glue (clip_, ET) (mixeng_real v)
67 67
{
68 68
    if (v >= 0.5) {
69 69
        return IN_MAX;
......
109 109
#endif
110 110

  
111 111
static void glue (glue (conv_, ET), _to_stereo)
112
    (st_sample_t *dst, const void *src, int samples, volume_t *vol)
112
    (struct st_sample *dst, const void *src, int samples, struct mixeng_volume *vol)
113 113
{
114
    st_sample_t *out = dst;
114
    struct st_sample *out = dst;
115 115
    IN_T *in = (IN_T *) src;
116 116
#ifdef CONFIG_MIXEMU
117 117
    if (vol->mute) {
......
129 129
}
130 130

  
131 131
static void glue (glue (conv_, ET), _to_mono)
132
    (st_sample_t *dst, const void *src, int samples, volume_t *vol)
132
    (struct st_sample *dst, const void *src, int samples, struct mixeng_volume *vol)
133 133
{
134
    st_sample_t *out = dst;
134
    struct st_sample *out = dst;
135 135
    IN_T *in = (IN_T *) src;
136 136
#ifdef CONFIG_MIXEMU
137 137
    if (vol->mute) {
......
150 150
}
151 151

  
152 152
static void glue (glue (clip_, ET), _from_stereo)
153
    (void *dst, const st_sample_t *src, int samples)
153
    (void *dst, const struct st_sample *src, int samples)
154 154
{
155
    const st_sample_t *in = src;
155
    const struct st_sample *in = src;
156 156
    IN_T *out = (IN_T *) dst;
157 157
    while (samples--) {
158 158
        *out++ = glue (clip_, ET) (in->l);
......
162 162
}
163 163

  
164 164
static void glue (glue (clip_, ET), _from_mono)
165
    (void *dst, const st_sample_t *src, int samples)
165
    (void *dst, const struct st_sample *src, int samples)
166 166
{
167
    const st_sample_t *in = src;
167
    const struct st_sample *in = src;
168 168
    IN_T *out = (IN_T *) dst;
169 169
    while (samples--) {
170 170
        *out++ = glue (clip_, ET) (in->l + in->r);
b/audio/noaudio.c
68 68
    return audio_pcm_sw_write (sw, buf, len);
69 69
}
70 70

  
71
static int no_init_out (HWVoiceOut *hw, audsettings_t *as)
71
static int no_init_out (HWVoiceOut *hw, struct audsettings *as)
72 72
{
73 73
    audio_pcm_init_info (&hw->info, as);
74 74
    hw->samples = 1024;
......
87 87
    return 0;
88 88
}
89 89

  
90
static int no_init_in (HWVoiceIn *hw, audsettings_t *as)
90
static int no_init_in (HWVoiceIn *hw, struct audsettings *as)
91 91
{
92 92
    audio_pcm_init_info (&hw->info, as);
93 93
    hw->samples = 1024;
b/audio/ossaudio.c
294 294
    int err, rpos, live, decr;
295 295
    int samples;
296 296
    uint8_t *dst;
297
    st_sample_t *src;
297
    struct st_sample *src;
298 298
    struct audio_buf_info abinfo;
299 299
    struct count_info cntinfo;
300 300
    int bufsize;
......
434 434
    }
435 435
}
436 436

  
437
static int oss_init_out (HWVoiceOut *hw, audsettings_t *as)
437
static int oss_init_out (HWVoiceOut *hw, struct audsettings *as)
438 438
{
439 439
    OSSVoiceOut *oss = (OSSVoiceOut *) hw;
440 440
    struct oss_params req, obt;
......
442 442
    int err;
443 443
    int fd;
444 444
    audfmt_e effective_fmt;
445
    audsettings_t obt_as;
445
    struct audsettings obt_as;
446 446

  
447 447
    oss->fd = -1;
448 448

  
......
576 576
    return 0;
577 577
}
578 578

  
579
static int oss_init_in (HWVoiceIn *hw, audsettings_t *as)
579
static int oss_init_in (HWVoiceIn *hw, struct audsettings *as)
580 580
{
581 581
    OSSVoiceIn *oss = (OSSVoiceIn *) hw;
582 582
    struct oss_params req, obt;
......
584 584
    int err;
585 585
    int fd;
586 586
    audfmt_e effective_fmt;
587
    audsettings_t obt_as;
587
    struct audsettings obt_as;
588 588

  
589 589
    oss->fd = -1;
590 590

  
b/audio/paaudio.c
95 95
        while (to_mix) {
96 96
            int error;
97 97
            int chunk = audio_MIN (to_mix, hw->samples - rpos);
98
            st_sample_t *src = hw->mix_buf + rpos;
98
            struct st_sample *src = hw->mix_buf + rpos;
99 99

  
100 100
            hw->clip (pa->pcm_buf, src, chunk);
101 101

  
......
295 295
    }
296 296
}
297 297

  
298
static int qpa_init_out (HWVoiceOut *hw, audsettings_t *as)
298
static int qpa_init_out (HWVoiceOut *hw, struct audsettings *as)
299 299
{
300 300
    int error;
301 301
    static pa_sample_spec ss;
302
    audsettings_t obt_as = *as;
302
    struct audsettings obt_as = *as;
303 303
    PAVoiceOut *pa = (PAVoiceOut *) hw;
304 304

  
305 305
    ss.format = audfmt_to_pa (as->fmt, as->endianness);
......
349 349
    return -1;
350 350
}
351 351

  
352
static int qpa_init_in (HWVoiceIn *hw, audsettings_t *as)
352
static int qpa_init_in (HWVoiceIn *hw, struct audsettings *as)
353 353
{
354 354
    int error;
355 355
    static pa_sample_spec ss;
356
    audsettings_t obt_as = *as;
356
    struct audsettings obt_as = *as;
357 357
    PAVoiceIn *pa = (PAVoiceIn *) hw;
358 358

  
359 359
    ss.format = audfmt_to_pa (as->fmt, as->endianness);
b/audio/rate_template.h
27 27
 * Processed signed long samples from ibuf to obuf.
28 28
 * Return number of samples processed.
29 29
 */
30
void NAME (void *opaque, st_sample_t *ibuf, st_sample_t *obuf,
30
void NAME (void *opaque, struct st_sample *ibuf, struct st_sample *obuf,
31 31
           int *isamp, int *osamp)
32 32
{
33 33
    struct rate *rate = opaque;
34
    st_sample_t *istart, *iend;
35
    st_sample_t *ostart, *oend;
36
    st_sample_t ilast, icur, out;
34
    struct st_sample *istart, *iend;
35
    struct st_sample *ostart, *oend;
36
    struct st_sample ilast, icur, out;
37 37
#ifdef FLOAT_MIXENG
38
    real_t t;
38
    mixeng_real t;
39 39
#else
40 40
    int64_t t;
41 41
#endif
......
84 84
#ifdef RECIPROCAL
85 85
        t = (rate->opos & UINT_MAX) * (1.f / UINT_MAX);
86 86
#else
87
        t = (rate->opos & UINT_MAX) / (real_t) UINT_MAX;
87
        t = (rate->opos & UINT_MAX) / (mixeng_real) UINT_MAX;
88 88
#endif
89 89
        out.l = (ilast.l * (1.0 - t)) + icur.l * t;
90 90
        out.r = (ilast.r * (1.0 - t)) + icur.r * t;
b/audio/sdlaudio.c
257 257
        decr = to_mix;
258 258
        while (to_mix) {
259 259
            int chunk = audio_MIN (to_mix, hw->samples - hw->rpos);
260
            st_sample_t *src = hw->mix_buf + hw->rpos;
260
            struct st_sample *src = hw->mix_buf + hw->rpos;
261 261

  
262 262
            /* dolog ("in callback to_mix %d, chunk %d\n", to_mix, chunk); */
263 263
            hw->clip (buf, src, chunk);
......
323 323
    sdl_close (&glob_sdl);
324 324
}
325 325

  
326
static int sdl_init_out (HWVoiceOut *hw, audsettings_t *as)
326
static int sdl_init_out (HWVoiceOut *hw, struct audsettings *as)
327 327
{
328 328
    SDLVoiceOut *sdl = (SDLVoiceOut *) hw;
329 329
    SDLAudioState *s = &glob_sdl;
......
332 332
    int endianess;
333 333
    int err;
334 334
    audfmt_e effective_fmt;
335
    audsettings_t obt_as;
335
    struct audsettings obt_as;
336 336

  
337 337
    shift <<= as->nchannels == 2;
338 338

  
b/audio/wavaudio.c
37 37
} WAVVoiceOut;
38 38

  
39 39
static struct {
40
    audsettings_t settings;
40
    struct audsettings settings;
41 41
    const char *wav_path;
42 42
} conf = {
43 43
    {
......
54 54
    WAVVoiceOut *wav = (WAVVoiceOut *) hw;
55 55
    int rpos, live, decr, samples;
56 56
    uint8_t *dst;
57
    st_sample_t *src;
57
    struct st_sample *src;
58 58
    int64_t now = qemu_get_clock (vm_clock);
59 59
    int64_t ticks = now - wav->old_ticks;
60 60
    int64_t bytes = (ticks * hw->info.bytes_per_second) / ticks_per_sec;
......
109 109
    }
110 110
}
111 111

  
112
static int wav_init_out (HWVoiceOut *hw, audsettings_t *as)
112
static int wav_init_out (HWVoiceOut *hw, struct audsettings *as)
113 113
{
114 114
    WAVVoiceOut *wav = (WAVVoiceOut *) hw;
115 115
    int bits16 = 0, stereo = 0;
......
119 119
        0x02, 0x00, 0x44, 0xac, 0x00, 0x00, 0x10, 0xb1, 0x02, 0x00, 0x04,
120 120
        0x00, 0x10, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00
121 121
    };
122
    audsettings_t wav_as = conf.settings;
122
    struct audsettings wav_as = conf.settings;
123 123

  
124 124
    (void) as;
125 125

  
b/audio/wavcapture.c
91 91
        0x02, 0x00, 0x44, 0xac, 0x00, 0x00, 0x10, 0xb1, 0x02, 0x00, 0x04,
92 92
        0x00, 0x10, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00
93 93
    };
94
    audsettings_t as;
94
    struct audsettings as;
95 95
    struct audio_capture_ops ops;
96 96
    int stereo, bits16, shift;
97 97
    CaptureVoiceOut *cap;
b/hw/ac97.c
354 354

  
355 355
static void open_voice (AC97LinkState *s, int index, int freq)
356 356
{
357
    audsettings_t as;
357
    struct audsettings as;
358 358

  
359 359
    as.freq = freq;
360 360
    as.nchannels = 2;
b/hw/adlib.c
280 280
int Adlib_init (AudioState *audio, qemu_irq *pic)
281 281
{
282 282
    AdlibState *s = &glob_adlib;
283
    audsettings_t as;
283
    struct audsettings as;
284 284

  
285 285
    if (!audio) {
286 286
        dolog ("No audio state\n");
b/hw/cs4231a.c
268 268
static void cs_reset_voices (CSState *s, uint32_t val)
269 269
{
270 270
    int xtal;
271
    audsettings_t as;
271
    struct audsettings as;
272 272

  
273 273
#ifdef DEBUG_XLAW
274 274
    if (val == 0 || val == 32)
b/hw/es1370.c
421 421
                    (new_fmt & 2) ? AUD_FMT_S16 : AUD_FMT_U8,
422 422
                    d->shift);
423 423
            if (new_freq) {
424
                audsettings_t as;
424
                struct audsettings as;
425 425

  
426 426
                as.freq = new_freq;
427 427
                as.nchannels = 1 << (new_fmt & 1);
b/hw/gus.c
253 253
int GUS_init (AudioState *audio, qemu_irq *pic)
254 254
{
255 255
    GUSState *s;
256
    audsettings_t as;
256
    struct audsettings as;
257 257

  
258 258
    if (!audio) {
259 259
        dolog ("No audio state\n");
b/hw/omap2.c
1610 1610

  
1611 1611
static void omap_eac_format_update(struct omap_eac_s *s)
1612 1612
{
1613
    audsettings_t fmt;
1613
    struct audsettings fmt;
1614 1614

  
1615 1615
    /* The hardware buffers at most one sample */
1616 1616
    if (s->codec.rxlen)
b/hw/pcspk.c
99 99
int pcspk_audio_init(AudioState *audio, qemu_irq *pic)
100 100
{
101 101
    PCSpkState *s = &pcspk_state;
102
    audsettings_t as = {PCSPK_SAMPLE_RATE, 1, AUD_FMT_U8, 0};
102
    struct audsettings as = {PCSPK_SAMPLE_RATE, 1, AUD_FMT_U8, 0};
103 103

  
104 104
    if (!audio) {
105 105
        AUD_log(s_spk, "No audio state\n");
b/hw/sb16.c
201 201
static void continue_dma8 (SB16State *s)
202 202
{
203 203
    if (s->freq > 0) {
204
        audsettings_t as;
204
        struct audsettings as;
205 205

  
206 206
        s->audio_free = 0;
207 207

  
......
346 346
    }
347 347

  
348 348
    if (s->freq) {
349
        audsettings_t as;
349
        struct audsettings as;
350 350

  
351 351
        s->audio_free = 0;
352 352

  
......
833 833

  
834 834
static void legacy_reset (SB16State *s)
835 835
{
836
    audsettings_t as;
836
    struct audsettings as;
837 837

  
838 838
    s->freq = 11025;
839 839
    s->fmt_signed = 0;
......
1375 1375

  
1376 1376
    if (s->dma_running) {
1377 1377
        if (s->freq) {
1378
            audsettings_t as;
1378
            struct audsettings as;
1379 1379

  
1380 1380
            s->audio_free = 0;
1381 1381

  
b/hw/tsc210x.c
327 327
static void tsc2102_audio_output_update(struct tsc210x_state_s *s)
328 328
{
329 329
    int enable;
330
    audsettings_t fmt;
330
    struct audsettings fmt;
331 331

  
332 332
    if (s->dac_voice[0]) {
333 333
        tsc210x_out_flush(s, s->codec.out.len);
b/hw/wm8750.c
170 170
static void wm8750_set_format(struct wm8750_s *s)
171 171
{
172 172
    int i;
173
    audsettings_t in_fmt;
174
    audsettings_t out_fmt;
175
    audsettings_t monoout_fmt;
173
    struct audsettings in_fmt;
174
    struct audsettings out_fmt;
175
    struct audsettings monoout_fmt;
176 176

  
177 177
    wm8750_out_flush(s);
178 178

  
b/vnc.c
171 171
    int client_blue_shift, client_blue_max, server_blue_shift, server_blue_max;
172 172

  
173 173
    CaptureVoiceOut *audio_cap;
174
    audsettings_t as;
174
    struct audsettings as;
175 175

  
176 176
    VncReadEvent *read_handler;
177 177
    size_t read_handler_expect;

Also available in: Unified diff