KeyboardState & MouseState

July 25, 2012 posted by: joreg


here is the thing: until now, when creating modules or plugins that take mouse input you’d always have to cons XY and the mousebuttons together somehow so that you’d not need 5 connections to the node. also with the keyboard it was quite messy to parse the actual keystate only given a keycode. no more. we’re introducing a special datatype for those now, and we call them “MouseState” and “KeyboardState”.

so now, when creating a module that takes mouse or keyboard input use:

  • MouseState (System Split)node
  • KeyboardState (System Split)node to use the data conveniently inside the module.

plugin writers simply use:

ISpread<MouseState> FMouseState;
ISpread<KeyboardState> FKeyboardState;

to create pins of the respective types.

and as a user you’d notice how the following have turned into modules that return an additional handy Mousepin or Keyboardpin:

  • Mouse (System Window)node
  • Keyboard (System Global)node
  • Mouse (System Window)node
  • Keyboard (System Global)node

internally those modules use:

  • MouseState (System Join)node
  • KeyboardState (System Join)node which of course you can use to simulate mouse/keyboards from any arbitrary input. and note that of course those are spreadable.

nodes that already take that input now include:

  • Cursor (DX9)node
  • TypeWriter (String)node
  • Button (3D Mesh)node
  • Button (3D Quad)node
  • TagPoints (3D Vector)node
  • PickPoints (3D Vector)node
  • the series of Point- and MeshEditor modules

so for the developer this provides a standard interface for mouse/keyboard input and for the user it will save some clicks. win/win.


Comments are no longer accepted for this post.

25.07.2012 - 17:04
cool! and how to create an output from plugins of the above mentioned datatype if i would like to implement it in DirectInput?
25.07.2012 - 17:09
same, just create an output of type: ISpread FKeyboardState;
25.07.2012 - 17:32
i meant how the structure looks like (i guess it’s a structure) what are the variables i can tinker with inside this type?
25.07.2012 - 17:49
you should see its properties via codecompletion or here: /pluginspecs/html/Properties_T_VVVV_Utils_IO_KeyboardState.htm
25.07.2012 - 19:18
Hey this upgrade matches the new Arduino Leonardo with mouse and keyboard features. >
25.07.2012 - 19:39
thank you!
28.07.2012 - 14:48
Joreg, i’ve noticed that… KeyMatch (String) needs Key as an Input, so I plug a Keyboard (System Global) into KeyboardState (System Split) but this guy doesn’t output and so on on its Key output pin. Am I missing something?
31.07.2012 - 23:58
right. please check latest alpha which includes a new KeyMatch with a Keyboardpin input (and some more fancyness). so you can now connect a Keyboard (System Global) directly. also you don’t specify keys in angular brackets anymore, but as a simple comma-separated human-readble list, like eg: Left, Right, Back, Return



vvvv - Dießl & Gregor GbR
Oranienstrasse 10
10997 Berlin/Germany
VAT: DE275566955


Follow us

Sign up for our Newsletter

Your subscription could not be saved. Please try again.
Your subscription has been successful.