TomLabs.PixelBridge
0.3.2
dotnet add package TomLabs.PixelBridge --version 0.3.2
NuGet\Install-Package TomLabs.PixelBridge -Version 0.3.2
<PackageReference Include="TomLabs.PixelBridge" Version="0.3.2" />
<PackageVersion Include="TomLabs.PixelBridge" Version="0.3.2" />
<PackageReference Include="TomLabs.PixelBridge" />
paket add TomLabs.PixelBridge --version 0.3.2
#r "nuget: TomLabs.PixelBridge, 0.3.2"
#:package TomLabs.PixelBridge@0.3.2
#addin nuget:?package=TomLabs.PixelBridge&version=0.3.2
#tool nuget:?package=TomLabs.PixelBridge&version=0.3.2
TomLabs.PixelBridge
The .NET side of PixelBridge, the channel that carries data out of World of Warcraft. The in-game PixelBridge
addon draws a strip of coloured cells in the top-left corner; a bridge host (any app using
TomLabs.PixelBridge.Host, for example ForeverPresence)
captures and decodes it and republishes each message on the local pipe \\.\pipe\tomlabs-pixelbridge.
The full contract is docs/protocol.md in this package.
Read messages from the host
using TomLabs.PixelBridge;
using TomLabs.PixelBridge.Pipe;
var client = new PixelBridgeClient("MyTool", [Channels.FoxieEvents, Channels.FoxieState]);
await foreach (var message in client.ReadAllAsync(cancellationToken))
{
foreach (var field in message.Fields())
Console.WriteLine($"#{message.Channel} {message.Kind} seq {message.Seq}: tag {field.Tag} = {field.AsUInt()}");
}
- The client reconnects by itself; start it before or after the host.
- After subscribing, the host replays the latest state of each subscribed channel (
Replay = true). - Events arrive once: the host deduplicates the repeated copies by
(Session, Channel, Seq).
Protocol types
StripDecoder.Decode(BgraImage)decodes a capture into aStripFrame(session, counter, messages).StripEncoderandStripRenderermake synthetic strips for tests.MessageDeduplicatorturns repeated frames into new messages only.TlvBuilder/TlvReaderbuild and read the payload fields.BridgeStatus.Parsereads channel 0.
Test your addon against the real bridge
The package carries the addon's Lua (addon/PixelBridge/Codec.lua and PixelBridge.lua). Copy them to the test
output and run them under a Lua interpreter such as MoonSharp next to your own addon:
<PackageReference Include="TomLabs.PixelBridge" Version="0.3.0" GeneratePathProperty="true" />
<None Include="$(PkgTomLabs_PixelBridge)\addon\PixelBridge\*.lua" LinkBase="Lua" CopyToOutputDirectory="PreserveNewest" />
The addon itself is on CurseForge. It only draws; it never sends input, and neither do these packages.
Licence
MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on TomLabs.PixelBridge:
| Package | Downloads |
|---|---|
|
TomLabs.PixelBridge.Host
PixelBridge host for Windows: finds the World of Warcraft window (retail, Classic, PTR, beta, WoW Forever), captures the strip from the screen or with PrintWindow, decodes it and republishes the messages on a local named pipe. The first app becomes the host; later ones connect as clients and take over when it exits. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Release notes: https://www.curseforge.com/wow/addons/pixelbridge/files