Hello,
I'm writing a joystick interface that runs over SLProxy (using libsecondlife.) It will support arbitrarily mapping controls (axes, buttons, sliders, hat switches) from multiple joysticks (or steering wheels, or anything else that talks to DirectInput), and I've already got it squirting updates into a simulator. The idea is to provide vehicles (and anything else interesting) with full access to joystick hardware, so you can (for example) have very fine control of the pitch/roll/yaw without having to use mouselook steering. My question is this: Is anyone at LL working on integrating analog joystick support into the client? If so, and if it's going to be available sometime in the near future, maybe I don't need to continue. Let me know.
----
Response:
That sounds fantastic. Should enable us to plug all sorts of things into the simulator, and we wouldn't have to exit the viewer every time we wanted to recompile our apps. Something that would be useful (especially for handling sims with slow script execution) would be an option to choose whether the data was delivered in a FIFO or just overwritten each time it was received. As an example, my physics routine tries to tick four times a second, but that gets to be impossible when (for example) I'm flying through some simulator that's got 3,000 scripts on a Class III machine. My physics are smart enough to measure how much time has elapsed, but if there's a big queue of control information coming in, it could stack up pretty fast.
Maybe this is beyond the scope of what you had in mind, but I'm thinking of something like this -
client: Hello, here's some data: <XAxis>-0.4</XAxis><YAxis>0.1</YAxis>
LSL: (not able to pick it up yet, doing something else)
client: Hello, here's some more data: <XAxis>-0.7</XAxis>
LSL: OK, picking up the data.
There's two ways to give LSL the data:
FIFO - <XAxis>-0.4</XAxis><YAxis>0.1</YAxis><XAxis>-0.7</XAxis>
New data with same name overwrites old - <XAxis>-0.7</XAxis><YAxis>0.1</YAxis>
Obviously there would have to be some sane cap on the amount and persistence of data, so that someone couldn't just send a few megs of stuff and have it hanging around forever, but that's the kind of implementation that would make this system very nearly as responsive as mouselook steering, particularly when the simulator is very busy.
PS: Here is a thread ---> /108/17/130132/1.html#post1230488