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
Daniel Pavel
b39016df7c
small clean-ups in device status handling
2012-12-13 14:54:31 +02:00
Daniel Pavel
c22fe6320d
properly slice NamedInts
2012-12-13 05:26:56 +02:00
Daniel Pavel
b99ccdf612
support slices in FeaturesArray and KeysArray
2012-12-13 03:34:39 +02:00
Daniel Pavel
2d338ffbfb
better __str__ of Setting instances
2012-12-13 03:33:19 +02:00
Daniel Pavel
954fc29613
fix event storm when toggling a device's property
2012-12-12 22:55:04 +02:00
Daniel Pavel
27f10cd10e
small clean-up in FeaturesArray, should be slightly faster
2012-12-12 21:44:37 +02:00
Daniel Pavel
1c4d3d5f13
simpler NamedInt, more logical NamedInts
2012-12-12 21:42:43 +02:00
Daniel Pavel
7bb7a092a4
descriptors update (new device K230)
...
also assume by default all devices have battery info in register 0x0D,
and blacklist them when that's not the case
2012-12-12 21:41:29 +02:00
Daniel Pavel
0ed623caf9
made notifications handling clearer in status.py
2012-12-12 21:39:04 +02:00
Daniel Pavel
19cd40cfdd
renamed 'events' to 'notifications'
...
in order to match the name in Logitech's documentation
2012-12-12 21:03:07 +02:00
Daniel Pavel
17698bfeae
minor clean-ups in texts
2012-12-12 20:44:29 +02:00
Daniel Pavel
fa72b89b3a
release 0.8.3
2012-12-08 05:29:50 +02:00
Daniel Pavel
80c36a02a9
improved notifications detection
2012-12-08 01:49:59 +02:00
Daniel Pavel
d38bec39b6
improved hid++ support
2012-12-08 00:41:43 +02:00
Daniel Pavel
30fedf418c
re-read device settings when they come back online
2012-12-07 21:00:36 +02:00
Daniel Pavel
ee16892481
fixed registers access
2012-12-07 20:38:24 +02:00
Daniel Pavel
e2909f6165
fixed event detection
2012-12-07 20:37:13 +02:00
Daniel Pavel
b86dcce381
I come from the __future__, come with me if you want to live.
2012-12-07 17:10:22 +02:00
Daniel Pavel
c4be58f074
dropped bin/scan as deprecated, bin/solaar-cli completely replaces it
2012-12-07 15:31:19 +02:00
Daniel Pavel
b3f0bfa4fb
fixed obsolete import
2012-12-07 14:41:00 +02:00
Daniel Pavel
67db483b0b
dropped the unittests, they've been obsolete and nonfunctional for a long time now
2012-12-07 14:00:28 +02:00
Daniel Pavel
3569489ce7
added registers and settings to device descriptors
2012-12-07 13:54:03 +02:00
Daniel Pavel
9066003240
named ints act like proper sequences now
2012-12-07 13:50:44 +02:00
Daniel Pavel
ff6db1d00a
fix for python 3
2012-12-06 14:15:28 +02:00
Daniel Pavel
27403a08d2
improved hid++ 1.0 support
2012-12-05 21:41:02 +02:00
Daniel Pavel
6d70d2aada
improved support for hid++ 1.0 devices
2012-12-05 15:10:41 +02:00
Daniel Pavel
5a99e55309
readme updates
2012-12-03 15:07:35 +02:00
Daniel Pavel
116ba72f37
fixed possible dangling weakrefs on start-up
2012-12-03 12:51:22 +02:00
Daniel Pavel
3fe9caf0e6
added solaar-cli for command-line operations
2012-12-03 11:34:35 +02:00
Daniel Pavel
2a44b0bb5b
fixed scan not seeing the devices
2012-12-01 22:34:52 +02:00
Daniel Pavel
1cc532d600
fixed orphaned weakrefs when unpairing a device
2012-12-01 19:12:53 +02:00
Daniel Pavel
8f5fa0cf9a
code clean-ups, the app starts faster now
2012-12-01 15:49:52 +02:00
Daniel Pavel
89c6904d69
fixed pairing (again), this time also tested it
2012-11-30 20:28:22 +02:00
Daniel Pavel
64d2b35ace
some clean-ups
2012-11-30 15:20:41 +02:00
Daniel Pavel
ab5e09db93
pairing fixes
2012-11-29 21:26:03 +02:00
Daniel Pavel
932a015e49
better battery icon in the systray
2012-11-29 20:13:53 +02:00
Daniel Pavel
d6b18cd426
python 3 fixes
2012-11-29 12:34:20 +02:00
Daniel Pavel
84540fb087
re-wrote most of the app, based on latest HID++ docs from Logitech
2012-11-29 04:10:16 +02:00
Daniel Pavel
5b8c983ab3
some speed tweaks to hidconsole batch mode
2012-11-24 22:49:15 +02:00
Daniel Pavel
13a11e78f0
added more known device names and kinds
2012-11-13 09:48:52 +02:00
Daniel Pavel
4c5cf85091
re-worked the UI a bit to give better info on devices status
2012-11-12 15:28:38 +02:00
Daniel Pavel
6db4deafee
python 3 fixes
2012-11-11 22:37:42 +02:00
Daniel Pavel
bcc2bf123e
fixed initialization sequence for newly detected devices
2012-11-11 20:11:30 +02:00
Daniel Pavel
50fedab19e
re-worked how fd handles are used in multi-threading
2012-11-11 17:03:13 +02:00
Daniel Pavel
4b2d8a8d5a
addded custom swids to feature calls
2012-11-09 09:20:28 +02:00
Daniel Pavel
a59ad221a1
improved support for HID 1.0 devices
2012-11-08 11:41:09 +02:00
Daniel Pavel
c9843e4408
properly implemented pinging a device
2012-11-08 11:39:56 +02:00
Daniel Pavel
8ae8d4502d
fixed some log messages
2012-11-07 22:32:55 +02:00
Daniel Pavel
5f6fd5a333
added codename for Performance MX mouse
2012-11-07 21:51:07 +02:00
Daniel Pavel
89205f0bbc
better matching of task replies
2012-11-07 21:29:06 +02:00
Daniel Pavel
d5dec5f7ec
logging fix
2012-11-07 21:14:50 +02:00
Daniel Pavel
f8d0beb471
don't forget the 6th device on scan
2012-11-07 20:41:14 +02:00
Daniel Pavel
4cb9b30466
use the first python version found when starting the scripts
2012-11-05 20:52:51 +02:00
Daniel Pavel
5c38c33374
notify in case of permissions problem on the hidraw device
2012-11-04 15:30:39 +02:00
Daniel Pavel
d5f8a4bc45
cleanup in the pyudev hidapi implementation, incremented app version
2012-11-03 07:49:10 +02:00
Daniel Pavel
8fc078bdaf
hidapi.enumerate() returns an iterable
2012-11-02 22:09:04 +02:00