From d3261e64152397db2dca4d691a990c6bc2a6f4dd Mon Sep 17 00:00:00 2001 From: Mehmet Samet Duman Date: Thu, 2 Apr 2026 18:51:45 +0300 Subject: NOISSUE add archived projects Signed-off-by: Mehmet Samet Duman --- .../projt-launcher/docs/handbook/libqrencode.md | 221 +++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 archived/projt-launcher/docs/handbook/libqrencode.md (limited to 'archived/projt-launcher/docs/handbook/libqrencode.md') diff --git a/archived/projt-launcher/docs/handbook/libqrencode.md b/archived/projt-launcher/docs/handbook/libqrencode.md new file mode 100644 index 0000000000..81682b4aa8 --- /dev/null +++ b/archived/projt-launcher/docs/handbook/libqrencode.md @@ -0,0 +1,221 @@ +# libqrencode `libqrencode/` + +> **Type**: QR Code Generation Library +> **License**: LGPL-2.1-or-later +> **Fork Origin**: [GitHub](https://github.com/fukuchi/libqrencode) +> **Status**: Detached Fork (independently maintained) +> **Standards**: ISO/IEC 18004:2015 +> **Latest Version**: 0.0.5-1 + +--- + +## Overview + +libqrencode is a fast and compact library for encoding data into a QR Code symbol. It supports the full range of QR Code functionality as defined by the ISO standard. + +ProjT Launcher maintains a fork of libqrencode for controlled integration and monorepo CI compatibility. + +--- + +## Usage in ProjT Launcher + +libqrencode is used for: + +- **Account linking** — Microsoft account QR authentication +- **Share URLs** — Quick sharing of instance/mod links +- **Export/Import** — Instance configuration sharing + +--- + +## Features + +| Feature | Status | +|---------|--------| +| QR Code Model 1 & 2 | ✅ | +| Micro QR Code | ✅ | +| All error correction levels | ✅ | +| Structured append | ✅ | +| 8-bit byte mode | ✅ | +| Kanji mode | ✅ | +| ECI mode | ✅ | + +### Error Correction Levels + +| Level | Recovery | Use Case | +|-------|----------|----------| +| L | ~7% | High density | +| M | ~15% | Standard (default) | +| Q | ~25% | Industrial | +| H | ~30% | Critical data | + +--- + +## Build Instructions + +### Prerequisites + +- **CMake 3.10+** or **Autotools** +- **C99 compiler** (GCC, Clang, MSVC) +- **libpng** (optional, for PNG output) + +### CMake Build + +```bash +cd libqrencode +mkdir build && cd build +cmake .. -DCMAKE_BUILD_TYPE=Release +cmake --build . +ctest -V +``` + +### Autotools Build + +```bash +cd libqrencode +./autogen.sh +./configure +make +make check +``` + +### CMake Options + +| Option | Description | Default | +|--------|-------------|---------| +| `WITH_TOOLS` | Build qrencode CLI tool | `ON` | +| `WITH_PNG` | Enable PNG support | `ON` | +| `WITH_TESTS` | Build test suite | `ON` | +| `BUILD_SHARED_LIBS` | Build shared library | `ON` | + +--- + +## API Usage + +### Basic Example + +```c +#include +#include + +int main() { + QRcode *qr = QRcode_encodeString("https://projecttick.org", + 0, // Version (0 = auto) + QR_ECLEVEL_M, // Error correction + QR_MODE_8, // Encoding mode + 1); // Case sensitive + + if (qr == NULL) { + fprintf(stderr, "Failed to encode\n"); + return 1; + } + + // Access the QR code data + printf("Version: %d\n", qr->version); + printf("Width: %d\n", qr->width); + + // qr->data contains the QR code matrix + // Each byte: bit 0 = module (1=black, 0=white) + + QRcode_free(qr); + return 0; +} +``` + +### Structured Append (Large Data) + +```c +// Split data across multiple QR codes +QRcode_List *list = QRcode_encodeStringStructured( + large_data, 0, QR_ECLEVEL_M, QR_MODE_8, 1); + +for (QRcode_List *entry = list; entry != NULL; entry = entry->next) { + // Process each QR code in sequence + process_qrcode(entry->code); +} + +QRcode_List_free(list); +``` + +--- + +## Command Line Tool + +The `qrencode` CLI tool creates QR code images: + +```bash +# Generate PNG +qrencode -o output.png "Hello World" + +# Generate SVG +qrencode -t SVG -o output.svg "https://projecttick.org" + +# Generate ASCII art +qrencode -t ASCII "Hello World" + +# Specify error correction level +qrencode -l H -o secure.png "Sensitive Data" +``` + +### Output Formats + +- PNG (requires libpng) +- EPS +- SVG +- ANSI terminal +- ASCII art +- UTF-8 terminal + +--- + +## Documentation + +| Resource | Location | +|----------|----------| +| API Reference | `libqrencode/qrencode.h` | +| Man Page | `libqrencode/qrencode.1.in` | +| [Original README](../../libqrencode/README.md) | Upstream library documentation | + +--- + +## Testing + +```bash +cd libqrencode/build +ctest -V + +# Or with autotools +cd libqrencode +make check +``` + +See [ci-libqrencode.yml](../../.github/workflows/ci-libqrencode.yml) for CI configuration. + +--- + +## Copyright & Licensing + +``` +Copyright (C) 2006-2017 Kentaro Fukuchi + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. +``` + +Full license: `libqrencode/COPYING` + +--- + +## Related Documentation + +- [Third-party Libraries](./third-party.md) — All dependencies + +--- + +## External Links + +- [libqrencode GitHub](https://github.com/fukuchi/libqrencode) +- [ISO/IEC 18004](https://www.iso.org/standard/62021.html) — QR Code standard +- [QR Code Wikipedia](https://en.wikipedia.org/wiki/QR_code) +- [ZXing](https://github.com/zxing/zxing) — QR Code reading library -- cgit 0.0.5-2-1-g0f52