diff --git a/ChangeLog b/ChangeLog index aeec7af..4b6c997 100644 --- a/ChangeLog +++ b/ChangeLog @@ -42,3 +42,6 @@ report any regressions. * Add Solaris detection and remove locks if detected. Solaris' libUSB blocks on read, forcing mutexes causes writes to block too. +1.2.6 +* Re-Add 5BYTE_RETURN flag. Auto-detect does not work with Solaris' libusb. +* Add laptop GamePanel support. diff --git a/README b/README index d8844c2..330f732 100644 --- a/README +++ b/README @@ -6,3 +6,4 @@ LibG15 currently supports LCD & keys on the following devices: - G11 keyboard - Z10 speakers - 2nd revision of the G15 (amber backlight, 6 'G' keys, LCD) +- Gamepanel available on some laptops diff --git a/configure b/configure index b1d1147..47123ee 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for libg15 1.2.5. +# Generated by GNU Autoconf 2.61 for libg15 1.2.6. # # Report bugs to . # @@ -728,8 +728,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='libg15' PACKAGE_TARNAME='libg15' -PACKAGE_VERSION='1.2.5' -PACKAGE_STRING='libg15 1.2.5' +PACKAGE_VERSION='1.2.6' +PACKAGE_STRING='libg15 1.2.6' PACKAGE_BUGREPORT='mlampard@users.sourceforge.net' ac_default_prefix=/usr @@ -1396,7 +1396,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libg15 1.2.5 to adapt to many kinds of systems. +\`configure' configures libg15 1.2.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1467,7 +1467,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libg15 1.2.5:";; + short | recursive ) echo "Configuration of libg15 1.2.6:";; esac cat <<\_ACEOF @@ -1569,7 +1569,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libg15 configure 1.2.5 +libg15 configure 1.2.6 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1583,7 +1583,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libg15 $as_me 1.2.5, which was +It was created by libg15 $as_me 1.2.6, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2401,7 +2401,7 @@ fi # Define the identity of the package. PACKAGE='libg15' - VERSION='1.2.5' + VERSION='1.2.6' cat >>confdefs.h <<_ACEOF @@ -20756,7 +20756,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libg15 $as_me 1.2.5, which was +This file was extended by libg15 $as_me 1.2.6, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20809,7 +20809,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -libg15 config.status 1.2.5 +libg15 config.status 1.2.6 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.in b/configure.in index ae06382..83045c5 100644 --- a/configure.in +++ b/configure.in @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT(libg15, 1.2.5, mlampard@users.sourceforge.net) +AC_INIT(libg15, 1.2.6, mlampard@users.sourceforge.net) AC_PREFIX_DEFAULT(/usr) AC_CONFIG_AUX_DIR(config) AC_CANONICAL_TARGET() diff --git a/debian/changelog b/debian/changelog index c022813..496912f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,25 @@ +libg15 1.2.6 edgy; urgency=low + * Re-Add 5BYTE_RETURN flag. Auto-detect does not work with Solaris' libusb. + * Add laptop GamePanel support. + +libg15 1.2.5 edgy; urgency=low + * Remove 5BYTE_RETURN flag and process key packets based on length. Please + report any regressions. + * Add Solaris detection and remove locks if detected. Solaris' libUSB + blocks on read, forcing mutexes causes writes to block too. + +libg15 1.2.4 edgy; urgency=low + * Turns out that the newer G15's have a different (5 byte) keyboard protocol. + * Optimise dumpPixmapIntoLCDFormat routine - Thanks to Adam Nielsen + +libg15 1.2.3 edgy; urgency=low + * Add support for the newer G15 keyboards which have amber backlights and + six 'G' keys. + +libg15 1.2.2 edgy; urgency=low + * Add support for the logitech Z-10 speakers - many thanks to Dwayne Fontenot for + detailed information and debugging. + libg15 (1.2.1) edgy; urgency=low * Add debugging function to enable/disable extra output * All debugging output is now prefixed with libg15 to aid localising diff --git a/debian/changelog~ b/debian/changelog~ new file mode 100644 index 0000000..c6e691b --- /dev/null +++ b/debian/changelog~ @@ -0,0 +1,56 @@ +libg15 1.2.6 edgy; urgency=low +* Re-Add 5BYTE_RETURN flag. Auto-detect does not work with Solaris' libusb. +* Add laptop GamePanel support. + +libg15 1.2.5 edgy; urgency=low +* Remove 5BYTE_RETURN flag and process key packets based on length. Please + report any regressions. +* Add Solaris detection and remove locks if detected. Solaris' libUSB + blocks on read, forcing mutexes causes writes to block too. + +libg15 1.2.4 edgy; urgency=low +* Turns out that the newer G15's have a different (5 byte) keyboard protocol. +* Optimise dumpPixmapIntoLCDFormat routine - Thanks to Adam Nielsen + +libg15 1.2.3 edgy; urgency=low +* Add support for the newer G15 keyboards which have amber backlights and + six 'G' keys. + +libg15 1.2.2 edgy; urgency=low + * Add support for the logitech Z-10 speakers - many thanks to Dwayne Fontenot for + detailed information and debugging. + +libg15 (1.2.1) edgy; urgency=low + * Add debugging function to enable/disable extra output + * All debugging output is now prefixed with libg15 to aid localising + problems. + * debugging function now also controls libusb debugging output. + * Try to claim usb interface up to 10 times before failing + * Slow down initialisation, to allow keyboard to come out of usb + auto-suspend on newer kernels. + * Attempt to combat ENOSPC by slowing down writes to the lcd if ENOSPC is + received. Unless that error occurs at least once, transfers are sent as normal. + * Add function to change keyboard backlight (independant of lcd backlight). + * Add re-initialising function, which will attempt to reconnect a keyboard + that was previously removed and replugged. + * libg15 now uses pthread mutexes to force sequential access to the bus via + libusb. Control message URBs are no longer being lost if sent by a different + thread in the middle of a screen transfer etc. + * Reset the keyboard before init to ensure correct initialisation on + kernels > 2.6.19 + +libg15 (1.1.1-1) edgy; urgency=low + + * Add basic support for the G11 keyboard + * revert all bulk transfers - bulk transfers are illegal for low-speed + devices, and cause -22 (EINVAL) warnings on new kernels. + * pass most errors to the client app. + + -- Anthony J. Mirabella Fri, 15 Dec 2006 05:17:49 -0500 + +libg15 (1.0-1) breezy; urgency=low + + * Initial release + + -- Anthony J. Mirabella Sun, 24 Sep 2006 22:57:06 -0400 + diff --git a/debian/control b/debian/control index 9eb0d94..e5ce722 100644 --- a/debian/control +++ b/debian/control @@ -1,6 +1,6 @@ Source: libg15 Priority: optional -Maintainer: Anthony J. Mirabella +Maintainer: Mike Lampard Build-Depends: debhelper (>= 4.0.0), autotools-dev, libusb-dev Standards-Version: 3.6.2 Section: libs diff --git a/debian/control~ b/debian/control~ new file mode 100644 index 0000000..9eb0d94 --- /dev/null +++ b/debian/control~ @@ -0,0 +1,21 @@ +Source: libg15 +Priority: optional +Maintainer: Anthony J. Mirabella +Build-Depends: debhelper (>= 4.0.0), autotools-dev, libusb-dev +Standards-Version: 3.6.2 +Section: libs + +Package: libg15-dev +Section: libdevel +Architecture: any +Depends: libg15 (= ${Source-Version}) +Description: Development packages for libg15 + Includes the files needed for developing software that uses libg15. + +Package: libg15 +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Library for interfacing with the Logitech G15 Keyboard + Provides for low-level control of the lcd and extra keys on the + Logitech G15 keyboard. diff --git a/libg15.c b/libg15.c index fddfe59..dbb4279 100644 --- a/libg15.c +++ b/libg15.c @@ -17,7 +17,7 @@ (c) 2006-2007 The G15tools Project - g15tools.sf.net - $Revision: 278 $ - $Date: 2008-01-02 14:26:25 +1030 (Wed, 02 Jan 2008) $ $Author: mlampard $ + $Revision: 282 $ - $Date: 2008-01-20 06:32:00 +1030 (Sun, 20 Jan 2008) $ $Author: mlampard $ */ #include @@ -45,7 +45,8 @@ const libg15_devices_t g15_devices[] = { DEVICE("Logitech G15",0x46d,0xc222,G15_LCD|G15_KEYS), DEVICE("Logitech G11",0x46d,0xc225,G15_KEYS), DEVICE("Logitech Z-10",0x46d,0x0a07,G15_LCD|G15_KEYS|G15_DEVICE_IS_SHARED), - DEVICE("Logitech G15 v2",0x46d,0xc227,G15_LCD|G15_KEYS), + DEVICE("Logitech G15 v2",0x46d,0xc227,G15_LCD|G15_KEYS|G15_DEVICE_5BYTE_RETURN), + DEVICE("Logitech Gamepanel",0x46d,0xc251,G15_LCD|G15_KEYS|G15_DEVICE_IS_SHARED), DEVICE(NULL,0,0,0) }; @@ -777,6 +778,11 @@ int getPressedKeys(unsigned int *pressed_keys, unsigned int timeout) if(buffer[0] == 1) return G15_ERROR_TRY_AGAIN; } + + if(g15DeviceCapabilities() & G15_DEVICE_5BYTE_RETURN) { + processKeyEvent5Byte(pressed_keys, buffer); + return G15_NO_ERROR; + } switch(ret) { case 5: diff --git a/libg15.h b/libg15.h index 63f46f0..f501014 100644 --- a/libg15.h +++ b/libg15.h @@ -17,7 +17,7 @@ (c) 2006 - 2007 The G15tools Project - g15tools.sf.net - $Revision: 273 $ - $Date: 2007-11-25 17:14:21 +1030 (Sun, 25 Nov 2007) $ $Author: mlampard $ + $Revision: 280 $ - $Date: 2008-01-19 22:11:05 +1030 (Sat, 19 Jan 2008) $ $Author: mlampard $ */ #ifndef _LIBG15_H_ @@ -31,6 +31,7 @@ extern "C" #define G15_LCD 1 #define G15_KEYS 2 #define G15_DEVICE_IS_SHARED 4 +#define G15_DEVICE_5BYTE_RETURN 8 typedef struct libg15_devices_t libg15_devices_t; diff --git a/rpm/libg15.spec b/rpm/libg15.spec index e389292..b8a5d82 100644 --- a/rpm/libg15.spec +++ b/rpm/libg15.spec @@ -3,11 +3,11 @@ %define prefix /usr Summary: library to control logitech G15 keyboards Name: libg15 -Version: 1.2.5 +Version: 1.2.6 Release: 1 Copyright: GPL Group: Applications/System -Source: http://prdownloads.sourceforge.net/g15tools/libg15-1.2.5.tar.bz2 +Source: http://prdownloads.sourceforge.net/g15tools/libg15-1.2.6.tar.bz2 URL: http://sourceforge.net/projects/g15tools Distribution: Linux Vendor: NONE diff --git a/rpm/libg15.spec~ b/rpm/libg15.spec~ new file mode 100644 index 0000000..e389292 --- /dev/null +++ b/rpm/libg15.spec~ @@ -0,0 +1,65 @@ +# libg15 rpm spec file +# +%define prefix /usr +Summary: library to control logitech G15 keyboards +Name: libg15 +Version: 1.2.5 +Release: 1 +Copyright: GPL +Group: Applications/System +Source: http://prdownloads.sourceforge.net/g15tools/libg15-1.2.5.tar.bz2 +URL: http://sourceforge.net/projects/g15tools +Distribution: Linux +Vendor: NONE +Packager: Mike Lampard +Buildroot: /var/tmp/libg15-%{PACKAGE_VERSION}-root +Requires: libusb +BuildRequires: libusb-devel +Provides: libg15 + +%description +libg15 controls the G15 keyboard, providing applications access +to the keyboard's LCD display, and the additional keys available +on this keyboard. + +%package devel +Summary: libg15 controls the G15 keyboard and LCD. +Group: System Environment/Libraries +Requires: libusb +Requires: libg15 +Provides: libg15-devel + +%description devel +libg15 controls the G15 keyboard, providing applications access +to the keyboard's LCD display, and the additional keys available +on this keyboard. + +%prep +%setup + +%build +CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} +make + +%install +rm -rf $RPM_BUILD_ROOT +make DESTDIR=$RPM_BUILD_ROOT install + +%clean +rm -rf $RPM_BUILD_ROOT +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-, root, root) + +%doc AUTHORS COPYING NEWS README +%{prefix}/lib/lib*.la +%{prefix}/lib/libg15.so* + +%files devel +%defattr(-, root, root) + +%doc AUTHORS COPYING NEWS README +%{prefix}/lib/lib*.a +%{prefix}/include/*