mirror of
https://github.com/amitbet/vncproxy.git
synced 2025-07-12 13:38:22 +00:00
fixed qemu extended keys
This commit is contained in:
parent
7cecffecf2
commit
3cb1197d22
@ -310,3 +310,34 @@ func (msg *MsgClientCutText) Write(c io.Writer) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// MsgClientQemuExtendedKey holds the wire format message, for qemu keys
|
||||
type MsgClientQemuExtendedKey struct {
|
||||
SubType uint8 // sub type
|
||||
IsDown uint16 // button down indicator
|
||||
KeySym uint32 // key symbol
|
||||
KeyCode uint32 // key code
|
||||
}
|
||||
|
||||
func (*MsgClientQemuExtendedKey) Type() common.ClientMessageType {
|
||||
return common.QEMUExtendedKeyEventMsgType
|
||||
}
|
||||
|
||||
func (*MsgClientQemuExtendedKey) Read(c io.Reader) (common.ClientMessage, error) {
|
||||
msg := MsgClientQemuExtendedKey{}
|
||||
|
||||
if err := binary.Read(c, binary.BigEndian, &msg); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &msg, nil
|
||||
}
|
||||
|
||||
func (msg *MsgClientQemuExtendedKey) Write(c io.Writer) error {
|
||||
if err := binary.Write(c, binary.BigEndian, msg.Type()); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := binary.Write(c, binary.BigEndian, msg); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -168,16 +168,17 @@ func (c *ServerConn) handle() error {
|
||||
default:
|
||||
var messageType common.ClientMessageType
|
||||
if err := binary.Read(c, binary.BigEndian, &messageType); err != nil {
|
||||
logger.Errorf("IServerConn.handle error: %v", err)
|
||||
logger.Errorf("ServerConn.handle error: %v", err)
|
||||
return err
|
||||
}
|
||||
logger.Debugf("ServerConn.handle: got messagetype, %d", messageType)
|
||||
msg, ok := clientMessages[messageType]
|
||||
logger.Debugf("ServerConn.handle: found message type, %v", ok)
|
||||
if !ok {
|
||||
return fmt.Errorf("IServerConn.Handle: unsupported message-type: %v", messageType)
|
||||
logger.Errorf("ServerConn.handle: unsupported message-type: %v", messageType)
|
||||
}
|
||||
|
||||
parsedMsg, err := msg.Read(c)
|
||||
|
||||
logger.Debugf("ServerConn.handle: got parsed messagetype, %v", parsedMsg)
|
||||
//update connection for pixel format / color map changes
|
||||
switch parsedMsg.Type() {
|
||||
case common.SetPixelFormatMsgType:
|
||||
|
@ -15,6 +15,7 @@ var DefaultClientMessages = []common.ClientMessage{
|
||||
&MsgKeyEvent{},
|
||||
&MsgPointerEvent{},
|
||||
&MsgClientCutText{},
|
||||
&MsgClientQemuExtendedKey{},
|
||||
}
|
||||
|
||||
// FramebufferUpdate holds a FramebufferUpdate wire format message.
|
||||
|
Loading…
Reference in New Issue
Block a user