paaudio.c (87f6a866f12b8ca037b0a5cfc2dc9b8db9e67696) paaudio.c (85bc58520c0e43660cbbe51b9eb5022a0baafe9f)
1/* public domain */
2#include "qemu/osdep.h"
3#include "qemu-common.h"
4#include "audio.h"
5
6#include <pulse/pulseaudio.h>
7
8#define AUDIO_CAP "pulseaudio"

--- 371 unchanged lines hidden (view full) ---

380 return incr;
381}
382
383static int qpa_read (SWVoiceIn *sw, void *buf, int len)
384{
385 return audio_pcm_sw_read (sw, buf, len);
386}
387
1/* public domain */
2#include "qemu/osdep.h"
3#include "qemu-common.h"
4#include "audio.h"
5
6#include <pulse/pulseaudio.h>
7
8#define AUDIO_CAP "pulseaudio"

--- 371 unchanged lines hidden (view full) ---

380 return incr;
381}
382
383static int qpa_read (SWVoiceIn *sw, void *buf, int len)
384{
385 return audio_pcm_sw_read (sw, buf, len);
386}
387
388static pa_sample_format_t audfmt_to_pa (audfmt_e afmt, int endianness)
388static pa_sample_format_t audfmt_to_pa (AudioFormat afmt, int endianness)
389{
390 int format;
391
392 switch (afmt) {
389{
390 int format;
391
392 switch (afmt) {
393 case AUD_FMT_S8:
394 case AUD_FMT_U8:
393 case AUDIO_FORMAT_S8:
394 case AUDIO_FORMAT_U8:
395 format = PA_SAMPLE_U8;
396 break;
395 format = PA_SAMPLE_U8;
396 break;
397 case AUD_FMT_S16:
398 case AUD_FMT_U16:
397 case AUDIO_FORMAT_S16:
398 case AUDIO_FORMAT_U16:
399 format = endianness ? PA_SAMPLE_S16BE : PA_SAMPLE_S16LE;
400 break;
399 format = endianness ? PA_SAMPLE_S16BE : PA_SAMPLE_S16LE;
400 break;
401 case AUD_FMT_S32:
402 case AUD_FMT_U32:
401 case AUDIO_FORMAT_S32:
402 case AUDIO_FORMAT_U32:
403 format = endianness ? PA_SAMPLE_S32BE : PA_SAMPLE_S32LE;
404 break;
405 default:
406 dolog ("Internal logic error: Bad audio format %d\n", afmt);
407 format = PA_SAMPLE_U8;
408 break;
409 }
410 return format;
411}
412
403 format = endianness ? PA_SAMPLE_S32BE : PA_SAMPLE_S32LE;
404 break;
405 default:
406 dolog ("Internal logic error: Bad audio format %d\n", afmt);
407 format = PA_SAMPLE_U8;
408 break;
409 }
410 return format;
411}
412
413static audfmt_e pa_to_audfmt (pa_sample_format_t fmt, int *endianness)
413static AudioFormat pa_to_audfmt (pa_sample_format_t fmt, int *endianness)
414{
415 switch (fmt) {
416 case PA_SAMPLE_U8:
414{
415 switch (fmt) {
416 case PA_SAMPLE_U8:
417 return AUD_FMT_U8;
417 return AUDIO_FORMAT_U8;
418 case PA_SAMPLE_S16BE:
419 *endianness = 1;
418 case PA_SAMPLE_S16BE:
419 *endianness = 1;
420 return AUD_FMT_S16;
420 return AUDIO_FORMAT_S16;
421 case PA_SAMPLE_S16LE:
422 *endianness = 0;
421 case PA_SAMPLE_S16LE:
422 *endianness = 0;
423 return AUD_FMT_S16;
423 return AUDIO_FORMAT_S16;
424 case PA_SAMPLE_S32BE:
425 *endianness = 1;
424 case PA_SAMPLE_S32BE:
425 *endianness = 1;
426 return AUD_FMT_S32;
426 return AUDIO_FORMAT_S32;
427 case PA_SAMPLE_S32LE:
428 *endianness = 0;
427 case PA_SAMPLE_S32LE:
428 *endianness = 0;
429 return AUD_FMT_S32;
429 return AUDIO_FORMAT_S32;
430 default:
431 dolog ("Internal logic error: Bad pa_sample_format %d\n", fmt);
430 default:
431 dolog ("Internal logic error: Bad pa_sample_format %d\n", fmt);
432 return AUD_FMT_U8;
432 return AUDIO_FORMAT_U8;
433 }
434}
435
436static void context_state_cb (pa_context *c, void *userdata)
437{
438 paaudio *g = userdata;
439
440 switch (pa_context_get_state(c)) {

--- 534 unchanged lines hidden ---
433 }
434}
435
436static void context_state_cb (pa_context *c, void *userdata)
437{
438 paaudio *g = userdata;
439
440 switch (pa_context_get_state(c)) {

--- 534 unchanged lines hidden ---