--- np2/cbus/mpu98ii.h 2003/12/08 00:55:30 1.2 +++ np2/cbus/mpu98ii.h 2007/11/03 00:00:19 1.6 @@ -2,66 +2,79 @@ // ねこ専用ヘッダ enum { - MPU98_MAXTIMEBASE = (192 / 24), MPU98_EXCVBUFS = 512, MPU98_RECVBUFS = (1 << 7) }; -#define MPUCHDATAS 4 +#define MPUTRDATAS 4 typedef struct { + UINT8 phase; UINT8 step; - UINT8 datas; - UINT8 remain; + UINT8 cmd; UINT8 rstat; - UINT8 recv; - UINT8 padding[2]; - BYTE data[MPUCHDATAS]; -} MPUCH; + UINT datapos; + UINT datacnt; + UINT8 data[MPU98_EXCVBUFS]; +} MPUCMDS; typedef struct { UINT8 step; - UINT8 cmd; + UINT8 datas; + UINT8 remain; + UINT8 rstat; + UINT8 recv; UINT8 padding[2]; - UINT16 remain; - UINT16 datas; - BYTE data[MPU98_EXCVBUFS]; -} MPUF9CH; + UINT8 data[MPUTRDATAS]; +} MPUTR; typedef struct { - MPUCH ch[8]; - MPUF9CH f9; - - BYTE buf[MPU98_RECVBUFS]; - - SINT32 clock; int cnt; int pos; + UINT8 buf[MPU98_RECVBUFS]; +} MPURECV; - UINT16 port; // ver0.28 +typedef struct { + UINT16 port; UINT8 irqnum; UINT8 data; - UINT8 intch; - UINT8 intreq; + UINT32 xferclock; + SINT32 stepclock; - UINT8 fd_remain; - UINT8 fd_cnt; - UINT8 fd_step[4]; + UINT8 intphase; + UINT8 intreq; + UINT8 hclk_rem; + UINT8 hclk_cnt; + UINT8 hclk_step[4]; + UINT8 acttr; UINT8 status; UINT8 mode; - UINT8 cmd; - UINT8 timebase; + UINT8 flag1; + UINT8 flag2; + UINT8 tempo; - UINT8 tempos; + UINT8 reltempo; + UINT8 curtempo; + UINT8 inttimebase; + UINT8 recvevent; UINT8 remainstep; - UINT8 timing; - UINT8 avail; - UINT8 bar; + UINT8 syncmode; + UINT8 metromode; - UINT8 flag1; + UINT8 midipermetero; + UINT8 meteropermeas; + UINT8 sendplaycnt; + + UINT accch; + + MPURECV r; + + MPUCMDS cmd; + MPUTR tr[8]; + MPUCMDS cond; } _MPU98II, *MPU98II; @@ -69,7 +82,7 @@ typedef struct { extern "C" { #endif -extern _MPU98II mpu98; // ver0.28 +extern _MPU98II mpu98; void midiint(NEVENTITEM item); void midiwaitout(NEVENTITEM item); @@ -77,7 +90,7 @@ void midiwaitout(NEVENTITEM item); void mpu98ii_construct(void); void mpu98ii_destruct(void); -void mpu98ii_reset(void); +void mpu98ii_reset(const NP2CFG *pConfig); void mpu98ii_bind(void); void mpu98ii_callback(void);