92 Commits
Author SHA1 Message Date
Lutz Eichler 048c9eab5e Changed init of structures and removed serialNo from debugmsg 2017-06-19 16:58:28 +02:00
Lutz Eichler 77977cbb40 Merge branch 'frickler24-macrodelay' into testing 2017-06-18 19:38:17 +02:00
Lutz Eichler 4d3f9a40a1 Changed init of structures and removed serialNo from debugmsg 2017-06-18 19:34:14 +02:00
Lutz Eichler 1e3715e8e8 Merge branch 'frickler24-macrodelay' into testing 2017-06-17 14:42:08 +02:00
Lutz Eichler 0f6242eb2c Fixed typo in DAEMON.md and removed shellscript
The shellscript migmac.sh was initially used to migrate
existing macros in the config files from 4- to 5-element strings.

Because the algorithm now handles older and newer macro strings as well,
the script is no longer needed.
2017-06-17 14:39:23 +02:00
Lutz Eichler b675b32739 Avoid calling usleep with 0 (unpredictable time) 2017-06-17 13:58:17 +02:00
Lutz Eichler 8296895c9d Correct some typos in DAEMON.md 2017-06-17 13:35:18 +02:00
Lutz Eichler 793fe1221f Delete doublicated message when claiming interfaces with DEBUG on 2017-06-17 13:35:11 +02:00
Lutz Eichler a51a4e6e31 Perform sync between macro and colorization with thread list
The first implementation for macros with delay management
has stopped the colorization while playing the macro content.

This Version handles the macro playing different:
It starts a single thread for each macro when
the appropriate key is pressed.
All tasks are self-syncing via a linked list (FIFO).

One Todo is left: When playing macros, all other keyboard input
except modifyer keys is ignored. A \todo is set as comment
where to heal this if anyone finds out...

With the new coding some comments for existing code
and changes for better readability are made and typos
have been fixed.
2017-06-17 13:35:03 +02:00
Lutz Eichler ccd050c238 Unlock coloring while playing macros with delays
As a user mentioned, the colorization of the keyboard was stopped
while a macro with delays is played.

This was because the synchronisation block in input.c was over the whole
play-loop for the macro.
Now we have an unlock / lock sequence around all usleep calling for delay.

This has only minimal impact on the timeing behavior.
Test was a long running macro inclusive startings
"time cat" at the beginning and sending CTRL-D at the end.
Colorization was "shimmer" all over the keyboard,
so heavy load between GUI and daemon.

With this long macro before this commit, time-cmd gives:
real    0m40.087s   (between 40.080 and 40.087 in different runs)
user    0m0.000s
sys     0m0.000s

after changing the blocking for this critical section we get:
real    0m40.116s
user    0m0.000s
sys     0m0.000s
2017-06-17 13:34:52 +02:00
Lutz Eichler c646061c3e some refinements at macro-definition 2017-06-17 13:33:32 +02:00
Lutz Eichler ec0ae58172 keyaction corrected 2017-06-17 13:31:15 +02:00
Lutz Eichler 6c8ee484b2 solves conflict between macros with long delays and color-updates
When using long macros with very long delays
(eg delays recorded while you typed very slowly)
and there is parallel a color-update necessary,
you can get an error in usb.c
(device closed as the keyboard resets itself).

Reason for this is misuse of the usb protocol
(sending two commands/request to the KB instead of
alternating request/reply)
because of missing synchronization between the two threads.

So we need a sync mechanism between these threads.
The mechanism is an additional mutex (mmutex).

The disadvantage of that synchronization is that
updating the color information is delayed
until all macros have been processed
(this also applies to type-ahead with several macros).
In the case of rather short macros or those with small delays,
this is not noticeable; in the case of wave motions,
the effect is occasionally recognizable.

And yes, we should rewrite ckb-daemon...
2017-06-17 13:25:55 +02:00
Lutz Eichler efaaceb995 improve some GUI elements in combination with macro tab
There are some contraints in using the TAB area for configuration.
because of too many elements neccessary for the macro GUI,
The font size had been set to 12px fix.

If you find that is to small, you can change it by installing an
own stylesheet file and calling ckb with
ckb -stylesheet=<stylesheet-file>

The complete TAB area (better the surrounding areas) should be
redesigned...
2017-06-17 13:25:12 +02:00
Lutz Eichler ed0c997f2c change some styles for the macro tab 2017-06-17 13:25:03 +02:00
Lutz Eichler a21d33b7be use the new delay functions with macros
This implementation adds some UI Elements to the Binding tab.

When recording a macro, the timing (the time between changes the
Keyboard receives) are noted with the key values.

When saved with the detailled timing information, you may choose between
- running the macro witghout any delay
- running it with the standard delay
    - 0ms for the first 20 changes (normally 10 Keys),
    - then 30ms for up to 100 keys (200 status-changes)
    - and then 200ms for any further change)
- running the key delays, which had been recorded.

After recording (or after saving) you may change the timing values.
This might be useful, if you want to generate slow keystrokes, but you
do not want unneccessary long wait times (e.g. when sending longer macro
content to a virtual machine or a remote desktop tool, the maximum speed
is often too high. So include a short delay and all is fine).
2017-06-17 13:24:24 +02:00
Lutz Eichler 686a8be549 first steps in the UI for delays 2017-06-17 13:24:11 +02:00
Lutz Eichler 3c4c768ccc just insert radio buttons 2017-06-17 13:24:03 +02:00
Lutz Eichler f46e2ec363 just some comments
Some corrections and comments for the first steps in
the new GUI element for Keystroke-Delays.
2017-06-17 13:21:45 +02:00
Lutz Eichler 3e8846433a Add delay information between keys
While recording a macro, between each two key changes
the delay is recorded.
The format is +/-KEY=macrotime_in_usec.

The correct form ist adjusted when clicking "Stop".
2017-06-17 13:21:25 +02:00
Lutz Eichler 77517031e1 Add delay information between keys
While recording a macro, between each two key changes
the delay is recorded.
The format is +/-KEY=macrotime_in_usec.
2017-06-17 13:13:31 +02:00
Lutz Eichler 0da9e55ed9 Include <limits.h> in command.c and input.c 2017-06-17 13:12:15 +02:00
Lutz Eichler 339d0a7219 Add productID to the documentation in DAEMON.md 2017-06-17 09:23:37 +02:00
Lutz Eichler 1162a17c2a Add SCIMITARPRO version 1.10 productID 0x1b3e to FIRMWARE 2017-06-17 09:07:25 +02:00
Lutz Eichler 7e19b861b8 Run daemon and client with new FIRMWARE checks
In the past the connection between model of hardware
and the corresponding firmware version line
was made by the features of the hardware.
Because of several new hardware types,
this method did not work anymore for the newer types.

With this version the new FIRMWARE check is free for testing.

It depends on a new format of the FIRMWARE file
where in the last position a vendor number is added.
This vendor number identifies the device the firmware line is dedicated to.

Up to now tested is the correct detection of the line,
corresponding to the hardware model.
So the check, if new firmware version is available, is running.

Additionally tested is the function to upgrade firmware versions
for an M65RGB to 2.04
and an K95RGB to 2.05

How can you test it?
You will find in /dev/input/ckb<X>/fwversion the firmware version
the device show via USB (or similar path for maxOS).
If you patch the number, eg from 0204 to 0200, save the file (as root)
and restart the GUI
(definitly not the daemon, because the daemon will update the file again),
your GUI will show you the firmware-update window.

Update the Firmware and if it runs - fine.
2017-06-03 19:28:59 +02:00
Lutz Eichler 45daf71098 Run daemon and client with new FIRMWARE checks
In the past the connection between model of hardware and firmware version line
was made by the features of the hardware. Because of several new hardware
types, this method did not work anymore for the newer types.

With this version the new FIRMWARE check is first time running.
It depends on a new format of the FIRMWARE file
where in the last position a vendor number is added.
This vendor number identifies the device the firmware line is dedicated to.

ATTENTION:
=========
Up to now tested is the correct detection of the line,
corresponding to the hardware model.
So the check, if new firmware version is available, is running.

