blob: 756493cc36d1a4a97246cda162a569180a37547b [file] [log] [blame]
# $Id: rfb.py 47 2008-05-27 02:10:00Z jon.oberheide $
# -*- coding: utf-8 -*-
"""Remote Framebuffer Protocol."""
from __future__ import absolute_import
from . import dpkt
# Remote Framebuffer Protocol
# http://www.realvnc.com/docs/rfbproto.pdf
# Client to Server Messages
CLIENT_SET_PIXEL_FORMAT = 0
CLIENT_SET_ENCODINGS = 2
CLIENT_FRAMEBUFFER_UPDATE_REQUEST = 3
CLIENT_KEY_EVENT = 4
CLIENT_POINTER_EVENT = 5
CLIENT_CUT_TEXT = 6
# Server to Client Messages
SERVER_FRAMEBUFFER_UPDATE = 0
SERVER_SET_COLOUR_MAP_ENTRIES = 1
SERVER_BELL = 2
SERVER_CUT_TEXT = 3
class RFB(dpkt.Packet):
"""Remote Framebuffer Protocol.
TODO: Longer class information....
Attributes:
__hdr__: Header fields of RADIUS.
TODO.
"""
__hdr__ = (
('type', 'B', 0),
)
class SetPixelFormat(dpkt.Packet):
__hdr__ = (
('pad', '3s', b''),
('pixel_fmt', '16s', b'')
)
class SetEncodings(dpkt.Packet):
__hdr__ = (
('pad', '1s', b''),
('num_encodings', 'H', 0)
)
class FramebufferUpdateRequest(dpkt.Packet):
__hdr__ = (
('incremental', 'B', 0),
('x_position', 'H', 0),
('y_position', 'H', 0),
('width', 'H', 0),
('height', 'H', 0)
)
class KeyEvent(dpkt.Packet):
__hdr__ = (
('down_flag', 'B', 0),
('pad', '2s', b''),
('key', 'I', 0)
)
class PointerEvent(dpkt.Packet):
__hdr__ = (
('button_mask', 'B', 0),
('x_position', 'H', 0),
('y_position', 'H', 0)
)
class FramebufferUpdate(dpkt.Packet):
__hdr__ = (
('pad', '1s', b''),
('num_rects', 'H', 0)
)
class SetColourMapEntries(dpkt.Packet):
__hdr__ = (
('pad', '1s', b''),
('first_colour', 'H', 0),
('num_colours', 'H', 0)
)
class CutText(dpkt.Packet):
__hdr__ = (
('pad', '3s', b''),
('length', 'I', 0)
)