From b018a0445ad4e3aba5a92725f88b1f9b469892a5 Mon Sep 17 00:00:00 2001 From: Kyle Machulis Date: Wed, 21 Dec 2022 14:20:07 -0800 Subject: [PATCH] chore: Move inflating buttplug section, fix broken links --- developer-guide/.vuepress/config.js | 110 ------------------ .../public/buttplug-logo-opengraph.png | Bin 15834 -> 0 bytes developer-guide/.vuepress/public/buttplug.svg | 1 - developer-guide/.vuepress/styles/index.styl | 8 -- developer-guide/README.md | 8 -- developer-guide/SUMMARY.md | 69 ----------- .../adding-device-comm-managers.md | 0 .../adding-device-protocols.md | 0 .../adding-new-ffi-implementations.md | 0 .../inflating-buttplug/adding-new-messages.md | 0 .../device-configuration-file.md | 0 .../inflating-buttplug/intro.md | 6 +- .../inflating-buttplug/writing-new-clients.md | 0 .../inflating-buttplug/writing-new-servers.md | 0 .../api-basics.mdx | 2 +- docs/writing-buttplug-applications/intro.md | 6 +- .../writing-buttplug-applications/logging.mdx | 36 ++++-- sidebars.js | 5 + 18 files changed, 43 insertions(+), 208 deletions(-) delete mode 100644 developer-guide/.vuepress/config.js delete mode 100644 developer-guide/.vuepress/public/buttplug-logo-opengraph.png delete mode 100644 developer-guide/.vuepress/public/buttplug.svg delete mode 100644 developer-guide/.vuepress/styles/index.styl delete mode 100644 developer-guide/README.md delete mode 100644 developer-guide/SUMMARY.md rename {developer-guide => docs}/inflating-buttplug/adding-device-comm-managers.md (100%) rename {developer-guide => docs}/inflating-buttplug/adding-device-protocols.md (100%) rename {developer-guide => docs}/inflating-buttplug/adding-new-ffi-implementations.md (100%) rename {developer-guide => docs}/inflating-buttplug/adding-new-messages.md (100%) rename {developer-guide => docs}/inflating-buttplug/device-configuration-file.md (100%) rename {developer-guide => docs}/inflating-buttplug/intro.md (61%) rename {developer-guide => docs}/inflating-buttplug/writing-new-clients.md (100%) rename {developer-guide => docs}/inflating-buttplug/writing-new-servers.md (100%) diff --git a/developer-guide/.vuepress/config.js b/developer-guide/.vuepress/config.js deleted file mode 100644 index 4e11349..0000000 --- a/developer-guide/.vuepress/config.js +++ /dev/null @@ -1,110 +0,0 @@ -let date = new Date().toJSON(); -// .vuepress/config.js -module.exports = { - themeConfig: { - sidebar: [ - { - title: "Flared Basics", - collapsable: true, - children: [ - "/foreword.md", - "/intro/introduction.md", - "/intro/how-to-read.md", - "/intro/buttplug-ethics.md", - "/intro/getting-help.md" - ] - }, - { - title: "Strategies Against Buttplug Architecture", - collapsable: true, - children: [ - "/architecture/intro.md", - "/architecture/sessions-and-components.md", - "/architecture/protocol-in-depth.md", - "/architecture/client-in-depth.md", - "/architecture/server-in-depth.md", - "/architecture/terms.md" - ] - }, - { - title: "Sticking Buttplug In", - collapsable: true, - children: [ - "/writing-buttplug-applications/intro.md", - "/writing-buttplug-applications/api-basics.md", - "/writing-buttplug-applications/connectors.md", - "/writing-buttplug-applications/connecting.md", - "/writing-buttplug-applications/device-enum.md", - "/writing-buttplug-applications/device-control.md", - "/writing-buttplug-applications/application.md", - "/writing-buttplug-applications/logging.md", - ] - }, - { - title: "Winning Ways For Your Buttplug Plays", - collapsable: true, - children: [ - "/cookbook/intro.md", - "/cookbook/connector-setup-in-depth.md", - "/cookbook/privacy-models.md", - "/cookbook/raw-device-commands.md", - /* - "/cookbook/device-forwarders.md", - "/cookbook/stupid-connector-tricks.md", - */ - ] - }, - { - title: "Inflating Buttplug", - collapsable: true, - children: [ - "/inflating-buttplug/intro.md", - "/inflating-buttplug/device-configuration-file.md", - "/inflating-buttplug/adding-device-protocols.md", - "/inflating-buttplug/adding-device-comm-managers.md", - "/inflating-buttplug/adding-new-messages.md", - "/inflating-buttplug/adding-new-ffi-implementations.md" - ] - }, - ], - repo: 'buttplugio/buttplug-developer-guide', - }, - plugins: [ - [ - "vuepress-plugin-matomo", - { - 'siteId': 4, - 'trackerUrl': "https://nonpolynomial.matomo.cloud/" - } - ], - "@vuepress/plugin-back-to-top", - [ - "vuepress-plugin-container", - { - type: 'callout', - before: info => `

