Commit Graph

141 Commits

Author SHA1 Message Date
Daniel Pavel 55ca9927b0 python 2/3: fix handling of first argument (unicode) of pack/unpack 2013-05-06 16:50:17 +02:00
Daniel Pavel 0283bb0e91 fix str/unicode detection in Python 3.2 2013-05-06 15:33:42 +02:00
Daniel Pavel d39c0995b6 Merge remote-tracking branch 'origin/master' 2013-05-06 14:55:21 +02:00
Daniel Pavel db4c088ce9 Merge pull request #37 from Lekensteyn/py3-compat
Py3 compat: replace use of "unicode" (pwr/Solaar#32)

The `u''` syntax fails in Python 3.2; will fix is_string after the merge.
2013-05-06 05:54:53 -07:00
Daniel Pavel a4898e24b7 extended documentation of descriptors and registers 2013-05-06 14:51:57 +02:00
Daniel Pavel 1f48e44cc6 Merge remote-tracking branch 'origin/master' 2013-05-04 20:20:43 +02:00
Daniel Pavel 9d8743e765 comment-out descriptor settings for Anywhere MX, not actually tested 2013-05-04 20:18:10 +02:00
Peter Wu 2327a0012e descriptors.py: Clarify use of negative values
The negative behavior is not obvious, document it in the descriptors.py file
such that people who edit it to add new devices know how it works.
2013-05-04 20:02:37 +02:00
Daniel Pavel e819265e7e fix automatic register blacklisting 2013-05-04 19:50:08 +02:00
Daniel Pavel d7dd9393ff minor clean-ups 2013-05-04 17:19:48 +02:00
Daniel Pavel 64c36a1562 updated descriptors table and the devices doc 2013-05-04 17:18:39 +02:00
Daniel Pavel 13a54565ba cleaned-up the descriptors table 2013-05-04 15:09:50 +02:00
Daniel Pavel ad577d22d0 handle sleep in udev monitoring, fixes #35 2013-05-04 12:19:29 +02:00
Peter Wu 10c26fe642 Py3 compat: replace use of "unicode" (pwr/Solaar#32)
Generating "an unknown notification" type bailed out because of an unknown
feature type None. Since `isinstance(other, str)` is False for None, the script
will raise an exception on `isinstance(other, unicode)`.

There is no differentiation between `str` and `bytes` in Python 2, therefore
add another condition to `NamedInt.__eq__` to catch unknown types (like
`bytes`).
2013-05-03 23:46:46 +02:00
Daniel Pavel 2ee2a5dc46 Merge remote-tracking branch 'origin/master' 2013-05-03 17:08:32 +02:00
Daniel Pavel 430fdf4fcf initial support for the MOUSE_POINTER hid++2.0 feature 2013-05-03 17:08:26 +02:00
Daniel Pavel a0a76f738b assert that data read/written on the receiver handle is of type bytes 2013-05-03 16:35:28 +02:00
Peter Wu 266edd80f3 Process reg07 battery notification 2013-05-03 00:10:58 +02:00
Peter Wu d1b1be32ca Make read_battery use set_battery_info
This allows battery readouts to generate warnings and debug logs for a given
status and level.
2013-05-02 23:56:08 +02:00
Peter Wu fbdd923d43 Refactor battery info update
- `self[BATTERY_STATUS] = BATTERY_STATUS[battery_status]` should be:
  `self[BATTERY_STATUS] = _hidpp20.BATTERY_STATUS[battery_status]`, otherwise
  the battery status would be a single char from the string `battery-status`.
- Make `_hidpp20.BATTERY_OK` check against strings instead of a number.
- Move setting battery information to a separate function, `set_battery_info`.
  This prepares for notifications when a battery error/warning occurs.
2013-05-02 23:51:40 +02:00
Peter Wu d8e469a33a hidpp10: split reg07 (battery) parsing so it can be reused 2013-05-02 23:06:45 +02:00
Daniel Pavel 0f80901bce quicker detection of matching receivers in udev 2013-05-02 11:11:53 +02:00
Daniel Pavel c829304e31 use only udev events to detect receiver devices 2013-05-01 15:47:23 +02:00
Daniel Pavel d3f94ff2fb detect some HID++1.0 custom battery notifications
they're not handled yet
2013-05-01 11:36:15 +02:00
Daniel Pavel 04db6d3838 python 3 fixes for #29 2013-04-30 22:31:06 +02:00
Daniel Pavel feedbcf581 some code clean-ups 2013-04-28 15:16:45 +02:00
Daniel Pavel a57f3be58d renamed event alert levels to be more clear 2013-04-28 15:12:20 +02:00
Daniel Pavel 897dffc426 only dispatch notification events from the specialized listener thread 2013-04-28 15:09:09 +02:00
Daniel Pavel 6f0b61e6d8 better handling of eq/ne/hash in receiver and device objects 2013-04-28 15:02:17 +02:00
Daniel Pavel 674ee9ac9e split read_battery in status into its own function 2013-04-28 15:01:27 +02:00
Daniel Pavel 5eab013cf6 more explicit logging 2013-04-28 14:58:40 +02:00
Daniel Pavel 079ef8d800 incipient support for the Nano receiver 2013-04-28 14:27:16 +02:00
Daniel Pavel c4dc49ac5e Merge pull request #24 from Lekensteyn/hid10-fnkey
Add FN key swap support for K800 (and presumably K710)
2013-04-28 02:03:33 -07:00
Peter Wu 5e58f1e273 Fix battery status reading, add "fully charged"
Commit 438c501fae introduced support for HID++ 1.0
battery information. That accidentally selected the third parameter instead of
the second one. This commit fixes that and additionally adds a "fully charged"
status too that was found on the K800.
2013-04-27 17:07:55 +02:00
Peter Wu c79ad65d37 Add K710 with FN key swap support (pwr/Solaar#18)
The K710 keyboard is (according to the issue reporter) part of a MK710 combo
(which also contains a M705 mouse). Observing a succesful 07 register read,
I think that it is a HID++ 1.0 device too that uses the same register for FN
key swapping as K800.
2013-04-27 15:17:05 +02:00
Peter Wu 95a97ad776 Support FN keys swap for K800 2013-04-27 15:13:42 +02:00
Peter Wu 6c28cedf23 Make BooleanValidator accept bytes too besides int
Previously, only the first parameter byte can be read or written. After this
patch, it is possible to select/write more bytes by specifying a mask of type
bytes with the appropriate length.
2013-04-27 15:12:55 +02:00
Peter Wu 438c501fae Parse battery status of HID++ 1.0 devices
This applies to K800 but it seems also to apply to M510. The numbers are based
on the HID++ 2.0 spec that state the following for GetBatteryCapability:

    If number of levels < 10 or if mileage is disabled then report are
    mapped to 4 levels this way.

    0%->10%     critical
    11%->30%    low
    31%->80%    good
    81%->100%   full

    i.e. to report battery low, FW send 25%, to report battery good, FW send 50%.
2013-04-27 11:58:09 +02:00
Daniel Pavel 7707c5e558 don't notify on device disconnection 2013-01-18 17:41:45 +02:00
Daniel Pavel 2e51380be5 log value of register 0x07 when register 0x0D not available 2013-01-18 12:41:01 +02:00
Daniel Pavel 581d6747ad Merge branch 'nano' into 0.9
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2013-01-09 21:10:39 +02:00
Daniel Pavel 79a9048db5 fixed names for NamedInts numerical values 2013-01-09 15:31:19 +02:00
Daniel Pavel 738d43fd83 fix for gihub issue #10
http://github.com/pwr/Solaar/issues/10
2013-01-07 20:14:31 +02:00
Daniel Pavel 36f34da227 proper debian packaging, dropper stdeb 2013-01-05 11:48:35 +02:00
Daniel Pavel 064a7a113c added setup.py for python and debian packaging 2012-12-18 05:03:43 +02:00
Daniel Pavel 430a2d71e3 read all device features as soon as the application is idle 2012-12-14 19:51:18 +02:00
Daniel Pavel e43e92f2b0 commented-out testing register for M705 2012-12-14 16:57:10 +02:00
Daniel Pavel cc6c0ee7df fix for python3 2012-12-14 16:25:46 +02:00
Daniel Pavel f0c5046ccf re-worked the settings classes 2012-12-14 06:44:44 +02:00
Daniel Pavel 9db2a65b31 solaar-cli: return on the first match when searching for device name
results may be occasionally ambiguous, but the command runs faster
2012-12-13 15:12:51 +02:00