private double msec_from_clock( int timeCode )
{
double ret = 0.0;
int index = -1;
int c = g_tempoList.size();
for ( int i = 0; i < c; i++ ) {
if ( timeCode <= g_tempoList.get( i ).Clock ) {
break;
}
index = i;
}
if ( index >= 0 ) {
TempoInfo item = g_tempoList.get( index );
ret = item.TotalSec + (timeCode - item.Clock) * (double)item.Tempo / (1000.0 * TIME_FORMAT);
} else {
ret = timeCode * (double)DEF_TEMPO / (1000.0 * TIME_FORMAT);
}
return ret;
}