void cvt_pt_event(struct xxm_event *event, uint8 *mod_event) { event->note = period_to_note((LSN(mod_event[0]) << 8) + mod_event[1]); event->ins = ((MSN(mod_event[0]) << 4) | MSN(mod_event[2])); event->fxt = LSN(mod_event[2]); event->fxp = mod_event[3]; disable_continue_fx(event); }
void decode_protracker_event(struct xmp_event *event, uint8 *mod_event) { int fxt = LSN(mod_event[2]); memset(event, 0, sizeof (struct xmp_event)); event->note = period_to_note((LSN(mod_event[0]) << 8) + mod_event[1]); event->ins = ((MSN(mod_event[0]) << 4) | MSN(mod_event[2])); if (fxt != 0x08) { event->fxt = fxt; event->fxp = mod_event[3]; } disable_continue_fx(event); }