Skip to content
This repository was archived by the owner on Feb 3, 2023. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# Version 1.0.2 - 2019/10/05

- Update to buttplug-js 0.12.1 (Motorbunny support)
- Fix bug with intiface desktop websocket loading

# Version 1.0.1 - 2019/07/27

- Update to buttplug-js 0.12.0
- Try loading device config from web CDN by default

# Version 1.0.0 - 2019/06/10

- Rebuild component from the ground up, using vue-cli
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ features like:
- Connecting to Websocket and Local (In-Browser) servers
- Device listing and management
- Log display
- Buttplug crash/exception handling

## Table Of Contents

Expand Down
Binary file added manual/intiface1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
144 changes: 144 additions & 0 deletions manual/manual.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
## Connecting to Hardware

Using this app will require connecting to hardware of some kind. This
may be a bluetooth sex toy, a fucking machine controlled over serial
port, or some other type of device.

The steps are as follows:

- Decide whether you using Intiface Desktop or the browser itself (not
all browsers support this) to talk to hardware.
- Scan for devices
- Once devices are found, make them "active" so the application can
use them.

### Connection Interface

Connections will begin by using the Connection portion of the
interface.

![](manual1.png)

You have two options for connections:

* [Intiface Desktop](https://intiface.com/desktop), a cross platform
application for connecting to Bluetooth/Serial/etc... devices.
* In Browser Connection, which allows you to connect to bluetooth
devices if you are using [Google Chrome](https://chrome.google.com)
derived web browsers.

#### Via Intiface Desktop

For Intiface Desktop, you will need to use either Insecure or Secure
Websockets.

![](intiface1.png)

This application will, by default, try to connect to all of the
default address/ports on localhost. This should work for most
installations.

If you are using **Google Chrome** and connecting to a copy of
Intiface Desktop on the same machine as your browser, you can use
_Insecure Websockets_ and do not need to worry about secure
certificates.

If you are using **Firefox** or **Safari**, you will need to use
Secure Websockets and go through the secure certificate
generation/acceptance steps in Intiface Desktop.

#### Via the Browser

If you are using **[Google Chrome](https://chrome.google.com)** on
Windows, Mac, Linux, ChromeOS, or Android, or
**[WebBLE](https://apps.apple.com/us/app/webble/id1193531073)** on
iPhone/iPad (iOS), you can also use your hardware in the browser
without using an outside program. Click the "Connect In Browser"
button.

If you are not using a browser that has the proper requirements (in
this case, WebBluetooth), the button will be disabled and will read
_"Requires WebBluetooth"_.

#### Advanced Settings

_Advanced Settings_ allows you to change how certain portions of
connecting work.

![](manual2.png)

- By default, we will scan for devices on connect. This can be turned
off here.
- If you need to connect to Intiface Desktop on another machine or
port, that can also be set up here. All interfaces and ports that
are listed will be tried, and the first successful connection will
proceed. You can also choose whether _insecure_ (ws://) or _secure_
(wss://) connections will be used.

### Discovering and Using Hardware

Once you have connected, either via Intiface Desktop or In Browser,
you can then _scan for devices_. By default, this will happen
automatically when you connect.

![](manual3.png)

When devices are found, they will show up in the _Devices_ portion of
the dialog, as shown above.

To use a device in the application, click on the checkbox next to the
device. This will mark is as "active", so that the application can
access and use it.

Unchecking the box should stop the hardware from whatever it is doing,
and no longer allow it to take commands from the application.

### Disconnecting

To disconnect, hit the _Disconnect_ button. This will disconnect and
should cause all toys to stop whatever commands they were taking (i.e.
vibrations should stop running, etc...)

### Troubleshooting

#### Why can't I connect to Intiface Desktop?

Here's a few things to check and try if you can't connect to Intiface
Desktop.

- Is the server running? Check the _Server Status_ page on Intiface
desktop and make sure it's running.
- Do you have either _Insecure Websockets_, _Secure Websockets_ or
both selected on Intiface Desktop? IPC won't work for web.
- If you are using _Firefox_ or _Safari_, you will have to use _Secure
Websockets_. Have you accepted the cert in your browser yet? This
can be done in Intiface Desktop in _Settings -> Other Settings ->
Run Certificate Setup_.

#### Why does the browser button show _Requires WebBluetooth_?

If your browser does not support WebBluetooth, you will see a
_Requires Bluetooth_ button where _Connect In Browser_ would normally
be. This is because your browser cannot connect to Bluetooth hardware,
and therefore won't be able to provide hardware access to the
application.

Currently, browsers supporting WebBluetooth are:

- [Google Chrome](https://chrome.google.com)
- [WebBLE](https://apps.apple.com/us/app/webble/id1193531073)

#### I've connected, why can't I see my hardware listed?

- Did you scan for hardware?
- Is your hardware on and close to your computer or phone?
- Assuming you are using Bluetooth hardware, is your bluetooth on?
- If your hardware is not being listed, and you are using Intiface
Desktop, did Intiface Desktop show any errors in its log panel?

#### None of this answers my question, how can I ask for help?

Here's a few places you can ask questions and get help in real time:

- [Metafetish Forums](https://metafetish.club)
- [Metafetish Discord Chat Server](https://discord.buttplug.io)
Binary file added manual/manual1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added manual/manual2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added manual/manual3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
45 changes: 28 additions & 17 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,37 +1,48 @@
{
"name": "vue-buttplug-material-component",
"version": "1.0.0",
"private": true,
"version": "1.0.2",
"main": "dist/index.js",
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"build:vue-cli": "vue-cli-service build",
"build:vue-cli:lib": "vue-cli-service build --target lib --name vue-buttplug-material-component src/ButtplugPanel.vue",
"build:main": "tsc -p tsconfig.json",
"build:dev": "yarn build:main && webpack --progress --hide-modules --config=build/webpack.base.js",
"build:webpack": "yarn build:main && webpack --progress --hide-modules --config=build/webpack.production.js",
"build:analyze": "webpack --hide-modules --config=build/webpack.analyzer.js",
"build:example:dev": "yarn build:main && webpack --progress --hide-modules --config=build/webpack.example.js",
"lint": "vue-cli-service lint",
"test:unit": "vue-cli-service test:unit"
},
"peerDependencies": {
"buttplug": ">=0.11.6"
"buttplug": ">=0.12.1",
"vue": "^2.6.10",
"vuetify": "^1.5.16"
},
"dependencies": {
"vue": "^2.6.10",
"vue-class-component": "^7.1.0",
"vue-property-decorator": "^8.1.1",
"vuetify": "^1.5.14"
"vue-cookies": "^1.5.13",
"vue-property-decorator": "^8.2.1"
},
"devDependencies": {
"@mdi/font": "^3.6.95",
"@types/jest": "^24.0.13",
"@vue/cli-plugin-typescript": "^3.8.1",
"@vue/cli-plugin-unit-jest": "^3.8.0",
"@vue/cli-service": "^3.8.0",
"@mdi/font": "^3.8.95",
"@types/jest": "^24.0.15",
"@vue/cli-plugin-typescript": "^3.9.0",
"@vue/cli-plugin-unit-jest": "^3.9.0",
"@vue/cli-service": "^3.9.3",
"@vue/test-utils": "1.0.0-beta.29",
"buttplug": "^0.11.6",
"buttplug": "^0.12.0",
"style-loader": "^0.23.1",
"stylus": "^0.54.5",
"stylus-loader": "^3.0.2",
"ts-jest": "^24.0.2",
"ts-loader": "^6.0.2",
"typescript": "^3.5.1",
"vue-cli-plugin-vuetify": "^0.5.0",
"ts-loader": "^6.0.4",
"typescript": "^3.5.3",
"vue": "^2.6.10",
"vue-cli-plugin-vuetify": "^0.6.1",
"vue-template-compiler": "^2.6.10",
"vuetify-loader": "^1.2.2"
"vuetify": "^1.5.16",
"vuetify-loader": "^1.3.0",
"webpack-cli": "^3.3.6"
}
}
4 changes: 2 additions & 2 deletions src/App.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import Vue from "vue";
import { Component } from "vue-property-decorator";
import ConnectionPanel from "./ConnectionPanel";
import ButtplugPanel from "./ButtplugPanel";
import { ButtplugClient } from "buttplug";

@Component({
components: {
ConnectionPanel,
ButtplugPanel,
},
})
export default class App extends Vue {
Expand Down
4 changes: 2 additions & 2 deletions src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@
</v-tab>
<v-tab-item>
<v-card class="tab-card">
<connection-panel
<buttplug-panel
:client="client">
</connection-panel>
</buttplug-panel>
</v-card>
</v-tab-item>
<slot name="post"></slot>
Expand Down
Loading