recorder

package
v0.12.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2021 License: GPL-3.0, GPL-3.0 Imports: 14 Imported by: 0

Documentation

Overview

Package recorder handles recording and playback of user input. The Recorder type implements the riot.input.EventRecorder() interface. Once added as a transcriber to the VCS port, it will record all user input to the specified file.

To keep things simple, recording gameplay will use the VCS in it's default state. Future versions of the recorder fileformat will support localised preferences.

Index

Constants

View Source
const (
	NotAPlaybackFile   = "playback file: %v"
	UnsupportedVersion = "playback file: unsupported version (%v)"
)

Sentinal errors from IsPlaybackFile().

View Source
const (
	PlaybackHashError = "playback: unexpected input at line %d (frame %d)"
)

Sentinal error returned by GetPlayback if a hash error is encountered.

Variables

This section is empty.

Functions

func IsPlaybackFile

func IsPlaybackFile(filename string) error

IsPlaybackFile return nil if file is a playback file and is a supported version. If file is not a playback file then the sentinal error NotAPlaybackFile is returned.

Recognised playback files but where the version is unspported will result in an UnsupportedVersion error.

Types

type Playback

type Playback struct {
	CartLoad cartridgeloader.Loader
	TVSpec   string
	// contains filtered or unexported fields
}

Playback is used to reperform the user input recorded in a previously recorded file. It implements the ports.Playback interface.

func NewPlayback

func NewPlayback(transcript string) (*Playback, error)

NewPlayback is the preferred method of implementation for the Playback type.

func (*Playback) AttachToVCS

func (plb *Playback) AttachToVCS(vcs *hardware.VCS) error

AttachToVCS attaches the playback instance (an implementation of the playback interface) to all the ports of the VCS, including the panel.

Note that this will reset the VCS.

func (Playback) EndFrame

func (plb Playback) EndFrame() (bool, error)

EndFrame returns true if emulation has gone past the last frame of the playback.

func (*Playback) GetPlayback added in v0.7.1

func (plb *Playback) GetPlayback() (plugging.PortID, ports.Event, ports.EventData, error)

GetPlayback returns an event and source PortID for an event occurring at the current TV frame/scanline/clock.

func (Playback) String

func (plb Playback) String() string

type Recorder

type Recorder struct {
	// contains filtered or unexported fields
}

Recorder transcribes user input to a file. The recorded file is intended for future playback. The Recorder type implements the ports.EventRecorder interface.

func NewRecorder

func NewRecorder(transcript string, vcs *hardware.VCS) (*Recorder, error)

NewRecorder is the preferred method of implementation for the FileRecorder type. Note that attaching of the Recorder to all the ports of the VCS (including the panel) is implicit in this function call.

Note that this will reset the VCS.

func (*Recorder) End

func (rec *Recorder) End() error

End flushes all remaining events to the output file and closes it.

func (*Recorder) RecordEvent

func (rec *Recorder) RecordEvent(id plugging.PortID, event ports.Event, data ports.EventData) error

RecordEvent implements the ports.EventRecorder interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL