jahnf / Projecteur

Linux Desktop Application for the Logitech Spotlight device (and similar devices) - Digital Laser Pointer
MIT License
379 stars 33 forks source link

Enable Next Hold and Back Hold Buttons #143

Closed mayanksuman closed 3 years ago

mayanksuman commented 3 years ago

This PR configures the Spotlight device to send next and back hold events (as HID++ communication, hence, fixes #71 ).

New Actions (like Scroll Horizontal, Scroll Vertical and Change Volume) are introduced to take the advantage of these new 'hold' event (hence, fixes #85 ).

Fixes #71 , #85

jahnf commented 3 years ago

Hi @mayanksuman thanks for this 👍, unfortunately we have created changes at the same time as I was still trying to refactor out the hid++ functionality. I'll try to integrate this PR. It will take me a week as I don't have too much free time currently beside the day to day job

mayanksuman commented 3 years ago

unfortunately we have created changes at the same time as I was still trying to refactor out the hid++ functionality.

No issue. (@jahnf ) After the refactor of hid++ functionality, you can push your changes to your feature/spotlight-hidraw-functionality branch and drop a comment here. I can then rebase this PR to those changes.

jahnf commented 3 years ago

No issue. ..... I can then rebase this PR to those changes.

Thank for the offer, but I suspect that rebasing on those changes will be quiet some work - If you don't have any additions to this PR for now, I will base my refactoring on your changes here 👍 - and then we can fine tune and of course testing before it goes to develop. Let me know when I can merge and base the refactoring on that.

mayanksuman commented 3 years ago

Yes, you can merge. The work on this PR is complete.

However, please note that in commit c0ac8d4d329ca9049e93560e31950c2d8dcd30f5, Action struct in deviceinput.h has changed so configuration files saved by earlier version of Projecteur might be invalid. If configuration file created by earlier version of Projecteur exist, new version of Projecteur may SegFault. To correct this issue, delete the earlier configuration. For Debian based system the configuration file is saved in ~/.config/Projecteur directory. For other systems please check https://doc.qt.io/qt-5/qsettings.html#platform-specific-notes.

jahnf commented 3 years ago

Yes, you can merge. The work on this PR is complete.

However, please note that in commit c0ac8d4, Action struct in deviceinput.h has changed so configuration files saved by earlier version of Projecteur might be invalid. If configuration file created by earlier version of Projecteur exist, new version of Projecteur may SegFault. To correct this issue, delete the earlier configuration. For Debian based system the configuration file is saved in ~/.config/Projecteur directory. For other systems please check https://doc.qt.io/qt-5/qsettings.html#platform-specific-notes.

I see what you mean - will fix it together with my other restructure changes. // as mentioned earlier - will be hopefully sometimes during this week.

mayanksuman commented 3 years ago

Hi @jahnf ,

I have fixed the merge conflicts due to recent PR #147.

Additionally, I have refactored the code so that Projecteur do not SegFault due to older version of configuration. Hence, Projecteur is able to load the configuration from previous version without any issue.

The work for this PR is complete from my side and can be pulled/merged in your branch for further testing.