NOT TESTED at the moment is the function to upgrade firmware versions!
So be carefully with this.
2017-06-03 18:58:55 +02:00
Lutz Eichler 1d17cf68ae Change import code for reading FIRMWARE file 2017-06-03 18:49:04 +02:00
Lutz Eichler ddef26ae7e Switch to special FIRMWARE file of frickler24 2017-06-03 14:30:26 +02:00
Lutz Eichler b9c011c95e Add new 8th element in FIRMARE, signed by tatokis 2017-06-03 14:16:34 +02:00
Lutz Eichler 75fd2ab47b Add productID file in input directory 2017-06-03 13:41:28 +02:00
Lutz Eichler e54c9118cf Merge branch 'frickler24-master+184-Caps-Lock-indicator-does-not-remember-settings' 2017-05-24 10:05:47 +02:00
Lutz Eichler 40ff8c07e7 Fix init bug for indicator-keys
After a reboot of the GUI, the indicator keys have only responded
to settings in the Performance tab when one of the settings
has been changed.

The reason for this is in the initialization sequence to the daemon.
With the inotify command executed here,
the Notifychannel must obviously be preceded.

On the occasion a few methods were commented
according to doxygen standard.
Although they had nothing to do with the error,
they were analyzed during debugging.
2017-05-24 10:02:06 +02:00
Lutz Eichler 66cd7604f7 Merge branch 'frickler24-184-Caps-Lock-indicator-does-not-remember-settings' into testing 2017-05-24 09:58:21 +02:00
Lutz Eichler c9e4ae6cdd Merge branch 'version-0.2.8+testing' into 184-Caps-Lock-indicator-does-not-remember-settings
Just setting VERSION file to beta0.2.8+testing
2017-05-24 09:39:02 +02:00
Lutz Eichler 9be1c533b3 Set Version to 0.2.8+testing 2017-05-24 09:37:12 +02:00
Lutz Eichler 5c019868c7 Fix init bug for indicator-keys
After a reboot of the GUI, the indicator keys have only responded
to settings in the Performance tab when one of the settings
has been changed.

The reason for this is in the initialization sequence to the daemon.
With the inotify command executed here,
the Notifychannel must obviously be preceded.

On the occasion a few methods were commented
according to doxygen standard.
Although they had nothing to do with the error,
they were analyzed during debugging.
2017-05-21 19:46:12 +02:00
Lutz Eichler 638c391b0f Merge branch 'frickler24-testing-led_bug_K70RGBPro' into testing 2017-05-15 23:15:35 +02:00
Lutz Eichler 3b73e04557 Enable new compare buffer for K70 Lux RGB also 2017-05-15 23:07:01 +02:00
Lutz Eichler a6dc9262be Merge branch 'frickler24-testing-48-Segfault-with-K70-RGB-in-BIOS-mode' into testing 2017-05-15 21:27:02 +02:00
Lutz Eichler b139b0eb7e Merge branch 'testing-48-Segfault-with-K70-RGB-in-BIOS-mode' of https://github.com/frickler24/ckb-next into frickler24-testing-48-Segfault-with-K70-RGB-in-BIOS-mode 2017-05-15 21:25:06 +02:00
Lutz Eichler 0e3914f04e Revert "Add doxygen and travis-ci files"
This reverts commit f2ddc50a9a.
2017-05-15 21:21:13 +02:00
Lutz Eichler 711f8d2a32 Merge branch 'frickler24-testing-led_bug_K70RGBPro' into testing 2017-05-14 23:11:40 +02:00
Lutz Eichler d6dd586081 Change text to english in led_keyboard.c
There was a german text (Frage ... Antwort) in a debug message,
which is now translated to english (Request ... Reply).
2017-05-14 23:09:03 +02:00
Lutz Eichler a2b65081d0 Add reset of usb devices in case of misbehaving
In several cases we have seen error messages in the logfiles like

USBDEVFS_CONTROL failed cmd ckb-daemon rqt 33 rq 9 len 64 ret -110

[W] _start_dev (device.c:24): Unable to load firmware version/poll rate

