Showing the changes to examples/example/scripts/controllerScriptingExamples.js (1 of 1 file). Show all
Unified · Split
| @@ -0,0 +1,94 @@ | ||
| 1 | +// | |
| 2 | +// controllerScriptingExamples.js | |
| 3 | +// examples | |
| 4 | +// | |
| 5 | +// Created by Sam Gondelman on 6/2/15 | |
| 6 | +// Copyright 2015 High Fidelity, Inc. | |
| 7 | +// | |
| 8 | +// Distributed under the Apache License, Version 2.0. | |
| 9 | +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html | |
| 10 | +// | |
| 11 | + | |
| 12 | +// Resets every device to its default key bindings: | |
| 13 | +Controller.resetAllDeviceBindings() | |
| 14 | + | |
| 15 | +// Query all actions | |
| 16 | +print("All Actions: \n" + Controller.getAllActions()) | |
| 17 | + | |
| 18 | +// Each action stores: | |
| 19 | +// action: int representation of enum | |
| 20 | +print("Action 5 int: \n" + Controller.getAllActions()[5].action) | |
| 21 | + | |
| 22 | +// actionName: string representation of enum | |
| 23 | +print("Action 5 name: \n" + Controller.getAllActions()[5].actionName) | |
| 24 | + | |
| 25 | +// inputChannels: list of all inputchannels that control that action | |
| 26 | +print("Action 5 input channels: \n" + Controller.getAllActions()[5].inputChannels + "\n") | |
| 27 | + | |
| 28 | + | |
| 29 | +// Each input channel stores: | |
| 30 | +// action: Action that this InputChannel maps to | |
| 31 | +print("Input channel action: \n" + Controller.getAllActions()[5].inputChannels[0].action) | |
| 32 | + | |
| 33 | +// scale: sensitivity of input | |
| 34 | +print("Input channel scale: \n" + Controller.getAllActions()[5].inputChannels[0].scale) | |
| 35 | + | |
| 36 | +// input and modifier: Inputs | |
| 37 | +print("Input channel input and modifier: \n" + Controller.getAllActions()[5].inputChannels[0].input + "\n" + Controller.getAllActions()[5].inputChannels[0].modifier + "\n") | |
| 38 | + | |
| 39 | + | |
| 40 | +// Each Input stores: | |
| 41 | +// device: device of input | |
| 42 | +print("Input device: \n" + Controller.getAllActions()[5].inputChannels[0].input.device) | |
| 43 | + | |
| 44 | +// channel: channel of input | |
| 45 | +print("Input channel: \n" + Controller.getAllActions()[5].inputChannels[0].input.channel) | |
| 46 | + | |
| 47 | +// type: type of input (Unknown, Button, Axis, Joint) | |
| 48 | +print("Input type: \n" + Controller.getAllActions()[5].inputChannels[0].input.type) | |
| 49 | + | |
| 50 | +// id: id of input | |
| 51 | +print("Input id: \n" + Controller.getAllActions()[5].inputChannels[0].input.id + "\n") | |
| 52 | + | |
| 53 | + | |
| 54 | +// You can get the name of a device from its id | |
| 55 | +print("Device 1 name: \n" + Controller.getDeviceName(Controller.getAllActions()[5].inputChannels[0].input.id)) | |
| 56 | + | |
| 57 | +// You can also get all of a devices input channels | |
| 58 | +print("Device 1's input channels: \n" + Controller.getAllInputsForDevice(1) + "\n") | |
| 59 | + | |
| 60 | + | |
| 61 | +// Modifying properties: | |
| 62 | +// The following code will switch the "w" and "s" key functionality and adjust their scales | |
| 63 | +var s = Controller.getAllActions()[0].inputChannels[0] | |
| 64 | +var w = Controller.getAllActions()[1].inputChannels[0] | |
| 65 | + | |
| 66 | +// You must remove an input controller before modifying it so the old input controller isn't registered anymore | |
| 67 | +// removeInputChannel and addInputChannel return true if successful, false otherwise | |
| 68 | +Controller.removeInputChannel(s) | |
| 69 | +Controller.removeInputChannel(w) | |
| 70 | +print(s.scale) | |
| 71 | +s.action = 1 | |
| 72 | +s.scale = .01 | |
| 73 | + | |
| 74 | +w.action = 0 | |
| 75 | +w.scale = 10000 | |
| 76 | +Controller.addInputChannel(s) | |
| 77 | +Controller.addInputChannel(w) | |
| 78 | +print(s.scale) | |
| 79 | + | |
| 80 | +// You can get all the available inputs for any device | |
| 81 | +// Each AvailableInput has: | |
| 82 | +// input: the Input itself | |
| 83 | +// inputName: string representing the input | |
| 84 | +var availableInputs = Controller.getAvailableInputs(1) | |
| 85 | +for (i = 0; i < availableInputs.length; i++) { | |
| 86 | + print(availableInputs[i].inputName); | |
| 87 | +} | |
| 88 | + | |
| 89 | +// You can modify key bindings by using these avaiable inputs | |
| 90 | +// This will replace e (up) with 6 | |
| 91 | +var e = Controller.getAllActions()[5].inputChannels[0] | |
| 92 | +Controller.removeInputChannel(e) | |
| 93 | +e.input = availableInputs[6].input | |
| 94 | +Controller.addInputChannel(e) | |