version 1.12, 2014/03/05 20:31:22 |
version 1.13, 2014/03/07 10:15:38 |
|
|
#include "dsp.h" |
#include "dsp.h" |
#include "siofile.h" |
#include "siofile.h" |
#include "midi.h" |
#include "midi.h" |
#include "opt.h" |
|
#include "sysex.h" |
#include "sysex.h" |
#include "utils.h" |
#include "utils.h" |
|
|
|
|
void zomb_fill(void *); |
void zomb_fill(void *); |
void zomb_flush(void *); |
void zomb_flush(void *); |
void zomb_eof(void *); |
void zomb_eof(void *); |
void zomb_mmcstart(void *); |
|
void zomb_mmcstop(void *); |
|
void zomb_mmcloc(void *, unsigned int); |
|
void zomb_exit(void *); |
void zomb_exit(void *); |
|
|
void dev_log(struct dev *); |
void dev_log(struct dev *); |
|
|
zomb_fill, |
zomb_fill, |
zomb_flush, |
zomb_flush, |
zomb_eof, |
zomb_eof, |
zomb_mmcstart, |
|
zomb_mmcstop, |
|
zomb_mmcloc, |
|
zomb_exit |
zomb_exit |
}; |
}; |
|
|
|
|
} |
} |
|
|
void |
void |
zomb_mmcstart(void *arg) |
|
{ |
|
} |
|
|
|
void |
|
zomb_mmcstop(void *arg) |
|
{ |
|
} |
|
|
|
void |
|
zomb_mmcloc(void *arg, unsigned int pos) |
|
{ |
|
} |
|
|
|
void |
|
zomb_exit(void *arg) |
zomb_exit(void *arg) |
{ |
{ |
#ifdef DEBUG |
#ifdef DEBUG |
|
|
void |
void |
dev_mmcstop(struct dev *d) |
dev_mmcstop(struct dev *d) |
{ |
{ |
int i; |
|
struct slot *s; |
|
|
|
switch (d->tstate) { |
switch (d->tstate) { |
case MMC_START: |
case MMC_START: |
d->tstate = MMC_STOP; |
d->tstate = MMC_STOP; |
|
|
#endif |
#endif |
return; |
return; |
} |
} |
for (i = 0, s = d->slot; i < DEV_NSLOT; i++, s++) { |
|
if (!s->ops) |
|
continue; |
|
if (s->tstate == MMC_RUN) { |
|
#ifdef DEBUG |
|
if (log_level >= 3) { |
|
slot_log(s); |
|
log_puts(": requested to stop\n"); |
|
} |
|
#endif |
|
s->ops->mmcstop(s->arg); |
|
} |
|
} |
|
} |
} |
|
|
/* |
/* |
|
|
void |
void |
dev_mmcloc(struct dev *d, unsigned int origin) |
dev_mmcloc(struct dev *d, unsigned int origin) |
{ |
{ |
int i; |
|
struct slot *s; |
|
|
|
if (log_level >= 2) { |
if (log_level >= 2) { |
dev_log(d); |
dev_log(d); |
log_puts(": relocated to "); |
log_puts(": relocated to "); |
|
|
if (d->tstate == MMC_RUN) |
if (d->tstate == MMC_RUN) |
dev_mmcstop(d); |
dev_mmcstop(d); |
d->mtc.origin = origin; |
d->mtc.origin = origin; |
for (i = 0, s = d->slot; i < DEV_NSLOT; i++, s++) { |
|
if (!s->ops) |
|
continue; |
|
s->ops->mmcloc(s->arg, d->mtc.origin); |
|
} |
|
if (d->tstate == MMC_RUN) |
if (d->tstate == MMC_RUN) |
dev_mmcstart(d); |
dev_mmcstart(d); |
} |
} |