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
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
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
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
Daniel Pavel
802da6a21a
clean-ups
2012-11-02 07:21:55 +02:00
Daniel Pavel
1d8ac27614
clean-up and simpler monitoring of receiver state
2012-11-01 13:47:11 +02:00
Daniel Pavel
a8a72f7ae5
dropped the watcher thread
...
now the receiver is looked for and initialized on the application's main
thread
2012-11-01 06:30:29 +02:00
Daniel Pavel
e7bb599689
reworked the way tasks are processed by the listener
2012-10-27 18:40:54 +03:00
Daniel Pavel
62a91b56d2
logging and python3 cleanups
2012-10-24 15:09:39 +03:00
Daniel Pavel
60c13270f9
ui and pairing updates
2012-10-24 01:50:57 +03:00
Daniel Pavel
7354429316
fix for python3
2012-10-23 09:06:19 +03:00
Daniel Pavel
4f183b2826
added info box for the unifying receiver
2012-10-22 20:59:21 +03:00
Daniel Pavel
b10ade4430
initial implementation of pairing
2012-10-22 10:03:26 +03:00
Daniel Pavel
f2dac70131
reworked the receiver and devices into classes
2012-10-18 14:19:20 +03:00
Daniel Pavel
ec7ebb0939
fix a double-free when the receiver is removed
2012-10-13 19:55:44 +03:00
Daniel Pavel
371b874986
Packet __str__ fix
2012-10-13 18:30:00 +03:00
Daniel Pavel
e6d1244ed5
use a fully async model for updating the device statuses
2012-10-13 18:21:47 +03:00
Daniel Pavel
bca21a7220
use specialized namedtuple for events
2012-10-13 18:13:05 +03:00
Daniel Pavel
0255194b46
dropped firmware from standard device info
2012-10-12 04:36:13 +03:00
Daniel Pavel
5da2d43b1c
expanded devices database, commented out some unnecessary logging
2012-10-12 04:24:35 +03:00
Daniel Pavel
bc9f39873e
api function to query receiver info
2012-10-11 22:02:13 +03:00
Daniel Pavel
c9f06aa5da
clean-ups in LUR library
2012-10-11 18:38:57 +03:00
Daniel Pavel
f295d1d90e
tweaked the ui a bit
2012-10-11 16:46:49 +03:00
Daniel Pavel
e52bfe53a5
reorganized the app files a bit
2012-10-10 17:24:13 +03:00
Daniel Pavel
e34ad5104f
reworked the event listener
2012-10-10 06:37:03 +03:00
Daniel Pavel
9111afcd6b
small updates to the app
2012-10-09 15:13:31 +03:00
Daniel Pavel
9b2c1bdef6
fixes for python3
2012-10-09 12:31:46 +03:00
Daniel Pavel
257f74b496
cleaned-up the app a bit
2012-10-08 14:12:38 +03:00
Daniel Pavel
8ee2940106
cleanups in api
2012-10-07 20:19:57 +03:00
Daniel Pavel
4f8e983843
some cleanups in base
2012-10-07 16:45:44 +03:00
Daniel Pavel
cb3a42c04e
greatly simplified loading of icons
2012-10-05 02:39:32 +03:00
Daniel Pavel
9ba6aa1c31
added a devices status window
2012-10-04 01:36:43 +03:00
Daniel Pavel
7ba3a6fe70
made hidapi a package
2012-10-03 08:42:40 +03:00
Daniel Pavel
73460c2541
fixed some typos
2012-09-28 14:10:56 +03:00
Daniel Pavel
d65c1dbf59
some clean-ups in the logitech library
2012-09-28 13:58:17 +03:00
Daniel Pavel
0fe3151051
added a cli tool for scanning the UR devices
2012-09-28 10:34:49 +03:00
Daniel Pavel
4100e8c625
small clean-ups
2012-09-28 00:59:03 +03:00
Daniel Pavel
4da3c09949
updated lib and application to work both python 2 and 3
2012-09-27 21:17:49 +03:00
Daniel Pavel
51bdea32d5
some library cleanups
2012-09-27 16:05:41 +03:00
Daniel Pavel
692ea58937
raise NoReceiver if the receiver is removed during read
2012-09-27 15:52:42 +03:00
Daniel Pavel
05560d8af4
solaar app functional now
2012-09-27 14:55:38 +03:00