The jFreespace package enables Java applications to easily communicate with FreespaceŽ devices. jFreespace provides the Java native interface (JNI) to the open-source libfreespace library. jFreespace enables rapid development of applications for Hillcrest Labs FreespaceŽ devices and provides access to extended information beyond mouse, keyboard and consumer page functionality. This includes:

Basic Usage

A basic application using the jFreespace library discovers available devices by querying the Discovery singleton instance using Discovery.getInstance().getDevices. If desired, the application can register using the DiscoverListenerInterface to receive notifications when devices are inserted into the system or removed from the system. The application can use a DeviceFilter to further determine qualified devices. Once the application finds a desired device, it can open the device for sending data and receiving data using the DeviceListenerInterface. For a working example application, see the source code for jFreespace.

Thread Issues

The jFreespace library runs on its own thread. All calls to the jFreespace library are thread safe, and the jFreespace library handles all synchronization to its thread. The callbacks from Discovery to DiscoveryListenerInterface and the callbacks from Device to DeviceListenerInterface are all on the jFreespace thread. Applications can optionally perform resynchronization to their threads as desired.

License

jFreespace is distributed under the LGPL 2.1 license. For the full list of terms and conditions, refer to the "COPYING" file in the top-level jFreespace directory.