% % decode time string for timing codes % % stack: time-string fps % !Time.Fps 0 !Time.Fraction 0 !Time.Seconds 0 !Time.Minutes 0 !Time.Hours -1 !Time.Frames -1 !Time.Value ":" found? { % % this is a timecode % "." found? { % % has period, extract fraction of second % "." slice zeronull ^"0." !Time.Fraction ":" revslice zeronull !Time.Seconds ":" revslice zeronull !Time.Minutes zeronull !Time.Hours } { pop } ifelse % % calculate the time position % _Time.Hours 3600 mul _Time.Minutes 60 mul add _Time.Seconds add _Time.Fraction add dup !Time.Value _Time.Fps mul normint !Time.Frames } { pop } ifelse