sb16.c (3c825bb7c1b4289ef05f51b5b77ac0967b6a27fa) sb16.c (85bc58520c0e43660cbbe51b9eb5022a0baafe9f)
1/*
2 * QEMU Soundblaster 16 emulation
3 *
4 * Copyright (c) 2003-2005 Vassili Karpov (malc)
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights

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

61 IsaDma *isa_dma;
62 IsaDma *isa_hdma;
63
64 int in_index;
65 int out_data_len;
66 int fmt_stereo;
67 int fmt_signed;
68 int fmt_bits;
1/*
2 * QEMU Soundblaster 16 emulation
3 *
4 * Copyright (c) 2003-2005 Vassili Karpov (malc)
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights

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

61 IsaDma *isa_dma;
62 IsaDma *isa_hdma;
63
64 int in_index;
65 int out_data_len;
66 int fmt_stereo;
67 int fmt_signed;
68 int fmt_bits;
69 audfmt_e fmt;
69 AudioFormat fmt;
70 int dma_auto;
71 int block_size;
72 int fifo;
73 int freq;
74 int time_const;
75 int speaker;
76 int needed_bytes;
77 int cmd;

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

219 );
220 }
221
222 control (s, 1);
223}
224
225static void dma_cmd8 (SB16State *s, int mask, int dma_len)
226{
70 int dma_auto;
71 int block_size;
72 int fifo;
73 int freq;
74 int time_const;
75 int speaker;
76 int needed_bytes;
77 int cmd;

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

219 );
220 }
221
222 control (s, 1);
223}
224
225static void dma_cmd8 (SB16State *s, int mask, int dma_len)
226{
227 s->fmt = AUD_FMT_U8;
227 s->fmt = AUDIO_FORMAT_U8;
228 s->use_hdma = 0;
229 s->fmt_bits = 8;
230 s->fmt_signed = 0;
231 s->fmt_stereo = (s->mixer_regs[0x0e] & 2) != 0;
232 if (-1 == s->time_const) {
233 if (s->freq <= 0)
234 s->freq = 11025;
235 }

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

314
315 ldebug ("freq %d, stereo %d, sign %d, bits %d, "
316 "dma %d, auto %d, fifo %d, high %d\n",
317 s->freq, s->fmt_stereo, s->fmt_signed, s->fmt_bits,
318 s->block_size, s->dma_auto, s->fifo, s->highspeed);
319
320 if (16 == s->fmt_bits) {
321 if (s->fmt_signed) {
228 s->use_hdma = 0;
229 s->fmt_bits = 8;
230 s->fmt_signed = 0;
231 s->fmt_stereo = (s->mixer_regs[0x0e] & 2) != 0;
232 if (-1 == s->time_const) {
233 if (s->freq <= 0)
234 s->freq = 11025;
235 }

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

314
315 ldebug ("freq %d, stereo %d, sign %d, bits %d, "
316 "dma %d, auto %d, fifo %d, high %d\n",
317 s->freq, s->fmt_stereo, s->fmt_signed, s->fmt_bits,
318 s->block_size, s->dma_auto, s->fifo, s->highspeed);
319
320 if (16 == s->fmt_bits) {
321 if (s->fmt_signed) {
322 s->fmt = AUD_FMT_S16;
322 s->fmt = AUDIO_FORMAT_S16;
323 }
324 else {
323 }
324 else {
325 s->fmt = AUD_FMT_U16;
325 s->fmt = AUDIO_FORMAT_U16;
326 }
327 }
328 else {
329 if (s->fmt_signed) {
326 }
327 }
328 else {
329 if (s->fmt_signed) {
330 s->fmt = AUD_FMT_S8;
330 s->fmt = AUDIO_FORMAT_S8;
331 }
332 else {
331 }
332 else {
333 s->fmt = AUD_FMT_U8;
333 s->fmt = AUDIO_FORMAT_U8;
334 }
335 }
336
337 s->left_till_irq = s->block_size;
338
339 s->bytes_per_second = (s->freq << s->fmt_stereo) << (s->fmt_bits == 16);
340 s->highspeed = 0;
341 s->align = (1 << (s->fmt_stereo + (s->fmt_bits == 16))) - 1;

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

847
848 s->freq = 11025;
849 s->fmt_signed = 0;
850 s->fmt_bits = 8;
851 s->fmt_stereo = 0;
852
853 as.freq = s->freq;
854 as.nchannels = 1;
334 }
335 }
336
337 s->left_till_irq = s->block_size;
338
339 s->bytes_per_second = (s->freq << s->fmt_stereo) << (s->fmt_bits == 16);
340 s->highspeed = 0;
341 s->align = (1 << (s->fmt_stereo + (s->fmt_bits == 16))) - 1;

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

847
848 s->freq = 11025;
849 s->fmt_signed = 0;
850 s->fmt_bits = 8;
851 s->fmt_stereo = 0;
852
853 as.freq = s->freq;
854 as.nchannels = 1;
855 as.fmt = AUD_FMT_U8;
855 as.fmt = AUDIO_FORMAT_U8;
856 as.endianness = 0;
857
858 s->voice = AUD_open_out (
859 &s->card,
860 s->voice,
861 "sb16",
862 s,
863 SB_audio_callback,

--- 592 unchanged lines hidden ---
856 as.endianness = 0;
857
858 s->voice = AUD_open_out (
859 &s->card,
860 s->voice,
861 "sb16",
862 s,
863 SB_audio_callback,

--- 592 unchanged lines hidden ---