diff --git a/toolkit.go b/toolkit.go index f5500d7..906314a 100644 --- a/toolkit.go +++ b/toolkit.go @@ -64,7 +64,6 @@ func (tk *ToolKit) PlayAnimation(a Animation) error { return err } } - if err == io.EOF { return nil } @@ -72,6 +71,35 @@ func (tk *ToolKit) PlayAnimation(a Animation) error { return err } +func (tk *ToolKit) PlayAnimationUntil(a Animation, notify <-chan bool) error { + + var err error + var i image.Image + var n <-chan time.Time + var outerError error + for outerError == nil { + select { + case <-notify: + return nil + default: + i, n, err = a.Next() + if err != nil { + outerError = err + break + } + if err := tk.PlayImageUntil(i, n); err != nil { + return err + } + } + } + if outerError == io.EOF { + return nil + } + + return err + +} + // PlayImageUntil draws the given image until is notified to stop func (tk *ToolKit) PlayImageUntil(i image.Image, notify <-chan time.Time) error { defer func() {