summaryrefslogtreecommitdiff
path: root/Not-so-great-documentation.txt
blob: 5810ac82bb16fdac3ba549fc8e5fd1450606e0e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Some not-so-great-documentation for this plugin.

First of all, this plugin is essentially a hack - a trial sort of.
It certainly isn't ready for anything (And it's inflexibility shows
that).

You could compare this plugin to other plugins and say
that in relation, it would really just be if you put an
input device and some crap on a plate.

Anyways, regardsless of all the self-insults this plugin can
do quite a bit.

REQUIREMENTS:

 * LibCWiiD (I tested it with Cwiid 0.6.0)
 * A *working* bluetooth adapter
 * A wiimote
 * A lot of free time and patience
 
INSTRUCTIONS:

 * To connect a Wii Remote, press <Shift><Super>w keys
   and hold down the 1 and 2 buttons on your remote. After
   a while, a message should appear on screen
 * You can connect up to four (4) Wii remotes at any time.
 * To disconnect the last Wii Remote connected, just press
   <Alt><Super>w (this is the crash-prone bit)
 * To toggle sending of information to another plugin, just press
   <Alt><Super>r. Note that this is extremely inflexible and is really
   just a testbed for some of the experiments I've been doing with it.
   
   BY DEFAULT:
   
   * The first Wii Remote will always control the pointer
    * Note that there is no button support yet ;-)
   * The second Wii Remote will send reading information to another plugin
    * THIS IS ALL CURRENTLY HARDCODED!
     * By default, it sends values to a function that the 'rotate' plugin
       doesn't have, because .... I modified the rotate plugin at home ;-)
     * You can change how this works by modifying lines 1324-1369 by changing
       the plugin, action name, arguments sent to it
       
       Try it out with ezoom: Option Name: set_zoom_area
                              Arg 1: x1 (ad->cWiimote[1].irDistance / Whatever)
                              Arg 2: y1 (ad->cWiimote[1].irDistance / Whatever)
                              
     * As soon as I clean out the code, I'll make most of this an
       *actual* option. Promise

The compiz-wiimote.h file allows developers to connect directly
to the wiimote plugin using getPluginDisplayIndex(d, "wiimote")
and then getting the display struct. You can then loop through the
wiimotes and get thier values (Make sure to check to see if they
are connected with ad->cWiimote[nWiimote].connected)!
     
That's about it. Most crashes are due to CWiiD, because of it's
(stupid imo) 'take-everything-using-me-down-on-slight-error' approach :/

- SmSpillaz

... Have a lot of fun!....

TODO:

 * Cleanup. Major Cleanups. No seriously =)
 * Button (with input!) support
 * Nunchuck support
 * Gesture Support and Cursor Support in another plugin?
 * Multi-List settings to configure:
    * Per-Wiimote:
     * Calibration? Offsets?
     * Wiimote Button mappings to whatever event
     * Whether the Wiimote serves as a (Checkboxes):
         * Accellerometor Gesturer
         * IR Pointer
         * General Reporter (Report everything through action system)
         * Nuncheck Gesturer
         * Button-action thingy
        One Wiimote would be able to do all these things at once but
        it would be INSANE ;-)
 * There is always more ;-)