Files
rkKVM/stream/ustreamer.go
2024-11-05 23:47:00 +01:00

55 lines
844 B
Go

package stream
import (
"rkkvm/config"
"rkkvm/external/process"
"time"
log "github.com/sirupsen/logrus"
)
var ustreamer *UStreamer
type UStreamer struct {
*process.ExtProcess
config.UStreamer
state State
}
func InitUStreamer(path string, args []string) *UStreamer {
ustreamer = &UStreamer{
ExtProcess: process.Init(path, args),
UStreamer: config.Get().UStreamer,
}
return ustreamer
}
func GetUStreamer() *UStreamer {
return ustreamer
}
func (u *UStreamer) MonitorState() {
ticker := time.NewTicker(1 * time.Second)
defer ticker.Stop()
for {
select {
case <-ticker.C:
{
state, err := GetState()
if err != nil {
u.state = State{}
log.Errorf("Failed to get process state: %v", err)
continue
}
u.state = state
}
}
}
}
func (u *UStreamer) GetState() State {
return u.state
}