From 4ed1263e9ed6fb4ba4a61c19313fce16fa0f1518 Mon Sep 17 00:00:00 2001 From: Tim Caldwell Date: Fri, 6 Oct 2017 21:32:39 +1300 Subject: [PATCH] trying to make it run on both a computer of local deving and the pi --- .gitignore | 2 ++ data_centre.py | 2 +- display_centre.py | 6 +++++- video_centre.py | 36 ++++++++++++++++++++++-------------- 4 files changed, 30 insertions(+), 16 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..939db29 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.pyc +*.log \ No newline at end of file diff --git a/data_centre.py b/data_centre.py index 5f80c37..ceb5b44 100644 --- a/data_centre.py +++ b/data_centre.py @@ -30,7 +30,7 @@ def setup_logging(): logger = setup_logging() ######## sets paths and constants ######## -PATH_TO_BROWSER = '/home/pi/pp_home/media' #TODO replace this with pi path name when i know what makes sense +PATH_TO_BROWSER = get_the_current_dir_path() #TODO replace this with pi path name when i know what makes sense PATH_TO_DATA_OBJECTS = get_the_current_dir_path() EMPTY_BANK = dict(name='',location='',length=-1,start=-1,end=-1) diff --git a/display_centre.py b/display_centre.py index fa26785..e37ae15 100644 --- a/display_centre.py +++ b/display_centre.py @@ -261,7 +261,11 @@ canvas.pack() data = data_centre.data() -video_driver = video_centre.video_driver(canvas) +try: + video_driver = video_centre.video_driver(canvas) +except Exception as e: + logger.error(traceback.format_exc()) + logger.error(str(e)) last_scene = None diff --git a/video_centre.py b/video_centre.py index 3950f46..c8378e0 100644 --- a/video_centre.py +++ b/video_centre.py @@ -1,5 +1,9 @@ import time -from omxdriver import OMXDriver #<== for deving only +try: + from omxdriver import OMXDriver #<== for deving only + has_omx = True +except ImportError: + has_omx = False from Tkinter import Tk, Canvas import data_centre @@ -9,22 +13,23 @@ logger = data_centre.setup_logging() class video_driver(object): def __init__(self, widget = None): - logger.info('this is a test') + self.widget = widget self.delay = 50 - self.last_player = video_player(self.widget,'a') - self.current_player = video_player(self.widget,'b') - self.next_player = video_player(self.widget,'c') + logger.info('the has_omx flag is {}'.format(has_omx)) + if has_omx: + self.last_player = video_player(self.widget,'a') + self.current_player = video_player(self.widget,'b') + self.next_player = video_player(self.widget,'c') + self.manual_next = False - self.manual_next = False - - self.widget.after(self.delay,self.begin_playing) + self.widget.after(self.delay,self.begin_playing) def begin_playing(self): #TODO: the first clip will be a demo first_context = data_centre.get_next_context() #first_context = '/home/pi/pp_home/media/01_trashpalaceintro.mp4' - logger.info(first_context['location']) + logger.info(first_context['location']) self.current_player.load_content(first_context['location']) self.wait_for_first_load() @@ -83,8 +88,11 @@ class video_driver(object): def get_info_for_video_display(self): - return self.current_player.bank_number, self.current_player.status, self.next_player.bank_number,\ + if has_omx: + return self.current_player.bank_number, self.current_player.status, self.next_player.bank_number,\ self.next_player.status, self.current_player.duration, self.current_player.video_length + else: + return 0, 'test', 1, 'test' , 0, 10 class video_player(object): @@ -110,18 +118,18 @@ class video_player(object): def play_content(self): self.status = 'PLAYING' - logger.info('{} is playing now'.format(self.name)) + logger.info('{} is playing now'.format(self.name)) self.omx.pause_before_play_required = 'no' - self.omx.show(True,0) + self.omx.show(True,0) def load_content(self, context): self.status = 'LOADING' logger.info('{} is loading now {}'.format(self.name,context)) - self.omx.load(context,'after-first-frame','--win 0,0,400,400 --no-osd','') + self.omx.load(context,'after-first-frame','--win 0,0,400,400 --no-osd','') - #layer = layer + 1 + #layer = layer + 1 def set_to_default(self): self.omx.kill()