adlib: Remove support for YMF262
Notice that the code was supposed to be in the file ymf262.h, that has never been on qemu source tree. Signed-off-by: Juan Quintela <quintela@redhat.com> Message-id: 20170425223739.6703-2-quintela@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
7bdfd907e7
commit
68883a4078
|
@ -33,11 +33,7 @@
|
||||||
|
|
||||||
#define ADLIB_KILL_TIMERS 1
|
#define ADLIB_KILL_TIMERS 1
|
||||||
|
|
||||||
#ifdef HAS_YMF262
|
|
||||||
#define ADLIB_DESC "Yamaha YMF262 (OPL3)"
|
|
||||||
#else
|
|
||||||
#define ADLIB_DESC "Yamaha YM3812 (OPL2)"
|
#define ADLIB_DESC "Yamaha YM3812 (OPL2)"
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
#include "qemu/timer.h"
|
#include "qemu/timer.h"
|
||||||
|
@ -50,14 +46,8 @@
|
||||||
#define ldebug(...)
|
#define ldebug(...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAS_YMF262
|
|
||||||
#include "ymf262.h"
|
|
||||||
void YMF262UpdateOneQEMU (int which, INT16 *dst, int length);
|
|
||||||
#define SHIFT 2
|
|
||||||
#else
|
|
||||||
#include "fmopl.h"
|
#include "fmopl.h"
|
||||||
#define SHIFT 1
|
#define SHIFT 1
|
||||||
#endif
|
|
||||||
|
|
||||||
#define TYPE_ADLIB "adlib"
|
#define TYPE_ADLIB "adlib"
|
||||||
#define ADLIB(obj) OBJECT_CHECK(AdlibState, (obj), TYPE_ADLIB)
|
#define ADLIB(obj) OBJECT_CHECK(AdlibState, (obj), TYPE_ADLIB)
|
||||||
|
@ -80,9 +70,7 @@ typedef struct {
|
||||||
SWVoiceOut *voice;
|
SWVoiceOut *voice;
|
||||||
int left, pos, samples;
|
int left, pos, samples;
|
||||||
QEMUAudioTimeStamp ats;
|
QEMUAudioTimeStamp ats;
|
||||||
#ifndef HAS_YMF262
|
|
||||||
FM_OPL *opl;
|
FM_OPL *opl;
|
||||||
#endif
|
|
||||||
PortioList port_list;
|
PortioList port_list;
|
||||||
} AdlibState;
|
} AdlibState;
|
||||||
|
|
||||||
|
@ -90,11 +78,7 @@ static AdlibState *glob_adlib;
|
||||||
|
|
||||||
static void adlib_stop_opl_timer (AdlibState *s, size_t n)
|
static void adlib_stop_opl_timer (AdlibState *s, size_t n)
|
||||||
{
|
{
|
||||||
#ifdef HAS_YMF262
|
|
||||||
YMF262TimerOver (0, n);
|
|
||||||
#else
|
|
||||||
OPLTimerOver (s->opl, n);
|
OPLTimerOver (s->opl, n);
|
||||||
#endif
|
|
||||||
s->ticking[n] = 0;
|
s->ticking[n] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,11 +115,7 @@ static void adlib_write(void *opaque, uint32_t nport, uint32_t val)
|
||||||
|
|
||||||
adlib_kill_timers (s);
|
adlib_kill_timers (s);
|
||||||
|
|
||||||
#ifdef HAS_YMF262
|
|
||||||
YMF262Write (0, a, val);
|
|
||||||
#else
|
|
||||||
OPLWrite (s->opl, a, val);
|
OPLWrite (s->opl, a, val);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t adlib_read(void *opaque, uint32_t nport)
|
static uint32_t adlib_read(void *opaque, uint32_t nport)
|
||||||
|
@ -145,12 +125,8 @@ static uint32_t adlib_read(void *opaque, uint32_t nport)
|
||||||
int a = nport & 3;
|
int a = nport & 3;
|
||||||
|
|
||||||
adlib_kill_timers (s);
|
adlib_kill_timers (s);
|
||||||
|
|
||||||
#ifdef HAS_YMF262
|
|
||||||
data = YMF262Read (0, a);
|
|
||||||
#else
|
|
||||||
data = OPLRead (s->opl, a);
|
data = OPLRead (s->opl, a);
|
||||||
#endif
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,11 +216,7 @@ static void adlib_callback (void *opaque, int free)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAS_YMF262
|
|
||||||
YMF262UpdateOneQEMU (0, s->mixbuf + s->pos * 2, samples);
|
|
||||||
#else
|
|
||||||
YM3812UpdateOne (s->opl, s->mixbuf + s->pos, samples);
|
YM3812UpdateOne (s->opl, s->mixbuf + s->pos, samples);
|
||||||
#endif
|
|
||||||
|
|
||||||
while (samples) {
|
while (samples) {
|
||||||
written = write_audio (s, samples);
|
written = write_audio (s, samples);
|
||||||
|
@ -263,14 +235,10 @@ static void adlib_callback (void *opaque, int free)
|
||||||
|
|
||||||
static void Adlib_fini (AdlibState *s)
|
static void Adlib_fini (AdlibState *s)
|
||||||
{
|
{
|
||||||
#ifdef HAS_YMF262
|
|
||||||
YMF262Shutdown ();
|
|
||||||
#else
|
|
||||||
if (s->opl) {
|
if (s->opl) {
|
||||||
OPLDestroy (s->opl);
|
OPLDestroy (s->opl);
|
||||||
s->opl = NULL;
|
s->opl = NULL;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
g_free(s->mixbuf);
|
g_free(s->mixbuf);
|
||||||
|
|
||||||
|
@ -297,16 +265,6 @@ static void adlib_realizefn (DeviceState *dev, Error **errp)
|
||||||
}
|
}
|
||||||
glob_adlib = s;
|
glob_adlib = s;
|
||||||
|
|
||||||
#ifdef HAS_YMF262
|
|
||||||
if (YMF262Init (1, 14318180, s->freq)) {
|
|
||||||
error_setg (errp, "YMF262Init %d failed", s->freq);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
YMF262SetTimerHandler (0, timer_handler, 0);
|
|
||||||
s->enabled = 1;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
s->opl = OPLCreate (OPL_TYPE_YM3812, 3579545, s->freq);
|
s->opl = OPLCreate (OPL_TYPE_YM3812, 3579545, s->freq);
|
||||||
if (!s->opl) {
|
if (!s->opl) {
|
||||||
error_setg (errp, "OPLCreate %d failed", s->freq);
|
error_setg (errp, "OPLCreate %d failed", s->freq);
|
||||||
|
@ -316,7 +274,6 @@ static void adlib_realizefn (DeviceState *dev, Error **errp)
|
||||||
OPLSetTimerHandler (s->opl, timer_handler, 0);
|
OPLSetTimerHandler (s->opl, timer_handler, 0);
|
||||||
s->enabled = 1;
|
s->enabled = 1;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
as.freq = s->freq;
|
as.freq = s->freq;
|
||||||
as.nchannels = SHIFT;
|
as.nchannels = SHIFT;
|
||||||
|
|
Loading…
Reference in New Issue