Gate READY on download completion; move audio to ~/.radiantwave/audio
State machine now uses DOWNLOADING_ASSETS before READY. Downloads closing the DownloadDone channel signals checkState() to proceed. Download failure sets downloadFailed flag which prevents READY. Audio files moved from ~/.local/share/rhemawave/audio to ~/.radiantwave/audio/. Regression tests in application_test.go (linux build-tagged due to network package D-Bus init). Version 0.6.
This commit is contained in:
+10
-3
@@ -13,7 +13,7 @@ import (
|
||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
||||
)
|
||||
|
||||
var GitVersion = "Audio-Bug-Fix 0.5"
|
||||
var GitVersion = "Audio-Bug-Fix 0.6"
|
||||
|
||||
type Home struct {
|
||||
Base
|
||||
@@ -31,6 +31,7 @@ type Home struct {
|
||||
hasLicenseInfo bool
|
||||
baseFontSize int
|
||||
isDownloadComplete bool
|
||||
downloadFailed bool
|
||||
}
|
||||
|
||||
// Init performs basic page initialization and creation of static assets.
|
||||
@@ -172,8 +173,13 @@ func (p *Home) Update(dt float32) error {
|
||||
case progressUpdate, ok = <-p.Context.MessageChannel:
|
||||
gotUpdate = true
|
||||
if !ok {
|
||||
p.setMessage("Status: READY", colors.Green)
|
||||
p.isDownloadComplete = true
|
||||
if p.downloadFailed {
|
||||
p.setMessage("Download failed — restart to retry", colors.Red)
|
||||
} else {
|
||||
p.setMessage("Status: READY", colors.Green)
|
||||
p.isDownloadComplete = true
|
||||
close(p.Context.DownloadDone)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
default:
|
||||
@@ -187,6 +193,7 @@ drained:
|
||||
}
|
||||
|
||||
if progressUpdate.Err != nil {
|
||||
p.downloadFailed = true
|
||||
p.setMessage(fmt.Sprintf("Error: %s", progressUpdate.Err.Error()), colors.Red)
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user