Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ cmake-build-*/
/artifacts/
/docs/controller-research/

# doxyconfig
docs/doxyconfig*
# Dockle
/.dockle/
/_site/
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[submodule "third-party/doxyconfig"]
path = third-party/doxyconfig
url = https://github.com/LizardByte/doxyconfig.git
[submodule "third-party/dockle"]
path = third-party/dockle
url = https://github.com/LizardByte/dockle.git
branch = master
[submodule "third-party/lizardbyte-common"]
path = third-party/lizardbyte-common
Expand Down
27 changes: 14 additions & 13 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,23 @@ version: 2
build:
os: ubuntu-24.04
tools:
nodejs: "24"
python: "miniconda-latest"
commands:
- |
if [ -f readthedocs_build.sh ]; then
doxyconfig_dir="."
else
doxyconfig_dir="./third-party/doxyconfig"
fi
chmod +x "${doxyconfig_dir}/readthedocs_build.sh"
export DOXYCONFIG_DIR="${doxyconfig_dir}"
"${doxyconfig_dir}/readthedocs_build.sh"
jobs:
build:
html:
- |
if [ -f readthedocs_build.sh ]; then
dockle_dir="."
else
dockle_dir="./third-party/dockle"
fi
chmod +x "${dockle_dir}/readthedocs_build.sh"
export DOCKLE_DIR="${dockle_dir}"
"${dockle_dir}/readthedocs_build.sh"

# using conda, we can get newer doxygen and graphviz than ubuntu provide
# https://github.com/readthedocs/readthedocs.org/issues/8151#issuecomment-890359661
conda:
environment: third-party/doxyconfig/environment.yml
environment: third-party/dockle/environment.yml

submodules:
include: all
Expand Down
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,8 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
endif()

if(BUILD_DOCS)
add_subdirectory(third-party/doxyconfig docs)
include(third-party/dockle/cmake/Dockle.cmake)
dockle_add_docs(docs TARGETS api)
endif()

if(BUILD_EXAMPLES)
Expand Down
8 changes: 0 additions & 8 deletions LICENSES/license-map.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,3 @@ Every installed library distribution includes the MIT notice under
`share/licenses/libvirtualhid`. The Windows driver MSI may include MIT-licensed
helper components from this repository; packaged installs include both license
texts for that reason.

<div class="section_buttons">

| Previous | Next |
|:--------------------------------------|-------------------------------------------------------------:|
| [Development](../docs/development.md) | [Source Code](../third-party/doxyconfig/docs/source_code.md) |

