Add Lian Li SL-INF wireless tools and SignalRGB plugin
Proof-of-concept tools for the UNI FAN SL-INF Wireless kit (SLV3 TX/RX dongles 0416:8040/8041): a Python scan/colour script, tinyuz helpers, a JavaScript tinyuz encoder, the SignalRGB plugin and tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
35240e5dfc
13 files changed
+971
No files matched your search
@@ -0,0 +1,25 @@
|
||||
// tuzc: compress stdin with tinyuz (4 KB dict) to stdout; verifies by round-trip.
|
||||
#include <cstdio>
|
||||
#include <vector>
|
||||
#include <io.h>
|
||||
#include <fcntl.h>
|
||||
#include "tinyuz/decompress/tuz_dec.h"
|
||||
extern "C" size_t tuz_compress_mem(const unsigned char*, size_t, unsigned char*, size_t, size_t);
|
||||
extern "C" size_t tuz_max_compressed_size(size_t);
|
||||
int main() {
|
||||
_setmode(_fileno(stdin), _O_BINARY);
|
||||
_setmode(_fileno(stdout), _O_BINARY);
|
||||
std::vector<unsigned char> in;
|
||||
int c;
|
||||
while ((c = getchar()) != EOF) in.push_back((unsigned char)c);
|
||||
if (in.empty()) return 2;
|
||||
std::vector<unsigned char> out(tuz_max_compressed_size(in.size()));
|
||||
size_t n = tuz_compress_mem(in.data(), in.size(), out.data(), out.size(), 4096);
|
||||
if (n == 0) return 3;
|
||||
std::vector<unsigned char> back(in.size());
|
||||
tuz_size_t back_size = (tuz_size_t)back.size();
|
||||
if (tuz_decompress_mem(out.data(), n, back.data(), &back_size) != tuz_STREAM_END
|
||||
|| back_size != in.size() || back != in) return 4;
|
||||
fwrite(out.data(), 1, n, stdout);
|
||||
return 0;
|
||||
}
|
||||
Reference in new issue
Block a user