mirror of
https://github.com/amitbet/vncproxy.git
synced 2025-07-04 09:56:46 +00:00
added initial support for qemu led state
This commit is contained in:
parent
f19a75749b
commit
2ccc4009f4
@ -73,6 +73,8 @@ func (enct EncodingType) String() string {
|
|||||||
return "EncJPEGQualityLevelPseudo1"
|
return "EncJPEGQualityLevelPseudo1"
|
||||||
case EncCursorPseudo:
|
case EncCursorPseudo:
|
||||||
return "EncCursorPseudo"
|
return "EncCursorPseudo"
|
||||||
|
case EncLedStatePseudo:
|
||||||
|
return "EncLedStatePseudo"
|
||||||
case EncDesktopSizePseudo:
|
case EncDesktopSizePseudo:
|
||||||
return "EncDesktopSizePseudo"
|
return "EncDesktopSizePseudo"
|
||||||
case EncLastRectPseudo:
|
case EncLastRectPseudo:
|
||||||
@ -183,6 +185,7 @@ const (
|
|||||||
EncQEMUPointerMotionChangePseudo EncodingType = -257
|
EncQEMUPointerMotionChangePseudo EncodingType = -257
|
||||||
EncQEMUExtendedKeyEventPseudo EncodingType = -258
|
EncQEMUExtendedKeyEventPseudo EncodingType = -258
|
||||||
EncTightPng EncodingType = -260
|
EncTightPng EncodingType = -260
|
||||||
|
EncLedStatePseudo EncodingType = -261
|
||||||
EncExtendedDesktopSizePseudo EncodingType = -308
|
EncExtendedDesktopSizePseudo EncodingType = -308
|
||||||
EncXvpPseudo EncodingType = -309
|
EncXvpPseudo EncodingType = -309
|
||||||
EncFencePseudo EncodingType = -312
|
EncFencePseudo EncodingType = -312
|
||||||
|
31
encodings/enc-led-state.go
Normal file
31
encodings/enc-led-state.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package encodings
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io"
|
||||||
|
"vncproxy/common"
|
||||||
|
"vncproxy/logger"
|
||||||
|
)
|
||||||
|
|
||||||
|
type EncLedStatePseudo struct {
|
||||||
|
LedState uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pe *EncLedStatePseudo) Type() int32 {
|
||||||
|
return int32(common.EncLedStatePseudo)
|
||||||
|
}
|
||||||
|
func (pe *EncLedStatePseudo) WriteTo(w io.Writer) (n int, err error) {
|
||||||
|
w.Write([]byte{pe.LedState})
|
||||||
|
return 1, nil
|
||||||
|
}
|
||||||
|
func (pe *EncLedStatePseudo) Read(pf *common.PixelFormat, rect *common.Rectangle, r *common.RfbReadHelper) (common.IEncoding, error) {
|
||||||
|
if rect.Width*rect.Height == 0 {
|
||||||
|
return pe, nil
|
||||||
|
}
|
||||||
|
u8, err := r.ReadUint8()
|
||||||
|
pe.LedState = u8
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("error while reading led state: ", err)
|
||||||
|
return pe, err
|
||||||
|
}
|
||||||
|
return pe, nil
|
||||||
|
}
|
@ -58,6 +58,7 @@ func NewFbsReader(fbsFile string) (*FbsReader, error) {
|
|||||||
&encodings.TightEncoding{},
|
&encodings.TightEncoding{},
|
||||||
&encodings.TightPngEncoding{},
|
&encodings.TightPngEncoding{},
|
||||||
&encodings.EncCursorPseudo{},
|
&encodings.EncCursorPseudo{},
|
||||||
|
&encodings.EncLedStatePseudo{},
|
||||||
&encodings.RawEncoding{},
|
&encodings.RawEncoding{},
|
||||||
&encodings.RREEncoding{},
|
&encodings.RREEncoding{},
|
||||||
},
|
},
|
||||||
|
@ -18,6 +18,7 @@ func TestServer(t *testing.T) {
|
|||||||
&encodings.RawEncoding{},
|
&encodings.RawEncoding{},
|
||||||
&encodings.TightEncoding{},
|
&encodings.TightEncoding{},
|
||||||
&encodings.EncCursorPseudo{},
|
&encodings.EncCursorPseudo{},
|
||||||
|
&encodings.EncLedStatePseudo{},
|
||||||
//encodings.TightPngEncoding{},
|
//encodings.TightPngEncoding{},
|
||||||
&encodings.RREEncoding{},
|
&encodings.RREEncoding{},
|
||||||
&encodings.ZLibEncoding{},
|
&encodings.ZLibEncoding{},
|
||||||
|
@ -118,6 +118,7 @@ func (vp *VncProxy) newServerConnHandler(cfg *server.ServerConfig, sconn *server
|
|||||||
&encodings.RawEncoding{},
|
&encodings.RawEncoding{},
|
||||||
&encodings.TightEncoding{},
|
&encodings.TightEncoding{},
|
||||||
&encodings.EncCursorPseudo{},
|
&encodings.EncCursorPseudo{},
|
||||||
|
&encodings.EncLedStatePseudo{},
|
||||||
&encodings.TightPngEncoding{},
|
&encodings.TightPngEncoding{},
|
||||||
&encodings.RREEncoding{},
|
&encodings.RREEncoding{},
|
||||||
&encodings.ZLibEncoding{},
|
&encodings.ZLibEncoding{},
|
||||||
|
Loading…
Reference in New Issue
Block a user