</div>
8 changes: 0 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,11 +197,3 @@ licensed under the
points to both complete license texts; see the
[license map](https://github.com/LizardByte/libvirtualhid/blob/master/LICENSES/license-map.md)
for the authoritative repository path and artifact assignments.

<div class="section_buttons">

| Previous | Next |
|:---------|---------------------------------------------------------:|
| | [End-User Gamepad Guide](docs/end-user-gamepad-guide.md) |

</div>
43 changes: 43 additions & 0 deletions dockle.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
[project]
name = "libvirtualhid"
version = "0.0.0"
description = "Cross-platform C++ library for virtual HID devices."
repository = "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/LizardByte/libvirtualhid"
logo = "libvirtualhid.svg"
favicon = "libvirtualhid.ico"

[build]
output = "_site"
work = ".dockle"
strict = true
clean = true

[[targets]]
name = "api"
title = "libvirtualhid documentation"
framework = "doxygen"
source = "."
home = true

[targets.doxygen]
inputs = [
"README.md",
"docs/end-user-gamepad-guide.md",
"docs/usage.md",
"docs/platform-support.md",
"docs/windows-driver.md",
"docs/todo.md",
"docs/streaming-host-integration.md",
"docs/development.md",
"LICENSES/license-map.md",
"examples",
"src/include",
]
extra_stylesheets = [
"https://cdn.jsdelivr.net/npm/@lizardbyte/shared-web@2026.920.12131/dist/crowdin-dockle-css.css",
]
extra_javascript = [
"https://cdn.jsdelivr.net/npm/@lizardbyte/shared-web@2026.920.12131/dist/crowdin.js",
"docs/crowdin.js",
]
main_page = "README.md"
50 changes: 0 additions & 50 deletions docs/Doxyfile

This file was deleted.

1 change: 1 addition & 0 deletions docs/crowdin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
globalThis.initCrowdIn('LizardByte-docs', 'dockle')
18 changes: 5 additions & 13 deletions docs/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ src/platform/macos/ macOS CoreGraphics keyboard and mouse backend
examples/ Minimal consumers and platform smoke tests
tests/ Unit and integration tests
cmake/ Package config and helper modules
docs/ Project documentation and Doxygen settings
third-party/doxyconfig/ LizardByte Doxygen configuration submodule
docs/ Project documentation
third-party/dockle/ LizardByte documentation toolchain submodule
third-party/googletest/ GoogleTest submodule
```

Expand Down Expand Up @@ -62,9 +62,9 @@ cmake-build-debug/tests/test_libvirtualhid

## Documentation

Documentation is generated by the LizardByte `doxyconfig` submodule. The project
Doxygen input is defined in `docs/Doxyfile`. The docs target combines that
file with the shared `doxyconfig` settings at build time.
Documentation is generated by Dockle. The authored inputs and project-specific
Doxygen settings are declared in `dockle.toml`; Dockle owns the generated
Doxyfile used by the CMake `docs` target.

```bash
cmake --build cmake-build-debug-mingw-ucrt64-ninja --target docs
Expand Down Expand Up @@ -96,11 +96,3 @@ code and tests provide a better source of truth.
- Evaluate an optional FreeBSD CUSE-backed `uhid(4)`-compatible device for
direct HID consumers. This would supplement uinput; it is not equivalent to
registering a virtual device with FreeBSD's kernel HID bus.

<div class="section_buttons">

| Previous | Next |
|:------------------------------------------------------------|------------------------------------------:|
| [Streaming-Host Integration](streaming-host-integration.md) | [License Map](../LICENSES/license-map.md) |

</div>
8 changes: 0 additions & 8 deletions docs/end-user-gamepad-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,11 +290,3 @@ reaching the library but the virtual device reports it incorrectly.

The [Moonlight setup guide](https://github.com/moonlight-stream/moonlight-docs/wiki/Setup-Guide)
links the official clients and their support resources.

<div class="section_buttons">

| Previous | Next |
|:-------------------------|--------------------------:|
| [Overview](../README.md) | [Usage and API](usage.md) |

</div>
8 changes: 0 additions & 8 deletions docs/platform-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -461,11 +461,3 @@ Native macOS virtual-HID gamepad support is planned. A future backend may use
`IOHIDUserDevice`, DriverKit/HIDDriverKit, or a combination that preserves the
same public API while documenting any signing, entitlement, and installer
requirements.

<div class="section_buttons">

| Previous | Next |
|:--------------------------|--------------------------------------------:|
| [Usage and API](usage.md) | [Windows Driver Package](windows-driver.md) |

</div>
8 changes: 0 additions & 8 deletions docs/streaming-host-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,3 @@ The core API and adapter shape cover the major streaming-host requirements:
- FreeBSD uinput gamepads and pointer devices, with basic PlayStation input and
rumble but without Linux UHID-only PlayStation features.
- Windows UMDF/VHF gamepad creation through an installed driver package.

<div class="section_buttons">

| Previous | Next |
|:----------------|------------------------------:|
| [TODO](todo.md) | [Development](development.md) |

</div>
8 changes: 0 additions & 8 deletions docs/todo.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,3 @@ Proposed solution:
6. Treat generated capture files as local debugging artifacts by default. Only
commit a generated capture later if it is reproducible, sanitized, and used
by tests or documentation in a way that justifies keeping it.

<div class="section_buttons">

| Previous | Next |
|:--------------------------------------------|------------------------------------------------------------:|
| [Windows Driver Package](windows-driver.md) | [Streaming-Host Integration](streaming-host-integration.md) |

</div>
8 changes: 0 additions & 8 deletions docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,11 +248,3 @@ for every profile.
The `misc1` button represents Share/Capture/Mic Mute-style controls and is
available on the generic, Xbox Series, DualSense, and Switch Pro profiles; Xbox
360 and Xbox One do not advertise that extra button.
<div class="section_buttons">
| Previous | Next |
|:----------------------------------------------------|----------------------------------------:|
| [End-User Gamepad Guide](end-user-gamepad-guide.md) | [Platform Support](platform-support.md) |
</div>
8 changes: 0 additions & 8 deletions docs/windows-driver.md
Original file line number Diff line number Diff line change
Expand Up @@ -572,11 +572,3 @@ licensed under the LizardByte Source-Available License 1.0 (LB-SAL 1.0). See
the [license map](../LICENSES/license-map.md) for the full repository license split.
The MSI may also include MIT-licensed helper components from this repository,
so packaged installs include both license texts.

<div class="section_buttons">

| Previous | Next |
|:----------------------------------------|----------------:|
| [Platform Support](platform-support.md) | [TODO](todo.md) |

</div>
1 change: 1 addition & 0 deletions third-party/dockle
Submodule dockle added at c1bca8
1 change: 0 additions & 1 deletion third-party/doxyconfig
Submodule doxyconfig deleted from 419127
Loading