Skip to content

Commit

Permalink
Revert "Simple mouse gesture contoller"
Browse files Browse the repository at this point in the history
This reverts commit 0323aed.
  • Loading branch information
cybermaus committed Jul 24, 2021
1 parent f7e2a65 commit 246b1a1
Showing 1 changed file with 1 addition and 75 deletions.
76 changes: 1 addition & 75 deletions camplayer/utils/inputhandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,6 @@ def __init__(self, event_type=['release', 'press', 'hold'], scan_interval=2500):
self._event_hold = True if 'hold' in event_type else False
self._running = True
self._monitor_thread = threading.Thread(target=self._monitor, daemon=True).start()
self._mouse_inhibit = time.monotonic()
self._mouse_inhibit_duration = 0.5
self._mouse_btn_state = 0
self._mouse_abs_x = 500
self._mouse_abs_y = 500

def destroy(self):
"""Stop monitoring thread"""
Expand Down Expand Up @@ -67,82 +62,13 @@ def _monitor(self):
while True:
event = device.read_one()
if event:
# keyboard and button events
if event.type == evdev.ecodes.EV_KEY:

# mouse buttons
if ( event.code in {evdev.ecodes.BTN_MOUSE,
evdev.ecodes.BTN_RIGHT,
evdev.ecodes.BTN_MIDDLE} ):
# Left click: track (left) mouse button state
# note that left mouse click by itself does not do anything
if event.code == evdev.ecodes.BTN_MOUSE:
self._mouse_btn_state = event.value
# Right click, while left is already down, Quit program
elif ( event.code == evdev.ecodes.BTN_RIGHT
and self._mouse_btn_state == 1
and event.value == 0 ):
event.code = evdev.ecodes.KEY_Q
self._event_queue.put_nowait(event)
# Right click, while left is not already down, Pause autorotate
elif ( event.code == evdev.ecodes.BTN_RIGHT
and event.value == 0 ):
event.code = evdev.ecodes.KEY_SPACE
self._event_queue.put_nowait(event)

# other keys / keyboard keys
elif self._event_up and event.value == 0:
if self._event_up and event.value == 0:
self._event_queue.put_nowait(event)
elif self._event_down and event.value == 1:
self._event_queue.put_nowait(event)
elif self._event_hold and event.value == 2:
self._event_queue.put_nowait(event)

# mouse movement events
elif event.type == evdev.ecodes.EV_REL:

# unused for now, track absolute position
if event.code == evdev.ecodes.REL_X:
self._mouse_abs_x += event.value;
self._mouse_abs_x = min(1920, self._mouse_abs_x)
self._mouse_abs_x = max(1, self._mouse_abs_x)
elif event.code == evdev.ecodes.REL_Y:
self._mouse_abs_y += event.value;
self._mouse_abs_y = min(1080, self._mouse_abs_y)
self._mouse_abs_y = max(1, self._mouse_abs_y)

# Gestures, only one per timeslot.
if (time.monotonic() > self._mouse_inhibit + self._mouse_inhibit_duration):
# wheel up/down is zoom in/out, iow, single/grid view
if ( event.code == evdev.ecodes.REL_WHEEL
and abs(event.value) > 0 ):
if event.value > 0:
event.code = evdev.ecodes.KEY_0
else:
event.code = evdev.ecodes.KEY_1
self._mouse_inhibit = time.monotonic()
self._event_queue.put_nowait(event)
# move left/right while button down is prev/next screen
elif ( event.code == evdev.ecodes.REL_X
and self._mouse_btn_state == 1
and abs(event.value) > 10 ):
if event.value > 0:
event.code = evdev.ecodes.KEY_RIGHT
else:
event.code = evdev.ecodes.KEY_LEFT
self._mouse_inhibit = time.monotonic()
self._event_queue.put_nowait(event)
# move up/down while button down is higher/lower quality
elif ( event.code == evdev.ecodes.REL_Y
and self._mouse_btn_state == 1
and abs(event.value) > 10 ):
if event.value > 0:
event.code = evdev.ecodes.KEY_DOWN
else:
event.code = evdev.ecodes.KEY_UP
self._mouse_inhibit = time.monotonic()
self._event_queue.put_nowait(event)

del event
else:
break
Expand Down

0 comments on commit 246b1a1

Please sign in to comment.