[E] os_usbsend (via firmware.c:15): Connection timed out

or similar.

This happens if the device is in a status where the communication
between linux and device is corrupted. E.g. with an K95RGB one may
provoke the behavior by moving the poll-rate-switch, eg to BIOS mode.

This fix adds some USB-resets for the device if
either ioctls for getting infos give bad return values
or the device does not provide valuable information about endpoints,
version numbers etc.
2017-05-14 22:25:34 +02:00
Lutz Eichler 66f3074dec improve the behavior when modifying modes for RGB keyboards
Changing the operating modes for the RGB keyboards that provide this feature
(such as the K70RGB or the K95RGB) will result in massive disruptions
to the daemon and the keyboard itself.

A test matrix is stored in the corresponding issue # 48.

The settings here refer to the timeout before sending a USB message.
The timeout was previously 10ms and has been doubled.

Minor corrections and the clipping of the debug output
in a #define DEBUG were also committed here.
2017-05-14 22:24:15 +02:00
Lutz Eichler 9690437f16 fix issue 48 SIGSEGV with RGB Keyboards in BIOS mode
When switching K70RGB or K95RGB to BIOS mode, only one usb channel is provided
by the KB driver.
Because in usb_linux.c for all other modes the last channel is not used,
zero channels have to be initialized. this brings the daemon to a SIGSEGV.

While debugging this, sometimes the KB got informations which stopped the KB
completely from working. Only disconnecting + connecting worked,
no software-reset via the switch had been successful in this state.
When connecting a KB in this state to the daemon, 0 channels were detected.
These two special conditions (0 and 1 EP for an RGB device)
got special treatment in the code.
2017-05-14 22:21:50 +02:00
Lutz Eichler e9283b66e8 Merge branch 'frickler24-issue181-qInfo-not-defined' 2017-05-08 22:12:14 +02:00
Lutz Eichler 2e13969180 Define qInfo and others for Qt Version < 5.5
With this fix 4 definitions are implemented
to handle qWarning, qInfo, qCritical and qFatal.
All 4 functions are not know in Qt < 5.5 so comiplation will fail.
The functions are mapped via #defines to qDebug.

When testing that, another error occured with Qt 5.1,
because QCommandLineParser is not know in older versions.

So ckb.pro was updated to demand Qt5.2 at least.
2017-05-08 22:08:00 +02:00
Lutz Eichler f2ddc50a9a Add doxygen and travis-ci files 2017-05-08 21:58:42 +02:00
Lutz Eichler 9b95c74bfa Merge branch 'frickler24-issue181-qInfo-not-defined' into testing 2017-05-08 00:03:10 +02:00
Lutz Eichler 3341de720f Define qInfo and others for Qt Version < 5.5
With this fix 4 definitions are implemented
to handle qWarning, qInfo, qCritical and qFatal.
All 4 functions are not know in Qt < 5.5 so comiplation will fail.
The functions are mapped via #defines to qDebug.

When testing that, another error occured with Qt 5.1,
because QCommandLineParser is not know in older versions.

So ckb.pro was updated to demand Qt5.2 at least.
2017-05-07 19:54:32 +02:00
Lutz Eichler 80ea358eac Merge branch 'usb-related-comments' into testing 2017-05-06 23:11:29 +02:00
Lutz Eichler 23c4242f18 Revert "Add all files for doxygen automated with travis-ci"
This reverts commit c48b7bf41c94b17fd63ed1958df19b9d789001e4.
Now we have the comments without travis / doxygen additions.
2017-05-06 23:10:50 +02:00
Lutz Eichler e6a2d316c2 Add all files for doxygen automated with travis-ci 2017-05-06 23:10:50 +02:00
Lutz Eichler 8a794d0db3 Fix a few warnings from doxygen in the comments
In the logfiles you can find several warnings.
Most of them handle "\brief ." lines,
followed by an empty new line.
2017-05-06 23:10:50 +02:00
Lutz Eichler 4dbdc515b1 Add Comments for some of the usb parts in daemon
The comments are added in doxygen format.
The Generation of the doxygen output files
is not included in this commit.
This is handled in a separate branch.

