Files

33 lines
603 B
Go
Raw Permalink Normal View History

package asciicast
import (
"time"
2015-03-05 15:57:12 +01:00
"github.com/asciinema/asciinema/terminal"
)
type Player interface {
Play(*Asciicast, float64) error
}
type AsciicastPlayer struct {
Terminal terminal.Terminal
}
func NewPlayer() Player {
return &AsciicastPlayer{Terminal: terminal.NewTerminal()}
}
func (r *AsciicastPlayer) Play(asciicast *Asciicast, maxWait float64) error {
for _, frame := range asciicast.Stdout {
2015-05-06 19:27:40 -07:00
delay := frame.Delay
if maxWait > 0 && delay > maxWait {
delay = maxWait
2015-05-06 19:27:40 -07:00
}
time.Sleep(time.Duration(float64(time.Second) * delay))
r.Terminal.Write(frame.Data)
}
return nil
}