From a932a1210a681a85e4ea6eb4879d6793b65b19c7 Mon Sep 17 00:00:00 2001 From: Simon Shine Date: Mon, 17 Aug 2020 01:20:45 +0200 Subject: [PATCH] Format Markdown for better GitHub rendering This includes: - Spacing after headers (on line, after line) - Dashes before bullet lists - Code examples surrounded by triple-backticks --- protocol.md | 78 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 28 deletions(-) diff --git a/protocol.md b/protocol.md index 9701a6a..f473c1e 100644 --- a/protocol.md +++ b/protocol.md @@ -11,21 +11,25 @@ The header of a pixelvloed packet consists of two bytes. The first byte defines The data of a pixelvloed packet contains information on which pixels should get what color. The representation of this information is heavily dependent on the protocol used and is explained below. ## Protocol: 0 (0x00) + Protocol 0 is the simplest and easiest to use. Full 24 bit colors can be used with optional alpha. -###Header +### Header + | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| | byte 0 | bit 7-0 | Protocol version. (For this protocol always 0x00.) | | byte 1 | bit 7-1 | Not used. | | | bit 0 | Alpha enable bit. (0: alpha is disabled. 1: alpha is enabled.) | -###Data +### Data + The data describes the X and Y coordinates and the R, G, B and optional alpha color values. Multiple pixels can be send in one message. -####Alpha disabled -Bytes/pixel: 7 -Pixels/message: 160 +#### Alpha disabled + +- Bytes/pixel: 7 +- Pixels/message: 160 | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| @@ -37,9 +41,10 @@ Pixels/message: 160 | byte 5 | bit 7-0 | G color value. | | byte 6 | bit 7-0 | B color value. | -####Alpha enabled -Bytes/pixel: 8 -Pixels/message: 140 +#### Alpha enabled + +- Bytes/pixel: 8 +- Pixels/message: 140 | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| @@ -53,21 +58,25 @@ Pixels/message: 140 | byte 7 | bit 7-0 | Alpha color value. | ## Protocol: 1 (0x01) Only supported on the C server + Protocol 1 compresses the coordinates so more pixels may be send in one message. Full 24 bit colors can be used with optinal alpha. -###Header +### Header + | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| | byte 0 | bit 7-0 | Protocol version. (For this protocol always 0x01.) | | byte 1 | bit 7-1 | Not used. | | | bit 0 | Alpha enable bit. (0: alpha is disabled. 1: alpha is enabled.) | -###Data +### Data + The data describes the X and Y coordinates and the R, G, B and optional alpha color values. Multiple pixels can be send in one message. -####Alpha disabled -Bytes/pixel: 6 -Pixels/message: 186 +#### Alpha disabled + +- Bytes/pixel: 6 +- Pixels/message: 186 | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| @@ -79,9 +88,10 @@ Pixels/message: 186 | byte 4 | bit 7-0 | G color value. | | byte 5 | bit 7-0 | B color value. | -####Alpha enabled -Bytes/pixel: 7 -Pixels/message: 160 +#### Alpha enabled + +- Bytes/pixel: 7 +- Pixels/message: 160 | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| @@ -95,21 +105,25 @@ Pixels/message: 160 | byte 6 | bit 7-0 | Alpha color value. | ## Protocol: 2 (0x02) Only supported on the C server + Protocol 2 compresses the coordinates and colors so more pixels may be send in one message. Only 8 bit colors can be used with optinal alpha. -###Header +### Header + | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| | byte 0 | bit 7-0 | Protocol version. (For this protocol always 0x02.) | | byte 1 | bit 7-1 | Not used. | | | bit 0 | Alpha enable bit. (0: alpha is disabled. 1: alpha is enabled.) | -###Data +### Data + The data describes the X and Y coordinates and the R, G, B and optional alpha color values. Multiple pixels can be send in one message. -####Alpha disabled -Bytes/pixel: 4 -Pixels/message: 280 +#### Alpha disabled + +- Bytes/pixel: 4 +- Pixels/message: 280 | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| @@ -121,9 +135,10 @@ Pixels/message: 280 | byte 3 | bit 4-2 | 3 bit G color value. | | byte 3 | bit 1-0 | 2 bit B color value. | -####Alpha enabled -Bytes/pixel: 4 -Pixels/message: 280 +#### Alpha enabled + +- Bytes/pixel: 4 +- Pixels/message: 280 | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| @@ -137,9 +152,11 @@ Pixels/message: 280 | byte 3 | bit 1-0 | 2 bit alpha color value. | ## Protocol: 3 (0x03) Only supported on the C server + Protocol 3 compresses the coordinates and colors so more pixels may be send in one message. Only 8 bit colors can be used with optinal alpha. -###Header +### Header + | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| | byte 0 | bit 7-0 | Protocol version. (For this protocol always 0x03.) | @@ -147,11 +164,12 @@ Protocol 3 compresses the coordinates and colors so more pixels may be send in o | | bit 4-2 | 3 bit G color value for all pixels in this message. | | | bit 1-0 | 2 bit B color value for all pixels in this message. | -###Data +### Data + The data describes the X and Y coordinates. Multiple pixels can be send in one message. -Bytes/pixel: 3 -Pixels/message: 373 +- Bytes/pixel: 3 +- Pixels/message: 373 | Byte | Bit | Contents | |--------|---------|-------------------------------------------------------------------------------| @@ -164,10 +182,14 @@ Pixels/message: 373 A pixelvloed server should broadcast a package advertising its settings with the following string content +``` "%s:%f %s:%d %d*%d" % (PROTOCOL_PREAMBLE, PROTOCOL_VERSION, UDP_IP, UDP_PORT, width, height) +``` A client should listen for these packages, split it on spaces and check the preample and protocol_version to see if it is capable of speaking the requested protocol. An example of a broadcasted packet would be: +``` pixelvloed:1.00 192.168.0.1:5005 1920*1080 +```