Source code for pyforms_terminal.controls.control_player

from pyforms_terminal.controls.control_base import ControlBase
import types, logging

logger = logging.getLogger(__name__)

try:
    from StringIO import StringIO as BufferClass
except ImportError:
    from io import BytesIO as BufferClass


try:
    import cv2
except:
    logger.info( "cv2 not present. ControlPlayer not working")


try:
    from PIL import Image
except:
    logger.info( "PIL not present. ControlPlayer not working")


try:
   import base64
except:
    logger.info( "base64 not present. ControlPlayer not working")




[docs]class ControlPlayer(ControlBase): _currentFrame = None _min = 0 _max = 0 _filename = '' _position = 0 def process_frame_event(self, frame): pass
[docs] def play(self): pass
[docs] def stop(self): pass
[docs] def refresh(self): pass
[docs] def update_frame(self): pass
[docs] def double_click_event(self, event, x, y): pass
[docs] def click_event(self, event, x, y): pass
[docs] def drag_event(self, start_point, end_point): pass
[docs] def end_drag_event(self, start_point, end_point): pass
[docs] def key_release_event(self, event): pass
[docs] def process_frame_event(self, frame): pass
[docs] def save_Form(self, data): pass
[docs] def load_form(self, data): pass
@property def value(self): return self._value @value.setter def value(self, value): if value: if isinstance( value, str ): ControlBase.value.fset(self, cv2.VideoCapture( value ) ) self._filename = value if isinstance( value, dict ): ControlBase.value.fset(self, cv2.VideoCapture( value['filename'] ) ) if 'position' in value.keys(): self.video_index = int(value['position']) self._filename = value['filename'] if isinstance(value,types.BuiltinFunctionType): ControlBase.value.fset(self, value ) self._max = int(self._value.get(7)) else: self._filename = None self._value = None @property def video_index(self): return self._position @video_index.setter def video_index(self, value): self._position = value @property def image(self): return self._currentFrame @image.setter def image(self, value): pass @property def frame_width(self): return self._value.get(3) @property def frame_height(self): return self._value.get(4) @property def max(self): return int(self._value.get(7)) @property def frame(self): return self._currentFrame @property def fps(self): """ Return the video frames per second """ return self._value.get(5)