The resulting documents are currenty visible
at https://frickler24.github.io/ckb-next/index.html
but maybe matter of change.
2017-05-06 23:10:50 +02:00
Lutz Eichler 198550de08 divided commenting code from changing log info
In this branch we just want to add comments to the code.
If there is something pure to correct the code
(as setting {}-pairs to clean up, declaring functions or
variables as static...), it will be done in this branch.

Additional debugging info or handling of return codes
is done in a separate branch.
Up to the last commit, these two things were intermixed.
With this commit, all code changes were eliminated.
2017-05-06 23:10:50 +02:00
Lutz Eichler 2e8ee25587 add some documentation again.
Some more details for the usb related functions are givenb in doxgen
format.
Additinally a new doxygen config file JustUSBfiles has been added.
A doxygen run with this config prepares only some of the files
in the directory <projectroot>/src/ckb-daemon for a better readability.
2017-05-06 23:10:50 +02:00
Lutz Eichler 4413d49f5d add some comments and debug info for wakeup bug detection
Some ckb_warn() statement are included to give debug information, when
something unexpected happens in the usb send and receive procs.

Minor changes to the code comments are integrated in this commit.
2017-05-06 23:10:50 +02:00
Lutz Eichler 9d8db862fb next comments 2017-05-06 23:10:50 +02:00
Lutz Eichler d448a738c3 next functions commented 2017-05-06 23:10:50 +02:00
Lutz Eichler 6f2fef7219 some more comments in the area of usb handling
usb.c, usb.h are full ready documented and parts of usb_linux.c.
several todos are marked and will be checked next.
2017-05-06 23:10:50 +02:00
Lutz Eichler 5cc3b729da first comments added 2017-05-06 23:10:50 +02:00
Lutz Eichler e08d1ba8e2 integrate doxygen documentation tool 2017-05-06 23:10:50 +02:00
Lutz Eichler 3f02027d8e Add an Info about storage for QSettings objects 2017-05-03 23:45:34 +02:00
Lutz Eichler f2f31f3823 Fix #160 for installation on linux
The path in the variable PREFIX is too short for linux,
so for linux its usage must be PREFIX/bin.
2017-05-03 18:34:52 +02:00
Lutz Eichler 4496795e99 change the default log comment 2017-02-26 23:38:59 +01:00
Lutz Eichler bb31d66eaf add restart-comment just as an option.
If the command is
echo "restart" >/dev/input/ckb1/cmd

or similar, a default comment "No text" is logged.

Otherwise a text containing more than one word is valid as comment:
echo "restart This is an urgent boot" >/dev/input/ckb1/cmd
2017-02-26 23:12:18 +01:00
Lutz Eichler f9c1c632f0 fixed some typos, new function name for better readybility 2017-02-26 18:42:55 +01:00
Lutz Eichler 64bebfef17 implements a function to restart the daemon by command or signal
Because sometimes tho communication between daemon and KB is corrupted
after resuming from Standby or suspend, a restart function is
implemented.
It first calls the quit() funtion, then it calls main() again with the
original parameter list.

