From 4baec1a214e95e35c86aaa0d27a2401c170cba41 Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson Date: Mon, 3 May 2010 23:19:53 -0700 Subject: mythtv:Bumped to compile rc3. --- abs/core-testing/mythtv/stable-0.23/mythtv/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abs/core-testing/mythtv/stable-0.23/mythtv/PKGBUILD b/abs/core-testing/mythtv/stable-0.23/mythtv/PKGBUILD index c8eb95f..d213525 100755 --- a/abs/core-testing/mythtv/stable-0.23/mythtv/PKGBUILD +++ b/abs/core-testing/mythtv/stable-0.23/mythtv/PKGBUILD @@ -1,6 +1,6 @@ pkgname=mythtv pkgver=0.23 -pkgrel=18 +pkgrel=19 pkgdesc="A personal video recorder for Linux" url="http://www.mythtv.org" license="GPL" -- cgit v0.12 From 7c6c7188458a3047b067c9442dec4ba373e9b91f Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson Date: Mon, 3 May 2010 23:20:05 -0700 Subject: mythinstall:bumped to recompile. --- abs/core-testing/mythinstall/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abs/core-testing/mythinstall/PKGBUILD b/abs/core-testing/mythinstall/PKGBUILD index 1ec14f4..f7e8e58 100644 --- a/abs/core-testing/mythinstall/PKGBUILD +++ b/abs/core-testing/mythinstall/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Jams pkgname=mythinstall pkgver=2 -pkgrel=43 +pkgrel=44 pkgdesc="LinHES installer/systemconfig GUI." arch=i686 depends=() -- cgit v0.12 From 37a96fd86c86ce3d081d8f333317bc9f46a9ebe0 Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson Date: Mon, 3 May 2010 23:29:32 -0700 Subject: mythnetvision:bumped to ensure latest. --- abs/core-testing/mythtv/stable-0.23/mythnetvision/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abs/core-testing/mythtv/stable-0.23/mythnetvision/PKGBUILD b/abs/core-testing/mythtv/stable-0.23/mythnetvision/PKGBUILD index de0bc11..cd25452 100644 --- a/abs/core-testing/mythtv/stable-0.23/mythnetvision/PKGBUILD +++ b/abs/core-testing/mythtv/stable-0.23/mythnetvision/PKGBUILD @@ -1,6 +1,6 @@ pkgname=mythnetvision pkgver=0.23 -pkgrel=4 +pkgrel=5 pkgdesc="Internet video plugin for MythTV" url="http://www.mythtv.org" license="GPL" -- cgit v0.12 From e49e4b1261f04d4df8077ca9699c6edfaddbc1a5 Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson Date: Mon, 3 May 2010 23:29:54 -0700 Subject: myththemes:bumped to ensure latest (adds Childish theme). --- abs/core-testing/mythtv/stable-0.23/myththemes/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abs/core-testing/mythtv/stable-0.23/myththemes/PKGBUILD b/abs/core-testing/mythtv/stable-0.23/myththemes/PKGBUILD index 6ceba8b..371ce97 100755 --- a/abs/core-testing/mythtv/stable-0.23/myththemes/PKGBUILD +++ b/abs/core-testing/mythtv/stable-0.23/myththemes/PKGBUILD @@ -1,6 +1,6 @@ pkgname=myththemes pkgver=0.23 -pkgrel=4 +pkgrel=5 pkgdesc="Themes for MythTV" url="http://www.mythtv.org" license="GPL" -- cgit v0.12 From 80935cb2b9bef89b51d7237273b54b667760f947 Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson Date: Mon, 10 May 2010 16:21:12 -0700 Subject: mythtv:bumped to build 0.23 "release". --- abs/core-testing/mythtv/stable-0.23/mythtv/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abs/core-testing/mythtv/stable-0.23/mythtv/PKGBUILD b/abs/core-testing/mythtv/stable-0.23/mythtv/PKGBUILD index d213525..0af81c7 100755 --- a/abs/core-testing/mythtv/stable-0.23/mythtv/PKGBUILD +++ b/abs/core-testing/mythtv/stable-0.23/mythtv/PKGBUILD @@ -1,6 +1,6 @@ pkgname=mythtv pkgver=0.23 -pkgrel=19 +pkgrel=20 pkgdesc="A personal video recorder for Linux" url="http://www.mythtv.org" license="GPL" -- cgit v0.12 From 9fb9454e24c794fa8294dec0c50dbede1d38dd07 Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson Date: Mon, 10 May 2010 16:21:31 -0700 Subject: v4l-dvb:bumped for newer modules. --- abs/core-testing/v4l-dvb/PKGBUILD | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/abs/core-testing/v4l-dvb/PKGBUILD b/abs/core-testing/v4l-dvb/PKGBUILD index 8cd0ef8..02fc881 100644 --- a/abs/core-testing/v4l-dvb/PKGBUILD +++ b/abs/core-testing/v4l-dvb/PKGBUILD @@ -4,7 +4,7 @@ pkgname=v4l-dvb _kernver=2.6.28-LinHES pkgver=1 -pkgrel=14 +pkgrel=16 pkgdesc="V4L-DVB drivers from mercurial" arch=('i686' 'x86_64') license=('GPL2') @@ -16,10 +16,13 @@ source=('http://linuxtv.org/hg/v4l-dvb/archive/tip.tar.gz' 'hdpvr.diff') build() { cd $startdir/src/v4l-dvb*/ - patch -p1 < ../hdpvr.diff +# patch -p1 < ../hdpvr.diff make KERNDIR=/lib/modules/$_kernver/build \ DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver all || return 1 make KERNDIR=/lib/modules/$_kernver/build \ DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver install || return 1 rm -fr $startdir/pkg/lib/modules/$_kernver/modules* } + +md5sums=('7387b0d3fa4a43f225a17bf7a4672558' + 'd50c96211d23fba48ebc4c5e2d1e6102') -- cgit v0.12 From 1587de87b062dffdafe3b63bbd329c1eb1f91df9 Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson Date: Mon, 10 May 2010 16:21:51 -0700 Subject: asciidoc:initial inclusion --- abs/extra-testing/asciidoc/ChangeLog | 10 ++++++++++ abs/extra-testing/asciidoc/PKGBUILD | 30 ++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 abs/extra-testing/asciidoc/ChangeLog create mode 100644 abs/extra-testing/asciidoc/PKGBUILD diff --git a/abs/extra-testing/asciidoc/ChangeLog b/abs/extra-testing/asciidoc/ChangeLog new file mode 100644 index 0000000..e9e5156 --- /dev/null +++ b/abs/extra-testing/asciidoc/ChangeLog @@ -0,0 +1,10 @@ + +2009-11-07 Chris Brannon + + * Fixed optdepends, converted to arch=('any'). + + +2008-07-06 Douglas Soares de Andrade + + * Updated for x86_64 - 8.2.7 + diff --git a/abs/extra-testing/asciidoc/PKGBUILD b/abs/extra-testing/asciidoc/PKGBUILD new file mode 100644 index 0000000..2a73a22 --- /dev/null +++ b/abs/extra-testing/asciidoc/PKGBUILD @@ -0,0 +1,30 @@ +# Maintainer: Daniel J Griffiths +# Contributor: Chris Brannon +# Contributor: Geoffroy Carrier +# Contributor: Dan McGee +# Contributor: Jaroslaw Rosiek +# Contributor: Darwin Bautista + +pkgname=asciidoc +pkgver=8.5.3 +pkgrel=2 +pkgdesc="Text document format for short documents, articles, books and UNIX man pages" +arch=('any') +url="http://www.methods.co.nz/asciidoc/" +license=('GPL') +depends=('python' 'libxslt' 'docbook-xsl') +optdepends=('lilypond: music-filter' + 'imagemagick: music-filter (used in conjunction with lilypond)' + 'source-highlight: source-highlight-filter' + 'fop: pdf generation' + 'lynx: text generation' + 'w3m: text generation (alternative to lynx)') +source=(http://downloads.sourceforge.net/asciidoc/asciidoc-${pkgver}.tar.gz) + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + ./configure --prefix=/usr --sysconfdir=/etc || return 1 + make install DESTDIR="${pkgdir}" || return 1 + install -Dm644 asciidocapi.py ${pkgdir}/usr/lib/python2.6/site-packages/asciidocapi.py +} +md5sums=('7377872275c2a575151655b19ac6dd3e') -- cgit v0.12 From 67d9a0569866a6fd5e6b8df6c4600916e6e4ae5b Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson Date: Mon, 10 May 2010 16:22:04 -0700 Subject: evtest:initial inclusion --- abs/extra-testing/evtest/PKGBUILD | 24 ++++++++++++++++++++++++ abs/extra-testing/evtest/evtest.diff | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 abs/extra-testing/evtest/PKGBUILD create mode 100644 abs/extra-testing/evtest/evtest.diff diff --git a/abs/extra-testing/evtest/PKGBUILD b/abs/extra-testing/evtest/PKGBUILD new file mode 100644 index 0000000..0952c5e --- /dev/null +++ b/abs/extra-testing/evtest/PKGBUILD @@ -0,0 +1,24 @@ +# Contributor: Andrej Gelenberg +pkgname=evtest +pkgver=1.25 +pkgrel=2 +pkgdesc="Simple tool for input event debugging." +arch=('i686' 'x86_64') +url="http://cgit.freedesktop.org/~whot/evtest/" +license=('GPL') +depends=(libxml2) +makedepends=(xmlto asciidoc) +optdepends=(libxslt) +source=("http://cgit.freedesktop.org/~whot/evtest/snapshot/$pkgname-$pkgver.zip" "evtest.diff") + +build() +{ + cd $srcdir/$pkgname-$pkgver + patch -p1 < ../evtest.diff || return 1 + autoreconf -iv + ./configure --prefix=/usr + make || return 1 + make DESTDIR=${startdir}/pkg install +} +md5sums=('1edddfcd366bb52490e08cbf1dbaeddf' + '1753bd5825ca7e5244a1a09029b8a47d') diff --git a/abs/extra-testing/evtest/evtest.diff b/abs/extra-testing/evtest/evtest.diff new file mode 100644 index 0000000..0dc7ba5 --- /dev/null +++ b/abs/extra-testing/evtest/evtest.diff @@ -0,0 +1,32 @@ +diff -ruaN evtest-1.25.orig/evtest-capture.c evtest-1.25/evtest-capture.c +--- evtest-1.25.orig/evtest-capture.c 2009-12-02 22:24:44.000000000 +0000 ++++ evtest-1.25/evtest-capture.c 2010-05-06 08:38:03.000000000 +0000 +@@ -560,16 +560,6 @@ + [ABS_TOOL_WIDTH] = "ABS_TOOL_WIDTH", + [ABS_VOLUME] = "ABS_VOLUME", + [ABS_MISC] = "ABS_MISC", +- [ABS_MT_TOUCH_MAJOR] = "ABS_MT_TOUCH_MAJOR", +- [ABS_MT_TOUCH_MINOR] = "ABS_MT_TOUCH_MINOR", +- [ABS_MT_WIDTH_MAJOR] = "ABS_MT_WIDTH_MAJOR", +- [ABS_MT_WIDTH_MINOR] = "ABS_MT_WIDTH_MINOR", +- [ABS_MT_ORIENTATION] = "ABS_MT_ORIENTATION", +- [ABS_MT_POSITION_X] = "ABS_MT_POSITION_X", +- [ABS_MT_POSITION_Y] = "ABS_MT_POSITION_Y", +- [ABS_MT_TOOL_TYPE] = "ABS_MT_TOOL_TYPE", +- [ABS_MT_BLOB_ID] = "ABS_MT_BLOB_ID", +- [ABS_MT_TRACKING_ID] = "ABS_MT_TRACKING_ID", + }; + + const char *misc[MSC_MAX + 1] = { +diff -ruaN evtest-1.25.orig/evtest.c evtest-1.25/evtest.c +--- evtest-1.25.orig/evtest.c 2009-12-02 22:24:44.000000000 +0000 ++++ evtest-1.25/evtest.c 2010-05-06 08:38:21.000000000 +0000 +@@ -192,7 +192,7 @@ + [BTN_TOOL_MOUSE] = "ToolMouse", [BTN_TOOL_LENS] = "ToolLens", + [BTN_TOUCH] = "Touch", [BTN_STYLUS] = "Stylus", + [BTN_STYLUS2] = "Stylus2", [BTN_TOOL_DOUBLETAP] = "Tool Doubletap", +- [BTN_TOOL_TRIPLETAP] = "Tool Tripletap", [BTN_TOOL_QUADTAP] = "Tool Quadtap", ++ [BTN_TOOL_TRIPLETAP] = "Tool Tripletap", + [BTN_GEAR_DOWN] = "WheelBtn", + [BTN_GEAR_UP] = "Gear up", [KEY_OK] = "Ok", + [KEY_SELECT] = "Select", [KEY_GOTO] = "Goto", -- cgit v0.12 From 0840ae3ae3ae205d6fc6e7638292b45406a3b652 Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson Date: Mon, 10 May 2010 16:22:25 -0700 Subject: sdlmame:patched with support for wiimotes as lightguns! --- abs/extra-testing/sdlmame/PKGBUILD | 13 +- abs/extra-testing/sdlmame/mame-0137-wiimote.diff | 424 +++++++++++++++++++++++ 2 files changed, 432 insertions(+), 5 deletions(-) create mode 100644 abs/extra-testing/sdlmame/mame-0137-wiimote.diff diff --git a/abs/extra-testing/sdlmame/PKGBUILD b/abs/extra-testing/sdlmame/PKGBUILD index f59b7f2..2718a57 100644 --- a/abs/extra-testing/sdlmame/PKGBUILD +++ b/abs/extra-testing/sdlmame/PKGBUILD @@ -5,7 +5,7 @@ pkgname=sdlmame pkgver=0.137 _basever=0137 -pkgrel=2 +pkgrel=3 pkgdesc="A port of the popular Multiple Arcade Machine Emulator using SDL with OpenGL support." url="http://mamedev.org/" license=('custom:MAME License') @@ -21,10 +21,8 @@ source=("http://aarongiles.com/mirror/releases/mame0137s.zip" # "http://mamedev.org/updates/0136u2_diff.zip" # "http://mamedev.org/updates/0136u3_diff.zip" "sdlmame.sh" - "extras.tar.gz") -md5sums=('ce9e5359e882d5a8219821e39bd4f27a' - '3119ccfa1e970eba4467df31208adaf0' - '420b61240bf5ae11615ba7c6100ee00d') + "extras.tar.gz" + "mame-0137-wiimote.diff") build() { cd $srcdir/ @@ -35,6 +33,7 @@ build() { # patch -p0 -E <0136u1.diff # patch -p0 -E <0136u2.diff # patch -p0 -E <0136u3.diff + patch -p1 < ../mame-0137-wiimote.diff || return 1 sed -i 's/-Werror//' makefile || return 1 fi @@ -84,3 +83,7 @@ build() { find $pkgdir -type f -exec strip {} \; } +md5sums=('ce9e5359e882d5a8219821e39bd4f27a' + '3119ccfa1e970eba4467df31208adaf0' + '420b61240bf5ae11615ba7c6100ee00d' + '07ba30c6054bf864f7c1300bfef03b81') diff --git a/abs/extra-testing/sdlmame/mame-0137-wiimote.diff b/abs/extra-testing/sdlmame/mame-0137-wiimote.diff new file mode 100644 index 0000000..8f29b8e --- /dev/null +++ b/abs/extra-testing/sdlmame/mame-0137-wiimote.diff @@ -0,0 +1,424 @@ +diff -BNburp mame-org/makefile mame-wiimote/makefile +diff -BNburp mame-org/src/osd/sdl/input.c mame-wiimote/src/osd/sdl/input.c +--- mame-org/src/osd/sdl/input.c 2010-02-28 04:16:40.000000000 +0100 ++++ mame-wiimote/src/osd/sdl/input.c 2010-05-07 13:53:59.000000000 +0200 +@@ -17,6 +17,12 @@ + #include + #include + ++// for xinput ++#include ++#include ++#include ++ ++ + // MAME headers + #include "emu.h" + #include "ui.h" +@@ -53,6 +59,16 @@ enum + #define MAX_POV 4 + #define MAX_DEVMAP_ENTRIES 16 + ++//For xinput ++#define INVALID_EVENT_TYPE -1 ++static int motion_type = INVALID_EVENT_TYPE; ++static int button_press_type = INVALID_EVENT_TYPE; ++static int button_release_type = INVALID_EVENT_TYPE; ++static int key_press_type = INVALID_EVENT_TYPE; ++static int key_release_type = INVALID_EVENT_TYPE; ++static int proximity_in_type = INVALID_EVENT_TYPE; ++static int proximity_out_type = INVALID_EVENT_TYPE; ++ + //============================================================ + // MACROS + //============================================================ +@@ -86,6 +102,16 @@ struct _mouse_state + INT32 buttons[MAX_BUTTONS]; + }; + ++// state information for a lightgun ++typedef struct _lightgun_state lightgun_state; ++struct _lightgun_state ++{ ++ INT32 lX, lY; ++ INT32 buttons[MAX_BUTTONS]; ++ XID deviceid; //Xinput device id ++ INT32 maxx,maxy; ++ INT32 minx,miny; ++}; + + // state information for a joystick; DirectInput state must be first element + typedef struct _joystick_state joystick_state; +@@ -115,6 +141,7 @@ struct _device_info + keyboard_state keyboard; + mouse_state mouse; + joystick_state joystick; ++ lightgun_state lightgun; + }; + }; + +@@ -164,10 +191,13 @@ struct _device_map_t + + static device_map_t joy_map; + static device_map_t mouse_map; ++static device_map_t lightgun_map; + static device_map_t keyboard_map; + + static int sixaxis_mode; + ++Display *XDisplay; ++ + + //============================================================ + // PROTOTYPES +@@ -671,6 +703,244 @@ static device_info *devmap_class_registe + return devinfo; + } + ++//============================================================ ++// WiiMote lightgun stuff ++//============================================================ ++ ++//Copypasted from xinfo ++XDeviceInfo* ++find_device_info(Display *display, ++ char *name, ++ Bool only_extended) ++{ ++ XDeviceInfo *devices; ++ XDeviceInfo *found = NULL; ++ int loop; ++ int num_devices; ++ int len = strlen(name); ++ Bool is_id = True; ++ XID id=0; ++ ++ for(loop=0; loop= IsXExtensionDevice)) && ++ ((!is_id && strcmp(devices[loop].name, name) == 0) || ++ (is_id && devices[loop].id == id))) { ++ if (found) { ++ fprintf(stderr, ++ "Warning: There are multiple devices named \"%s\".\n" ++ "To ensure the correct one is selected, please use " ++ "the device ID instead.\n\n", name); ++ } else { ++ found = &devices[loop]; ++ } ++ } ++ } ++ return found; ++} ++ ++//Copypasted from xinfo ++static int ++register_events(Display *dpy, ++ XDeviceInfo *info, ++ char *dev_name, ++ Bool handle_proximity) ++{ ++ int number = 0; /* number of events registered */ ++ XEventClass event_list[7]; ++ int i; ++ XDevice *device; ++ Window root_win; ++ unsigned long screen; ++ XInputClassInfo *ip; ++ ++ screen = DefaultScreen(dpy); ++ root_win = RootWindow(dpy, screen); ++ ++ device = XOpenDevice(dpy, info->id); ++ ++ if (!device) { ++ fprintf(stderr, "unable to open device %s\n", dev_name); ++ return 0; ++ } ++ ++ if (device->num_classes > 0) { ++ for (ip = device->classes, i=0; inum_classes; ip++, i++) { ++ switch (ip->input_class) { ++ case KeyClass: ++ DeviceKeyPress(device, key_press_type, event_list[number]); number++; ++ DeviceKeyRelease(device, key_release_type, event_list[number]); number++; ++ break; ++ ++ case ButtonClass: ++ DeviceButtonPress(device, button_press_type, event_list[number]); number++; ++ DeviceButtonRelease(device, button_release_type, event_list[number]); number++; ++ break; ++ ++ case ValuatorClass: ++ DeviceMotionNotify(device, motion_type, event_list[number]); number++; ++ fprintf(stderr, "Motion = %i\n",motion_type); ++ if (handle_proximity) { ++ ProximityIn(device, proximity_in_type, event_list[number]); number++; ++ ProximityOut(device, proximity_out_type, event_list[number]); number++; ++ } ++ break; ++ ++ default: ++ fprintf(stderr, "unknown class\n"); ++ break; ++ } ++ } ++ ++ if (XSelectExtensionEvent(dpy, root_win, event_list, number)) { ++ fprintf(stderr, "error selecting extended events\n"); ++ return 0; ++ } ++ } ++ return number; ++} ++ ++ ++ ++static void sdlinput_register_lightguns(running_machine *machine) ++{ ++ int index; ++ XExtensionVersion *version; ++ ++ lightgun_enabled = options_get_bool(mame_options(), OPTION_LIGHTGUN); ++ devmap_init(machine, &lightgun_map, SDLOPTION_LIGHTGUNINDEX, 8, "Lightgun mapping"); ++ ++ XDisplay = XOpenDisplay(NULL); ++ ++ if (XDisplay == NULL) { ++ fprintf(stderr, "Unable to connect to X server\n"); ++ return; ++ } ++ ++ version = XGetExtensionVersion(XDisplay, INAME); ++ ++ if (!version || (version == (XExtensionVersion*) NoSuchExtension)) { ++ fprintf(stderr, "xinput extension not available!\n"); ++ return; ++ } ++ ++ ++ for (index=0; index<8; index++) { ++ XDeviceInfo *info; ++ if (strlen(lightgun_map.map[index].name)!=0) { ++ device_info *devinfo; ++ char *name=lightgun_map.map[index].name; ++ char defname[512]; ++ devinfo = devmap_class_register(machine, &lightgun_map, index, &lightgun_list, DEVICE_CLASS_LIGHTGUN); ++ fprintf(stderr, "%i: %s\n",index, name); ++ info=find_device_info(XDisplay, name, 0); ++ if (!info) continue; ++ ++ //Grab device info and translate to stuff mame can use ++ if (info->num_classes > 0) { ++ XAnyClassPtr any = (XAnyClassPtr) (info->inputclassinfo); ++ int i; ++ for (i=0; inum_classes; i++) { ++ int button; ++ XValuatorInfoPtr v; ++ XAxisInfoPtr a; ++ int j; ++ XButtonInfoPtr b; ++ switch (any->c_class) { ++ case ButtonClass: ++ b = (XButtonInfoPtr) any; ++ for (button = 0; button < b->num_buttons; button++) ++ { ++ input_item_id itemid; ++ sprintf(defname, "B%d", button + 1); ++ itemid=(input_item_id) (ITEM_ID_BUTTON1+button); ++ input_device_item_add(devinfo->device, defname, &devinfo->lightgun.buttons[button], itemid, generic_button_get_state); ++ } ++ break; ++ case ValuatorClass: ++ v = (XValuatorInfoPtr) any; ++ a = (XAxisInfoPtr) ((char *) v + sizeof (XValuatorInfo)); ++ for (j=0; jnum_axes; j++, a++) { ++ if (j==0) { ++ devinfo->lightgun.maxx=a->max_value; ++ devinfo->lightgun.minx=a->min_value; ++ } ++ if (j==1) { ++ devinfo->lightgun.maxy=a->max_value; ++ devinfo->lightgun.miny=a->min_value; ++ } ++ } ++ break; ++ } ++ any = (XAnyClassPtr) ((char *) any + any->length); ++ } ++ } ++ ++ ++ sprintf(defname, "X %s", devinfo->name); ++ input_device_item_add(devinfo->device, defname, &devinfo->lightgun.lX, ITEM_ID_XAXIS, generic_axis_get_state); ++ sprintf(defname, "Y %s", devinfo->name); ++ input_device_item_add(devinfo->device, defname, &devinfo->lightgun.lY, ITEM_ID_YAXIS, generic_axis_get_state); ++ ++ ++ devinfo->lightgun.deviceid=info->id; ++ if (!info) { ++ fprintf(stderr, "Can't find device %s!\n", lightgun_map.map[index].name); ++ } else { ++ fprintf(stderr, "Device %i: Registered %i events.\n",(int)info->id, register_events(XDisplay, info, lightgun_map.map[index].name, 0)); ++ } ++ } ++ } ++ mame_printf_verbose("Lightgun: End initialization\n"); ++} ++ ++device_info *get_lightgun_info_for_deviceid(XID deviceid) { ++ device_info *devinfo; ++ int index; ++ //Find lightgun according to device id ++ for (index=0; ; index++) { ++ devinfo = generic_device_find_index(lightgun_list, index); ++ if (devinfo==NULL) break; ++ if (devinfo->lightgun.deviceid==deviceid) break; ++ } ++ return devinfo; ++} ++ ++int normalize_absolute_axis(int raw, int rawmin, int rawmax) ++{ ++ int center = (rawmax + rawmin) / 2; ++ ++ // make sure we have valid data ++ if (rawmin >= rawmax) ++ return raw; ++ ++ // above center ++ if (raw >= center) ++ { ++ int result = (long)(raw - center) * (long)INPUT_ABSOLUTE_MAX / (long)(rawmax - center); ++ return MIN(result, INPUT_ABSOLUTE_MAX); ++ } ++ ++ // below center ++ else ++ { ++ int result = -((long)(center - raw) * (long)-INPUT_ABSOLUTE_MIN / (long)(center - rawmin)); ++ return MAX(result, INPUT_ABSOLUTE_MIN); ++ } ++} ++ + + //============================================================ + // sdlinput_register_joysticks +@@ -1115,6 +1385,9 @@ void sdlinput_init(running_machine *mach + // register the mice + sdlinput_register_mice(machine); + ++ // register the lightguns ++ sdlinput_register_lightguns(machine); ++ + if (machine->debug_flags & DEBUG_FLAG_OSD_ENABLED) + { + mame_printf_warning("Debug Build: Disabling input grab for -debug\n"); +@@ -1131,6 +1404,7 @@ void sdlinput_init(running_machine *mach + device_list_reset_devices(keyboard_list); + device_list_reset_devices(mouse_list); + device_list_reset_devices(joystick_list); ++ device_list_reset_devices(lightgun_list); + + } + +@@ -1248,6 +1522,7 @@ void sdlinput_poll(running_machine *mach + device_info *devinfo; + SDL_Event event; + int index; ++ XEvent xevent; + + // only for SDLMAME_EVENTS_IN_WORKER_THREAD + SDL_Event loc_event_buf[MAX_BUF_EVENTS]; +@@ -1263,6 +1538,21 @@ void sdlinput_poll(running_machine *mach + devinfo->mouse.lY = 0; + } + ++ //Get XInput events ++ while (XPending(XDisplay)!=0) { ++ XNextEvent(XDisplay, &xevent); ++ if (xevent.type==motion_type) { ++ XDeviceMotionEvent *motion = (XDeviceMotionEvent *) &xevent; ++ devinfo=get_lightgun_info_for_deviceid(motion->deviceid); ++ devinfo->lightgun.lX=normalize_absolute_axis(motion->axis_data[0], devinfo->lightgun.minx, devinfo->lightgun.maxx); ++ devinfo->lightgun.lY=normalize_absolute_axis(motion->axis_data[1], devinfo->lightgun.miny, devinfo->lightgun.maxy); ++ } else if (xevent.type==button_press_type || xevent.type==button_release_type) { ++ XDeviceButtonEvent *button = (XDeviceButtonEvent *) &xevent; ++ devinfo=get_lightgun_info_for_deviceid(button->deviceid); ++ devinfo->lightgun.buttons[button->button]=(xevent.type==button_press_type)?0x80:0; ++ } ++ } ++ + if (SDLMAME_EVENTS_IN_WORKER_THREAD) + { + osd_lock_acquire(input_lock); +diff -BNburp mame-org/src/osd/sdl/osdsdl.h mame-wiimote/src/osd/sdl/osdsdl.h +--- mame-org/src/osd/sdl/osdsdl.h 2010-02-12 14:42:32.000000000 +0100 ++++ mame-wiimote/src/osd/sdl/osdsdl.h 2010-05-07 08:53:34.000000000 +0200 +@@ -130,3 +130,4 @@ void sdlaudio_init(running_machine *mach + extern int sdl_num_processors; + + #endif ++#define SDLOPTION_LIGHTGUNINDEX "lightgun_index" +diff -BNburp mame-org/src/osd/sdl/sdlmain.c mame-wiimote/src/osd/sdl/sdlmain.c +--- mame-org/src/osd/sdl/sdlmain.c 2010-02-13 12:19:16.000000000 +0100 ++++ mame-wiimote/src/osd/sdl/sdlmain.c 2010-05-07 08:54:03.000000000 +0200 +@@ -190,6 +190,17 @@ static const options_entry mame_sdl_opti + { SDLOPTION_JOYINDEX "8", SDLOPTVAL_AUTO, 0, "name of joystick mapped to joystick #8" }, + { SDLOPTION_SIXAXIS, "0", OPTION_BOOLEAN, "Use special handling for PS3 Sixaxis controllers" }, + ++ { NULL, NULL, OPTION_HEADER, "SDL LIGHTGUN MAPPING" }, ++ { SDLOPTION_LIGHTGUNINDEX "1", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #1" }, ++ { SDLOPTION_LIGHTGUNINDEX "2", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #2" }, ++ { SDLOPTION_LIGHTGUNINDEX "3", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #3" }, ++ { SDLOPTION_LIGHTGUNINDEX "4", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #4" }, ++ { SDLOPTION_LIGHTGUNINDEX "5", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #5" }, ++ { SDLOPTION_LIGHTGUNINDEX "6", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #6" }, ++ { SDLOPTION_LIGHTGUNINDEX "7", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #7" }, ++ { SDLOPTION_LIGHTGUNINDEX "8", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #8" }, ++ ++ + #if (SDL_VERSION_ATLEAST(1,3,0)) + { NULL, NULL, OPTION_HEADER, "SDL MOUSE MAPPING" }, + { SDLOPTION_MOUSEINDEX "1", SDLOPTVAL_AUTO, 0, "name of mouse mapped to mouse #1" }, +diff -BNburp mame-org/src/osd/sdl/window.c mame-wiimote/src/osd/sdl/window.c +--- mame-org/src/osd/sdl/window.c 2010-02-12 07:40:12.000000000 +0100 ++++ mame-wiimote/src/osd/sdl/window.c 2010-05-07 08:54:54.000000000 +0200 +@@ -659,8 +659,17 @@ static void sdlwindow_update_cursor_stat + } + + #else ++ //Hack for wii-lightguns: they stop working with a grabbed mouse; even a ShowCursor(SDL_DISABLE) already ++ //does this. To make the cursor disappear, we'll just set an empty cursor image. ++ unsigned char data[]={0,0,0,0,0,0,0,0}; ++ SDL_Cursor *c; ++ c=SDL_CreateCursor(data, data, 8, 8, 0, 0); ++ SDL_SetCursor(c); ++ ++ + // do not do mouse capture if the debugger's enabled to avoid + // the possibility of losing control ++/* + if (!(machine->debug_flags & DEBUG_FLAG_OSD_ENABLED)) + { + if ( window->fullscreen || sdlinput_should_hide_mouse(machine) ) +@@ -680,6 +689,7 @@ static void sdlwindow_update_cursor_stat + } + } + } ++*/ + #endif + } + -- cgit v0.12