mirror of
https://github.com/luckfox-eng29/kvm.git
synced 2026-06-07 10:35:10 +02:00
Update App version to 0.1.1
Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
This commit is contained in:
54
main.go
54
main.go
@@ -8,6 +8,7 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/Masterminds/semver/v3"
|
||||
"github.com/gwatts/rootcerts"
|
||||
)
|
||||
|
||||
@@ -26,14 +27,19 @@ func Main() {
|
||||
logger.Warn().Err(err).Msg("failed to get local version")
|
||||
}
|
||||
|
||||
minRequiredSystemVersion := semver.MustParse("0.1.4")
|
||||
isNewEnoughSystem := systemVersionLocal != nil && !systemVersionLocal.LessThan(minRequiredSystemVersion)
|
||||
|
||||
logger.Info().
|
||||
Interface("system_version", systemVersionLocal).
|
||||
Interface("app_version", appVersionLocal).
|
||||
Msg("starting KVM")
|
||||
|
||||
//go runWatchdog()
|
||||
go runWatchdog()
|
||||
go confirmCurrentSystem() //A/B system
|
||||
go setForceHpd()
|
||||
if isNewEnoughSystem {
|
||||
go setForceHpd()
|
||||
}
|
||||
|
||||
http.DefaultClient.Timeout = 1 * time.Minute
|
||||
|
||||
@@ -74,6 +80,22 @@ func Main() {
|
||||
// Initialize native video socket server
|
||||
StartVideoDataSocketServer()
|
||||
|
||||
// Set up callbacks for HTTP video stream subscribers
|
||||
// When first HTTP subscriber connects and there's no WebRTC session, start video
|
||||
videoBroadcaster.onFirstSubscribe = func() {
|
||||
if actionSessions == 0 {
|
||||
logger.Info().Msg("First HTTP video subscriber connected, starting video stream")
|
||||
_ = writeCtrlAction("start_video")
|
||||
}
|
||||
}
|
||||
// When last HTTP subscriber disconnects and there's no WebRTC session, stop video
|
||||
videoBroadcaster.onLastUnsubscribe = func() {
|
||||
if actionSessions == 0 {
|
||||
logger.Info().Msg("Last HTTP video subscriber disconnected, stopping video stream")
|
||||
_ = writeCtrlAction("stop_video")
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize native audio socket server
|
||||
StartAudioCtrlSocketServer()
|
||||
|
||||
@@ -109,29 +131,31 @@ func Main() {
|
||||
}
|
||||
}()
|
||||
|
||||
// initialize usb gadget
|
||||
initUsbGadget()
|
||||
if isNewEnoughSystem {
|
||||
// initialize usb gadget
|
||||
initUsbGadget()
|
||||
|
||||
if err := setInitialVirtualMediaState(); err != nil {
|
||||
logger.Warn().Err(err).Msg("failed to set initial virtual media state")
|
||||
}
|
||||
|
||||
if err := initImagesFolder(); err != nil {
|
||||
logger.Warn().Err(err).Msg("failed to init images folder")
|
||||
}
|
||||
initJiggler()
|
||||
|
||||
initSystemInfo()
|
||||
}
|
||||
|
||||
// initialize GPIO
|
||||
initGPIO()
|
||||
|
||||
if err := setInitialVirtualMediaState(); err != nil {
|
||||
logger.Warn().Err(err).Msg("failed to set initial virtual media state")
|
||||
}
|
||||
|
||||
if err := initImagesFolder(); err != nil {
|
||||
logger.Warn().Err(err).Msg("failed to init images folder")
|
||||
}
|
||||
initJiggler()
|
||||
|
||||
// initialize display
|
||||
initDisplay()
|
||||
|
||||
// Initialize VPN
|
||||
initVPN()
|
||||
|
||||
initSystemInfo()
|
||||
|
||||
//Auto update
|
||||
//go func() {
|
||||
// time.Sleep(15 * time.Minute)
|
||||
|
||||
Reference in New Issue
Block a user