Ctypes and Structures
Martijn Arts
arts.martijn at gmail.com
Sun Oct 25 07:46:01 EDT 2009
I'm working with ctypes on a bridge (?) from WiiUse; a new and improved
PyWiiUse, but I'm having a problem:
When connecting to the wiimotes with the init function it gives me back
an array with pointers. Every pointer points to a WiiMote structure, this
all
goes well.
Now when trying to poll the wiimotes (check for events like button presses)
it should edit the WiiMote structures where's button presses using
bit-flags,
but it doesn't.
Here's a bit of code:
wiimotes = pywiiuse.init(1) # connect to the wiimotes
(...)
pywiiuse.rumble(wiimotes[0], 1) # little example of how it works
init function:
def init(nwiimotes):
c_array = wiimote_p * nwiimotes
wiiusedll.wiiuse_init.restype = c_array
return wiiusedll.wiiuse_init(c_int(nwiimotes))
Now I'm going to poll it:
while True:
if pywiiuse.poll(wiimotes, 1):
i = 0
while i < 1:
print 'EVENT:'
print pywiiuse.is_pressed(wiimotes[0], pywiiuse.button['Right'])
i += 1
pywiiuse.button['Right']is 0x0200
This is the is_pressed function:
def is_pressed(dev, button):
return (dev.contents.btns & button) == button
To be honest: I have no idea what is_pressed actually does, but it should
return True
or False?
After testing around a bit I found out that dev.contents.btns always equals
420.
Martijn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20091025/58695e92/attachment.html>
More information about the Python-list
mailing list