コード例 #1
0
ファイル: mdxmml_ym2151.c プロジェクト: weimingtom/mdxplayer
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;
}
コード例 #2
0
ファイル: mdxmini.c プロジェクト: ysei/mdxmini
int mdx_next_frame ( t_mdxmini *data )
{
	if (data->self)
	{
		return mdx_parse_mml_ym2151_async(data->songdata);
	}
	return 0;
}