${info}

`, - after: '
', - }, - ], - "code-switcher" - ], - evergreen: true, - title: "Buttplug Developer Guide", - description: "Manual for developing applications using the Buttplug Intimate Hardware Control Library.", - head: [ - ['link', { rel: 'icon', href: '/buttplug.svg' }], - ["meta", {property: "og:type", content:"website"}], - ["meta", {property: "og:title", content:"Buttplug Developer Guide"}], - ["meta", {property: "og:url", content:"https://dev.buttplug-developer-guide.docs.buttplug.io"}], - ["meta", {property: "og:site_name", content:"Buttplug Developer Guide"}], - ["meta", {property: "og:description", content:"Manual for developing applications using the Buttplug Intimate Hardware Control Library."}], - ["meta", {property: "og:locale", content:"default"}], - ["meta", {property: "og:image", content:"https://dev.buttplug-developer-guide.docs.buttplug.io/buttplug-logo-opengraph.png"}], - ["meta", {property: "og:updated_time", content:date}], - ["meta", {name:"twitter:card", content:"summary"}], - ["meta", {name:"twitter:title", content:"Buttplug Developer Guide"}], - ["meta", {name:"twitter:description", content:"Manual for developing applications using the Buttplug Intimate Hardware Control Library."}], - ["meta", {name:"twitter:image", content:"https://dev.buttplug-developer-guide.docs.buttplug.io/buttplug-logo-opengraph.png"}], - ["meta", {name:"twitter:creator", content:"@buttplugio"}], - ] -}; diff --git a/developer-guide/.vuepress/public/buttplug-logo-opengraph.png b/developer-guide/.vuepress/public/buttplug-logo-opengraph.png deleted file mode 100644 index d6254becabe3a9b60edc3b68f893a33dbfd65a0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15834 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 JY7wKr{{w#FM&AGc diff --git a/developer-guide/.vuepress/public/buttplug.svg b/developer-guide/.vuepress/public/buttplug.svg deleted file mode 100644 index 080dcec..0000000 --- a/developer-guide/.vuepress/public/buttplug.svg +++ /dev/null @@ -1 +0,0 @@ -buttplug-logo-1 diff --git a/developer-guide/.vuepress/styles/index.styl b/developer-guide/.vuepress/styles/index.styl deleted file mode 100644 index 0d68426..0000000 --- a/developer-guide/.vuepress/styles/index.styl +++ /dev/null @@ -1,8 +0,0 @@ -// .vuepress/styles/index.styl -.callout - margin 1rem 0 - padding .1rem 1.5rem - border-radius 0.4rem - background-color #f0f4f8 - .title - font-weight bold \ No newline at end of file diff --git a/developer-guide/README.md b/developer-guide/README.md deleted file mode 100644 index 5fdf6fc..0000000 --- a/developer-guide/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Buttplug Developer Guide - -A design and development guide for the Buttplug Intimate Device Control System. - -By [Kyle Machulis (qDot)](https://kyle.machul.is/about), Lead Buttplug Architect - -The Developers Guide Repo is [available on -github](https://github.com/buttplugio/buttplug-developer-guide). diff --git a/developer-guide/SUMMARY.md b/developer-guide/SUMMARY.md deleted file mode 100644 index 74f21d8..0000000 --- a/developer-guide/SUMMARY.md +++ /dev/null @@ -1,69 +0,0 @@ -- [You, Your Butt, Internet Buttplugs, And You](README.md#you-your-butt-internet-buttplugs-and-you) -- [Foreword](foreword.md#foreword) - - [Wants and Needs](foreword.md#wants-and-needs) - - [I Want To Be A Shirt](foreword.md#i-want-to-be-a-shirt) - - [Ceci n'est pas un Buttplug](foreword.md#ceci-nest-pas-un-buttplug) - - [Why Do I Need You To Tell Me Where My Butt Is](foreword.md#why-do-i-need-you-to-tell-me-where-my-butt-is) -- [Introduction](introduction.md) - - [What Even Is Buttplug?](introduction.md#what-even-is-buttplug) - - [So Does It Just Control Buttplugs Or...?](introduction.md#so-does-it-just-control-buttplugs) - - [About This Guide](introduction.md#about-this-guide) - - [Terms Used In The Guide](introduction.md#terms-used-in-this-guide) - - [What To Read](introduction.md#what-to-read) -- [Strategies Against Buttplug Architecture](architecture.md#strategies-against-buttplug-architecture) - - [A Note for Those Who Already Read The Spec](architecture.md#a-note-for-those-who-already-read-the-spec) - - [The 3 Genders: Server, Client, Application](architecture.md#the-3-genders-server-client-application) - - [Buttplug Servers](architecture.md#buttplug-servers) - - [Buttplug Clients](architecture.md#buttplug-clients) - - [Applications](architecture.md#applications) - - [Configuration Examples](architecture.md#configuration-examples) -- [Sticking Buttplug In Your Application](writing-buttplug-applications/intro.md) - - [Buttplug Session Overview](writing-buttplug-applications/intro.md#buttplug-session-overview) - - [Generic API Basics](writing-buttplug-applications/api-basics.md) - - [Choosing a Connector](writing-buttplug-applications/connectors.md) - - [Connecting](writing-buttplug-applications/connecting.md) - - [Logging](writing-buttplug-applications/logging.md) - - [Device Enumeration](writing-buttplug-applications/device-enum.md) - - [Device Control](writing-buttplug-applications/device-control.md) - - [Putting It All Together](writing-buttplug-applications/application.md) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/developer-guide/inflating-buttplug/adding-device-comm-managers.md b/docs/inflating-buttplug/adding-device-comm-managers.md similarity index 100% rename from developer-guide/inflating-buttplug/adding-device-comm-managers.md rename to docs/inflating-buttplug/adding-device-comm-managers.md diff --git a/developer-guide/inflating-buttplug/adding-device-protocols.md b/docs/inflating-buttplug/adding-device-protocols.md similarity index 100% rename from developer-guide/inflating-buttplug/adding-device-protocols.md rename to docs/inflating-buttplug/adding-device-protocols.md diff --git a/developer-guide/inflating-buttplug/adding-new-ffi-implementations.md b/docs/inflating-buttplug/adding-new-ffi-implementations.md similarity index 100% rename from developer-guide/inflating-buttplug/adding-new-ffi-implementations.md rename to docs/inflating-buttplug/adding-new-ffi-implementations.md diff --git a/developer-guide/inflating-buttplug/adding-new-messages.md b/docs/inflating-buttplug/adding-new-messages.md similarity index 100% rename from developer-guide/inflating-buttplug/adding-new-messages.md rename to docs/inflating-buttplug/adding-new-messages.md diff --git a/developer-guide/inflating-buttplug/device-configuration-file.md b/docs/inflating-buttplug/device-configuration-file.md similarity index 100% rename from developer-guide/inflating-buttplug/device-configuration-file.md rename to docs/inflating-buttplug/device-configuration-file.md diff --git a/developer-guide/inflating-buttplug/intro.md b/docs/inflating-buttplug/intro.md similarity index 61% rename from developer-guide/inflating-buttplug/intro.md rename to docs/inflating-buttplug/intro.md index d091deb..28f1d05 100644 --- a/developer-guide/inflating-buttplug/intro.md +++ b/docs/inflating-buttplug/intro.md @@ -1,9 +1,11 @@ -# Adding to Buttplug Core +# Adding to Buttplug -This section covers development on Buttplug Core pieces, including: +This section covers development on Buttplug pieces, including: - Implementing Buttplug clients in new languages - Adding new device subtype managers to servers - Adding new devices to servers - Writing new Buttplug servers - Proposing and adding new messages to the Buttplug Protocol + +Or at least, it will cover it. There's nothing here yet. \ No newline at end of file diff --git a/developer-guide/inflating-buttplug/writing-new-clients.md b/docs/inflating-buttplug/writing-new-clients.md similarity index 100% rename from developer-guide/inflating-buttplug/writing-new-clients.md rename to docs/inflating-buttplug/writing-new-clients.md diff --git a/developer-guide/inflating-buttplug/writing-new-servers.md b/docs/inflating-buttplug/writing-new-servers.md similarity index 100% rename from developer-guide/inflating-buttplug/writing-new-servers.md rename to docs/inflating-buttplug/writing-new-servers.md diff --git a/docs/writing-buttplug-applications/api-basics.mdx b/docs/writing-buttplug-applications/api-basics.mdx index 4c50c5c..8536510 100644 --- a/docs/writing-buttplug-applications/api-basics.mdx +++ b/docs/writing-buttplug-applications/api-basics.mdx @@ -85,7 +85,7 @@ change often, [I'm just going to refer you to the buttplug-js README about webpa setup](https://github.com/buttplugio/buttplug-rs-ffi/tree/master/js#using-buttplug-with-webpack), which will have the latest information on how to do this. If you have issues, either [file an issue on our FFI repo](https://github.com/buttplugio/buttplug-rs-ffi) or [contact us via one of the -support mechanisms (preferably discord)](intro/getting-help.html). +support mechanisms (preferably discord)](intro/getting-help). diff --git a/docs/writing-buttplug-applications/intro.md b/docs/writing-buttplug-applications/intro.md index 0ea8479..b8a815c 100644 --- a/docs/writing-buttplug-applications/intro.md +++ b/docs/writing-buttplug-applications/intro.md @@ -6,7 +6,11 @@ We'll now cover the minimal amount of information needed to get you up and runni ## This Ain't Everything -This section will cover the absolute minimum functionality you need to get up and running with Buttplug. However, the library is far more extensive than this section covers. It is recommended you go through this section first, get a simple program up and running with your hardware, then check out the [Winning Ways section](/cookbook/intro.html) for advice on how to structure your application and use some of the other features in the library. +This section will cover the absolute minimum functionality you need to get up and running with +Buttplug. However, the library is far more extensive than this section covers. It is recommended you +go through this section first, get a simple program up and running with your hardware, then check +out the [Winning Ways section](/cookbook/intro) for advice on how to structure your application and +use some of the other features in the library. ## Example Code Access diff --git a/docs/writing-buttplug-applications/logging.mdx b/docs/writing-buttplug-applications/logging.mdx index 560fe96..21781c5 100644 --- a/docs/writing-buttplug-applications/logging.mdx +++ b/docs/writing-buttplug-applications/logging.mdx @@ -6,21 +6,36 @@ import RustLoggingExample from '!!raw-loader!/examples/rust/src/bin/logging.rs'; # Logging -Buttplug exposes a few methods to receive log messages from the internal Rust library. These messages relay the internal state of the system, and can be handy for debugging purposes. +Buttplug exposes a few methods to receive log messages from the internal Rust library. These +messages relay the internal state of the system, and can be handy for debugging purposes. ## Message Exposure -What log messages you'll get depend on the type of system you're building. If you are using an embedded connector (i.e. server and client in the same process), you'll get both client and server information. If you're using a remote connector (i.e. your application uses the client, and the server is in another process/on another machine), you'll only receive log messages for the client. This preserves privacy for users who may not want to reveal information about their local setup to a untrusted client (For more information, see the [Privacy Models section of the this guide](cookbook/privacy-models.markdown)). +What log messages you'll get depend on the type of system you're building. If you are using an +embedded connector (i.e. server and client in the same process), you'll get both client and server +information. If you're using a remote connector (i.e. your application uses the client, and the +server is in another process/on another machine), you'll only receive log messages for the client. +This preserves privacy for users who may not want to reveal information about their local setup to a +untrusted client (For more information, see the [Privacy Models section of the this +guide](cookbook/privacy-models)). -This model may may things challenging to debug, which is why we recommend doing initial development in an embedded context if possible, the moving to remote once core development is set. +This model may may things challenging to debug, which is why we recommend doing initial development +in an embedded context if possible, the moving to remote once core development is set. ## Accessing Logs -Logs are generated in Rust using the [tracing crate](https://github.com/tokio-rs/tracing). This functionality is exposed to Rust via normal tracing subsystems (for instance, output to stdout via tracing_subscriber::fmt), or via various language specifics for FFIs (C# and JS have the ability to emit log messages as events). +Logs are generated in Rust using the [tracing crate](https://github.com/tokio-rs/tracing). This +functionality is exposed to Rust via normal tracing subsystems (for instance, output to stdout via +tracing_subscriber::fmt), or via various language specifics for FFIs (C# and JS have the ability to +emit log messages as events). :::tip Temporary FFI Logging Limitations -At the time of this writing, logging capabilties in FFI instances are somewhat limited. Logging must be started manually, can only be set to one level for a session (i.e. if logging is started a "Debug or higher" levels, it will stay there for the remainder of the process), and only comes as string. As library development progresses, this system will be tuned to allow finer grained access to control and log information. +At the time of this writing, logging capabilties in FFI instances are somewhat limited. Logging must +be started manually, can only be set to one level for a session (i.e. if logging is started a "Debug +or higher" levels, it will stay there for the remainder of the process), and only comes as string. +As library development progresses, this system will be tuned to allow finer grained access to +control and log information. ::: @@ -42,12 +57,16 @@ Available log levels are as follows: -Handling and/or outputting log messages in Rust is left up to the user, via normal methods of output for the [tracing crate.](https://github.com/tokio-rs/tracing) To output messages to stdout (i.e. the console) we recommend using the [tracing_subscriber](https://docs.rs/tracing-subscriber/) create with its fmt instance, like so: +Handling and/or outputting log messages in Rust is left up to the user, via normal methods of output +for the [tracing crate.](https://github.com/tokio-rs/tracing) To output messages to stdout (i.e. the +console) we recommend using the [tracing_subscriber](https://docs.rs/tracing-subscriber/) create +with its fmt instance, like so: {RustLoggingExample} -tracing_subscriber::fmt uses environment variables to set log level filters. The filters are strings set to the levels mentioned in the previous section. +tracing_subscriber::fmt uses environment variables to set log level filters. The filters are strings +set to the levels mentioned in the previous section. To set up log output using tracing_subscriber on a shell, you can use @@ -61,7 +80,8 @@ To set this up in Powershell on windows, you can use $env:RUST_LOG="debug" ``` -Running the example above, you should see something like this (may not be exact. For instance, most people probably won't be writing sex toy software documentation on Christmas.): +Running the example above, you should see something like this (may not be exact. For instance, most +people probably won't be writing sex toy software documentation on Christmas.): ``` Dec 25 20:49:11.826 INFO buttplug::server::comm_managers::btleplug: Setting bluetooth device event handler. diff --git a/sidebars.js b/sidebars.js index 7f1e35e..8900565 100644 --- a/sidebars.js +++ b/sidebars.js @@ -56,6 +56,11 @@ const sidebars = { 'cookbook/privacy-models', 'cookbook/raw-device-commands'], }, + { + type: 'category', + label: 'Inflating Buttplug', + items: ['inflating-buttplug/intro'], + }, ], };