device/raspivid: implement IsRunning method for raspivid

This commit is contained in:
Scott 2020-01-30 11:22:11 +10:30
parent 4c65173604
commit 25d68cf124
1 changed files with 9 additions and 7 deletions

View File

@ -107,11 +107,12 @@ var AutoWhiteBalanceModes = [...]string{
// Raspivid is an implementation of AVDevice that provides control over the // Raspivid is an implementation of AVDevice that provides control over the
// raspivid command to allow reading of data from a Raspberry Pi camera. // raspivid command to allow reading of data from a Raspberry Pi camera.
type Raspivid struct { type Raspivid struct {
cfg config.Config cfg config.Config
cmd *exec.Cmd cmd *exec.Cmd
out io.ReadCloser out io.ReadCloser
log config.Logger log config.Logger
done chan struct{} done chan struct{}
isRunning bool
} }
// New returns a new Raspivid. // New returns a new Raspivid.
@ -287,6 +288,7 @@ func (r *Raspivid) Start() error {
if err != nil { if err != nil {
return fmt.Errorf("could not start raspivid command: %w", err) return fmt.Errorf("could not start raspivid command: %w", err)
} }
r.isRunning = true
return nil return nil
} }
@ -310,11 +312,11 @@ func (r *Raspivid) Stop() error {
if err != nil { if err != nil {
return fmt.Errorf("could not kill raspivid process: %w", err) return fmt.Errorf("could not kill raspivid process: %w", err)
} }
r.isRunning = false
return r.out.Close() return r.out.Close()
} }
// IsRunning is used to determine if the pi's camera is running. // IsRunning is used to determine if the pi's camera is running.
func (r *Raspivid) IsRunning() bool { func (r *Raspivid) IsRunning() bool {
panic("not implemented") return r.isRunning
return false
} }