There are two ways to restart the daemon:
- send the string "restart some-description-as-one-word" to the cmd-pipe
  (normally /dev/input/ckb1/cmd or /dev/input/ckb2/cmd, dependign on
  what device gets what usb number

- sending SIGUSR1 to the daemon-process (as root).

Later on, there may be a user interface in the client
for the first method.
2017-02-26 18:42:55 +01:00
Lutz Eichler dcb0fb57a0 Fixes error # 38 SIGSEGV when deleting copied profile
This error was caused by not completely copying a mode.
The KeyActions always referenced the original data and were not copied.
The commit fixes this and adds a few comments in the modules
where I passed while debugging.
2017-02-26 15:53:52 +01:00
Lutz Eichler 90febc36b9 renamed Firmware directory to .firmware 2017-02-05 17:47:51 +01:00
Lutz Eichler 7be9d4729a change RAPIDFIRE to RFIRE 2017-02-05 17:12:21 +01:00
Lutz Eichler 1bdc3815a1 added K95 Platinum RGB in FIRMWARE file 2017-02-05 15:46:00 +01:00
Lutz Eichler 8fd2944d3a added K70 Rapidfire RGB
There miight be an problem with this Firmware definition:
The filename at corsair doenload site is K70RGBRAPIDFIRE.
The standard rule used in ckb for creating the model names is
vendor + model-with-features + (RGB or nothing).
With this the name to look for in the FIRMWARE table should be
Corsair K70RAPIDFIRERGB
2017-02-04 19:52:38 +01:00
Lutz Eichler b796287963 added K70 variants
For the K70 the known variants are added.
The only one still missing is the K70 non rgb.
2017-02-04 18:56:30 +01:00
Lutz Eichler 5e5c8e00b4 Fixes issue26: outdated FIRMWARE version
The file FIRMWARE in the root directory of ckb-next is signed.
Therefore, updating the obsolete content was not possible by anyone.

A new key has been created, with which only signatures for this development
should be made ([email protected], BAF07C6B).
  The key was self-signed and in addition signed with my personal key.
  It should also be signed by mattanger and possibly others.
Caution: The key may not be exported as ASCII file, but only as a binary file!

The display of gpg -d FIRMWARE should do something like this:
  Gpg: Signature from Sat 04 Feb 2017 11:59:11 CET using RSA key ID BAF07C6B
  Gpg: Correct signature of »ckb-next (For signing development artefacts only!)
       <[email protected]>«

To test the function, the signed FIRMWARE file was originally uploaded to a branch of mine:
 https://raw.githubusercontent.com/frickler24/ckb-next/issues-26-Firmware-Incident/FIRMWARE
 (in line 36, kbfirmware.cpp).

In order for the mechanism to go productive,
the FIRMWARE file of the MASTER branch must be updated!

To prepare the mechanism fpr production,
the link ist updated to the MASTER branch FIRMWARE file:
   https://raw.githubusercontent.com/mattanger/ckb-next/master/FIRMWARE

**********************
* Therefore this patch must first be used in master branch
* so that the correct file and key can be loaded at runtime.
* Then the patch can be added to the testing branch and others.
**********************

If the file or the key in the master branch is not up-to-date,
an error message is displayed when the ckb client is started
(as an example, here a possible error message):

  Gpg: Signature from Thu Jun 30th 2016 09:15:49 CEST using RSA key ID 8DC8D309
  Gpg: [do not know]: invalid packet (ctb = 2d)
  Gpg: keydb_search failed: Invalid package
  Gpg: Can not check signature: Public key not found

.gitignore is updated to ignore a directory containing tmp-files
and a script for signing the FIRMWARE-file.
If it is interesting for others, I can commit it also.
2017-02-04 17:58:53 +01:00
Lutz Eichler 38c2aa170d Reading RGB info is different since Version 2.05 2017-01-14 19:38:36 +01:00
Lutz Eichler 26ec89558e First debuggin for led-Keyboard.c error message 2017-01-14 19:38:21 +01:00
Lutz Eichler 6cc62bcb6e Fix adressing wrong pipe and g-key + modifiers
When adressing a command pipe for the mouse
with a macro cmd, the daemon got a null-ptr,
because no macro functions are defined yet.
This fixes that effect.

Using "macro [<modifier>\+]+[<keyname>]+:<def>"
is now usable, when sending the macro definition
"manually" via echo to the command pipe for the keyboard.
2016-02-21 00:12:08 +01:00
Lutz Eichler f48cf8bfa7 Fix initialization bug with K95RGB + M65RGB
For the combination of an K95RGB keyboard and the M65RGB mouse
there was an initialization bug.
The ckb client did send a "Macro clear" command to the driver
for the mouse. Because that is unneccessary, there ist no function
to handle this and the deamon got a SIGSEGV.

This patch fixes that bug.
The change in ckb client prevents issuing the command.
The Patch in ckb-daemon may be activated by setting INIT_ERROR
and only does some debug output.
2016-02-20 23:22:06 +01:00
Lutz Eichler 0ad494d656 update UI in extra settings
Extra setting menu has got an additional checkbox.
While using large macro definitions, some opSystems lose characters.
That ist because the call traffic to the virtual keyboard input
seems to be too high.
Whith this checkbox set, you get a time delay in two stages:
- If more than 20 chars are sent, 30 microseconds after the 20th
and each following char
- If more than 200 chars are sent, 100 microseconds after the 200th
and each following char

If you don't have any trouble with lost chars,
let this checkbox in off-state.
2016-02-20 23:21:57 +01:00
Lutz Eichler 07d5fc69a6 setup ckb for client side macro managment (aplha)
This branch sets up the ckb client (and one addition in ckb-daemon)
for self defined macros at nearly each key. With this enhancement
the 18 G-Keys at the K95 can be used.

It adds a new tab "macro" to the bind page as user interface
and includes all changes and additions to run the new tab
or do the communication with the daemon.

This version 0.0.1 handles the key macros in their primary layer,
so shift, alt, alt-Gr or meta keys are ignored.
It it tested with a K95 RGB on linux (mint 17.1 and 17.2) on
different machines.
2016-02-20 23:21:42 +01:00
frickler24 089b88df04 add comments 2016-02-20 23:21:30 +01:00
frickler24 c747a69967 adopt comment style to doxygen 2016-02-20 23:14:26 +01:00
Lutz Eichler 2cffe41c4b Remove some qDebugs 2016-02-20 23:13:50 +01:00
frickler24 0072195c26 get the second running version of Macro Definition
In this version, the following functions
    are implemented and integrations-tested:

    - Interface and buttons are stable
    - Comment field in the user interface is implemented
    - some status line / short instructions to use the panel
      are integrated
    - a short video tutorial ist created
      https://youtu.be/qhrKP03_NrM

    This is currently missing:
    - More intensive tests
    - More systematic documentation of the code
    - Commenting on the modifications to the existing code
2016-02-20 23:10:31 +01:00
frickler24 3b016306bd get the first running version of Macro Definition
In this version, the following functions
are implemented and integrations-tested:

- Interface and buttons are stable
- Comment field in the user interface is still ingored
- Separate thread is implemented for reading the macro keys
- The strings read from Keyboard are converted for saving

This is currently missing:
- Status line / short instructions to use the panel,
- The macro comment
- More intensive tests
- Systematic documentation of the code
- Commenting on the modifications to the existing code
2016-02-20 23:05:23 +01:00
frickler24 5c5710bafb get the first running version of Macro Definition
In this version, the following functions
are implemented and integrations-tested:

- Interface and buttons are stable
- Comment field in the user interface is still ingored
- Separate thread is implemented for reading the macro keys
- The strings read from Keyboard are converted for saving

This is currently missing:
- Status line / short instructions to use the panel,
- The macro comment
- More intensive tests
- Systematic documentation of the code
- Commenting on the modifications to the existing code
2016-02-20 23:00:41 +01:00
frickler24 13ac15b315 get some additions to macro UI
- Added textpane for Macro Comment
- Changes Tab sequence
- new class macroreader added
- added some signals to handle clear, start, stop
2016-02-20 22:59:39 +01:00
frickler24 de5808b298 Combine multiple infos in the Key definition
In addition to the Macro Key Definition of panel "Macro Key Actions"
also the readable form of panel "Macro Text" will now be processed.
In this version, the contents of Macro Text is still a sample text.
2016-02-20 22:58:25 +01:00
frickler24 ee6b04039b Enable G-Key macro: Sending definitions is working
This is the second development step for treating
the Macro keys G1-18 on the K95 RGB keyboard.

If you type a valid key sequence in the
Macro Tab -> Macro Key Actions,
select at least one G-Key and click Apply,
the macro definiton ist sent
to the keyboard and active.
The Macro definition is saved like all other bindings,
so with restart of ckb the macro definitions
are re-sent to the keyboard,
but you can't see the older definitions
in the ckb-panel yet.

Reset and Unbind are working properly,
Reset to Default is not tested in that commit.

Some debug outputs are still active (qDebug)
and some ToDos are marked in the source.
2016-02-20 22:58:08 +01:00