Skip to content

Commit

Permalink
leap: dont import the module at start, to prevent user who dont have …
Browse files Browse the repository at this point in the history
…the SDK to see the import.
  • Loading branch information
tito committed Oct 16, 2013
1 parent a712393 commit b953c1e
Showing 1 changed file with 29 additions and 24 deletions.
53 changes: 29 additions & 24 deletions kivy/input/providers/leapfinger.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
=========================
'''

__all__ = ('LeapFingerEventProvider', )
__all__ = ('LeapFingerEventProvider', 'LeapFingerEvent')

#from kivy.base import EventLoop
import os
from collections import deque
from kivy.logger import Logger
from kivy.input.provider import MotionEventProvider
from kivy.input.factory import MotionEventFactory
from kivy.input.motionevent import MotionEvent
import Leap
from Leap import InteractionBox

_LEAP_QUEUE = deque()

Leap = InteractionBox = None


def normalize(value, a, b):
return (value - a) / float(b - a)
Expand All @@ -37,9 +37,34 @@ def depack(self, args):


class LeapFingerEventProvider(MotionEventProvider):

__handlers__ = {}

def start(self):
# don't do the import at start, or teh error will be always displayed
# for user who don't have Leap
global Leap, InteractionBox
import Leap
from Leap import InteractionBox

class LeapMotionListener(Leap.Listener):

def on_init(self, controller):
Logger.info('leapmotion: Initialized')

def on_connect(self, controller):
Logger.info('leapmotion: Connected')

def on_disconnect(self, controller):
Logger.info('leapmotion: Disconnected')

def on_frame(self, controller):
frame = controller.frame()
_LEAP_QUEUE.append(frame)

def on_exit(self, controller):
pass

self.uid = 0
self.touches = {}
self.listener = LeapMotionListener()
Expand Down Expand Up @@ -81,25 +106,5 @@ def process_frame(self, frame):
return events


class LeapMotionListener(Leap.Listener):

def on_init(self, controller):
Logger.info("leapmotion: Initialized")

def on_connect(self, controller):
Logger.info("leapmotion: Connected")

def on_disconnect(self, controller):
Logger.info("leapmotion: Disconnected")

def on_frame(self, controller):
#Logger.debug("leapmotion: OnFrame")
frame = controller.frame()
_LEAP_QUEUE.append(frame)

def on_exit(self, controller):
pass


# registers
MotionEventFactory.register('leapfinger', LeapFingerEventProvider)

0 comments on commit b953c1e

Please sign in to comment.