in gymvnc/gymvnc.go [82:138]
func NewVNCSession(name string, c VNCSessionConfig) *VNCSession {
if c.QualityLevel == -1 {
} else if c.QualityLevel < 0 {
log.Warningf("[%s] Quality level %d requested, but valid values are betweeen 0 (worst) and 9 (best). Using 0 intead.", c.Address, c.QualityLevel)
c.QualityLevel = 0
} else if c.QualityLevel > 9 {
log.Warningf("[%s] Quality level %d requested, but valid values are betweeen 0 (worst) and 9 (best). Using 9 instead.", c.Address, c.QualityLevel)
c.QualityLevel = 9
}
if c.CompressLevel == -1 {
} else if c.CompressLevel < 0 {
log.Warningf("[%s] Compress level %d requested, but valid values are betweeen 0 (least compression) and 9 (most compression). Using 0 intead.", c.Address, c.CompressLevel)
c.CompressLevel = 0
} else if c.CompressLevel > 9 {
log.Warningf("[%s] Compress level %d requested, but valid values are betweeen 0 (least compression) and 9 (most compression). Using 9 instead.", c.Address, c.CompressLevel)
c.CompressLevel = 9
}
if c.FineQualityLevel == -1 {
} else if c.FineQualityLevel < 0 {
log.Warningf("[%s] Fine quality level %d requested, but valid values are betweeen 1 (lowest quality) and 100 (highest quality). Using 0 instead.", c.Address, c.FineQualityLevel)
c.FineQualityLevel = 0
} else if c.FineQualityLevel > 100 {
log.Warningf("[%s] Fine quality level %d requested, but valid values are betweeen 0 (lowest quality) and 100 (highest quality). Using 100 instead.", c.Address, c.FineQualityLevel)
c.FineQualityLevel = 100
}
if c.SubsampleLevel == -1 {
} else if c.SubsampleLevel < 0 {
log.Warningf("[%s] Subsample level %d requested, but valid values are betweeen 0 (full color) and 3 (grayscale). Using 0 instead.", c.Address, c.SubsampleLevel)
c.SubsampleLevel = 0
} else if c.SubsampleLevel > 3 {
log.Warningf("[%s] Subsample level %d requested, but valid values are betweeen 0 (full color) and 3 (grayscale). Using 3 instead.", c.Address, c.SubsampleLevel)
c.SubsampleLevel = 3
}
if c.Encoding == "" {
c.Encoding = "tight"
}
lock := &sync.Mutex{}
session := &VNCSession{
name: name,
mgr: NewSessionMgr(),
backUpdated: true,
deferredUpdatesMax: 60,
updated: sync.NewCond(lock),
config: c,
id: id,
label: fmt.Sprintf("%s:%s", name, c.Address),
}
id++
session.start()
return session
}