WiiJuce 0.1 released

Add wiimote power to your JUCE based applications.

The first version of WiiJuce has just been released! at:
http://www.diplabs.com/svn/wiijuce/

Description:

  • A Juce based cross platform library for the Wiimote.

Supported platforms:

  • GNU/Linux
  • MacOSX
  • Windows

Features:

  • Send Rumble and Leds commands
  • Receive raw accelerations values
  • Receive buttons states
  • Command line and graphical samples
  • Multiple wiimote devices support
  • Asynchronous wiimote devices enumeration
  • Asynchronous wiimote devices messaging
  • Minimal crossplatform bluetooth device abstraction

Known bugs:

  • Multiple wiimotes seems not to work on MacOSX. No idea why.
  • Most of time, the L2CAP writing channel from the mac to the wiimote
    disconnect itself a few seconds after connection. If this does not
    happen after a few seconds, it will work for all the running time.

Limitation:

  • As the native bluetooth stack of Windows is really crappy, the
    easiest is to use the HID interface instead of the bluetooth win32
    API. The current implementation is thus limited to Wiimotes
    synchronized with HID (as for most Windows Wiimote
    implementations). Consequently, the Windows part cannot be used for
    non hid bluetooth communication.

Possible contributions:

  • Additionnal Wiimote features: nunchunk, IR, speaker, …
  • The bluetooth classes might be reusable for other bluetooth devices

Usage notes:

  • With CMake:

The library is shipped with a CMake configure file that allow easy
cross-platform compilation.

  • Install the following dependencies:
    CMake: http://www.cmake.org/
    Juce: http://www.rawmaterialsoftware.com/juce/

  • Run CMake:
    ccmake .
    don’t forget to set JUCE_ROOT to the path of extracted JUCE library
    sources

  • Run the following samples:
    ./wiijuce_sample
    ./wiijuce_gui

  • Make your own wiimote enabled project:
    #include “wiijuce.h”
    link with libwiijuce.a
    look at wiijuce_sample.cpp and wiijuce_gui.cpp for documentation

  • Otherwise:

Make a project (Visual Studio, XCode, Makefiles) yourself !

The directory ‘platform_specific_code’ contains the platform specific
files, and platform specific (includes, linking…) options can be
found in the ‘CMakeLists.txt’ file.

Feel free to ask SVN write access.

Authors:
Francis Maes <francis.maes - at - gmail - dot - com>
Johan Euphrosine <proppy - at - aminche - dot - com>

License:
GPLv2

Credits:
The enumeration code and writing code (which detects the kind of
bluetooth stacks) come from the wiiuse project by Michael Laforest
http://wiiuse.net/

The MacOS implementation is inspired from the DarwiinRemote Framework
which is written in Objective-C

The enumeration code of the,work in progress, native BlueTooth
implementation for Windows, comes from
http://www.codeproject.com/useritems/BluetoothAPI__Device_Enum.asp

Special note to jules:
Feel free to merge any part (or all) of the code into Juce.

Thank you so much!

Cool! (I’ve not got a wii to try it with though…)

What kind of apps have you tried using it for?

It’s used in (diplabs) Smode for motion sensing based interaction.

And I plan to use it in a juce+gnash rewrite of: http://pandipanda.aminche.com/ :slight_smile:

You do not need to have a wii to try it, just a wiimote controller that you can buy sepperate for ~25 euro.

Here is a demo video of it used in max/msp/jitter

We,d love to use it in our app if it get’s included in Juce.

there’s nothing stopping you from using it in your apps anyway :smiley:

As it’s such a specialist extension, it’s very unlikely that it would be included within the juce tree (there’s not really any call for it) but that’s hardly a problem. The wiiJuce bit could just be downloaded for use on top of it, just like any other reusable code you may have made.

well done for getting it done! i’d have given up if i hadn’t found the cWiiMote code, which was pretty much all it took to get it working. it was a challenge, so kudos to you! :slight_smile:

Kudos to the following persons and urls too :slight_smile:

Credits:
The enumeration code and writing code (which detects the kind of
bluetooth stacks) come from the wiiuse project by Michael Laforest
http://wiiuse.net/

The MacOS implementation is inspired from the DarwiinRemote Framework
which is written in Objective-C

The enumeration code of the,work in progress, native BlueTooth
implementation for Windows, comes from
http://www.codeproject.com/useritems/BluetoothAPI__Device_Enum.asp

Hello/BonJour!

The SVN link you provided for your JuceWii code appears not to be accessible.

Can other folks access http://www.diplabs.com/svn/wiijuce ??

stp

Bonsoir,

Thanks for reporting the problem, the link should work now