int mdx_parse_mml_ym2151_async_get_length(songdata *data) { int next,sec; __GETSELF(data) next = 1; while(next && self->mdx->elapsed_time < (1200 * 1000000)) { next = mdx_parse_mml_ym2151_async(data); } sec = (int)self->mdx->elapsed_time / 1000000; /* stop */ ym2151_all_note_off(data); /* reinitialize */ mdx_init_track_work_area_ym2151(data); pcm8_init(data); if (!ym2151_reg_init( self->mdx, data )) { /* failed to initialize opm! */ return 0; } /* start parsing */ self->all_track_finished=FLAG_FALSE; self->fade_out_wait=0; self->master_volume=127; return sec; }
int mdx_next_frame ( t_mdxmini *data ) { if (data->self) { return mdx_parse_mml_ym2151_async(data->songdata); } return 0; }