mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-11 10:50:03 +01:00
improving the video playing including sublooping
This commit is contained in:
@@ -236,7 +236,7 @@ class Actions(object):
|
||||
def change_hdmi_settings(self, setting_value):
|
||||
if self.data.settings['video']['OUTPUT']['value'] == 'hdmi':
|
||||
if self.data.settings['video']['HDMI_MODE']['value'] == 'preferred':
|
||||
subprocess.call(['tvservice', '-p'])
|
||||
subprocess.call(['tvservice', '-p'], shell=True)
|
||||
elif self.data.settings['video']['HDMI_MODE']['value'] == 'CEA 4 HDMI':
|
||||
subprocess.call(['tvservice -e=\"CEA 4 HDMI\"'], shell=True)
|
||||
self._refresh_frame_buffer()
|
||||
|
||||
@@ -216,7 +216,8 @@ class Display(object):
|
||||
banner_list[0] = '<'
|
||||
elif position > end:
|
||||
banner_list[max] = '>'
|
||||
elif end - start != 0:
|
||||
elif end - start != 0 and position:
|
||||
print('start value is {}, end value is {}, position is {}'.format(start, end, position))
|
||||
marker = int(math.floor(float(position - start) /
|
||||
float(end - start) * (max - 1)) + 1)
|
||||
banner_list[marker] = '*'
|
||||
|
||||
@@ -12,14 +12,18 @@ class AnalogInput(object):
|
||||
self.analog_delay = 50
|
||||
self.last_readings = [0,0,0,0,0,0,0,0]
|
||||
|
||||
SPI_PORT = 1
|
||||
SPI_DEVICE = 2
|
||||
self.analog_input = Adafruit_MCP3008.MCP3008(spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE))
|
||||
self.check_if_listening_enabled()
|
||||
|
||||
|
||||
def check_if_listening_enabled(self):
|
||||
if self.data.settings['other']['ANALOG_INPUT']['value'] == 'enabled':
|
||||
if not self.analog_input:
|
||||
try:
|
||||
SPI_PORT = 1
|
||||
SPI_DEVICE = 2
|
||||
self.analog_input = Adafruit_MCP3008.MCP3008(spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE))
|
||||
except:
|
||||
self.message_handler('INFO', 'analog inputs not connected')
|
||||
self.poll_analog_inputs()
|
||||
else:
|
||||
self.root.after(1000, self.check_if_listening_enabled)
|
||||
|
||||
@@ -48,22 +48,18 @@ class AltVideoPlayer:
|
||||
if self.location == '':
|
||||
self.status = 'EMPTY'
|
||||
return True
|
||||
#self.omx_player = OMXPlayer(self.location, args=arguments, dbus_name=self.name)
|
||||
self.client.send_message("/player/{}/load".format(self.name[0]), self.location)
|
||||
#self.player_running = True
|
||||
#self.total_length = self.omx_player.duration() # <-- uneeded once self.duration stores float
|
||||
|
||||
if(self.end is -1):
|
||||
self.end = self.total_length
|
||||
if(self.start is -1):
|
||||
self.start = 0
|
||||
self.client.send_message("/player/{}/load".format(self.name[0]), [self.location, self.start / self.total_length, self.end / self.total_length])
|
||||
self.crop_length = self.end - self.start
|
||||
print('{}: the duration is {}'.format(self.name, self.total_length))
|
||||
if 'show' in self.data.settings['sampler']['ON_LOAD']['value']:
|
||||
#self.set_alpha_value(255)
|
||||
pass
|
||||
self.set_alpha_value(255)
|
||||
else:
|
||||
pass
|
||||
#self.set_alpha_value(0)
|
||||
self.set_alpha_value(0)
|
||||
return True
|
||||
#except (ValueError, SystemError) as e:
|
||||
# print(e)
|
||||
@@ -71,17 +67,17 @@ class AltVideoPlayer:
|
||||
#return False
|
||||
|
||||
def start_video(self):
|
||||
if 'show' in self.data.settings['sampler']['ON_START']['value']:
|
||||
pass
|
||||
#self.set_alpha_value(255)
|
||||
else:
|
||||
pass
|
||||
#self.set_alpha_value(0)
|
||||
if 'play' in self.data.settings['sampler']['ON_START']['value']:
|
||||
self.status = 'PLAYING'
|
||||
self.client.send_message("/player/{}/play".format(self.name[0]), True)
|
||||
else:
|
||||
self.status = 'START'
|
||||
if 'show' in self.data.settings['sampler']['ON_START']['value']:
|
||||
self.set_alpha_value(255)
|
||||
else:
|
||||
self.set_alpha_value(0)
|
||||
|
||||
|
||||
|
||||
|
||||
def reload(self, layer):
|
||||
@@ -95,13 +91,6 @@ class AltVideoPlayer:
|
||||
def is_finished(self):
|
||||
return self.status == 'FINISHED'
|
||||
|
||||
#def get_position(self):
|
||||
# try:
|
||||
# return self.omx_player.position()
|
||||
# except:
|
||||
# print('{}: error get_position'.format(self.name))
|
||||
# return -1
|
||||
|
||||
def get_context_for_player(self):
|
||||
next_context = self.data.get_next_context()
|
||||
self.location = next_context['location']
|
||||
@@ -113,25 +102,22 @@ class AltVideoPlayer:
|
||||
|
||||
def toggle_pause(self):
|
||||
if self.status == "PLAYING":
|
||||
self.client.send_message("/player/{}/play".format(self.name[0]), False)
|
||||
self.client.send_message("/player/{}/pause".format(self.name[0]), True)
|
||||
elif self.status == "PAUSED":
|
||||
self.client.send_message("/player/{}/play".format(self.name[0]), True)
|
||||
else:
|
||||
print("error toggling pause when video is neither playing or paused")
|
||||
#self.omx_player.play_pause()
|
||||
#self.status = self.omx_player.playback_status().upper()
|
||||
|
||||
def toggle_show(self):
|
||||
if self.alpha > 127:
|
||||
self.show_toggle_on = False
|
||||
#self.set_alpha_value(0)
|
||||
self.set_alpha_value(0)
|
||||
else:
|
||||
self.show_toggle_on = True
|
||||
#self.set_alpha_value(255)
|
||||
self.set_alpha_value(255)
|
||||
|
||||
def set_alpha_value(self, amount):
|
||||
self.client.send_message("/player/{}/alpha".format(self.name[0]), amount)
|
||||
#self.omx_player.set_alpha(amount)
|
||||
self.alpha = amount
|
||||
|
||||
def seek(self, amount):
|
||||
@@ -139,7 +125,6 @@ class AltVideoPlayer:
|
||||
after_seek_position = position + amount
|
||||
if after_seek_position > self.start and after_seek_position < self.end:
|
||||
self.set_position(after_seek_position)
|
||||
#self.player.seek(amount)
|
||||
else:
|
||||
self.message_handler.set_message('INFO', 'can not seek outside range')
|
||||
|
||||
@@ -160,19 +145,18 @@ class AltVideoPlayer:
|
||||
|
||||
def set_position(self, position):
|
||||
self.client.send_message("/player/{}/position".format(self.name[0]), position / self.total_length)
|
||||
#self.omx_player.set_position(position)
|
||||
|
||||
def exit(self):
|
||||
try:
|
||||
self.client.send_message("/player/{}/quit".format(self.name[0]),True)
|
||||
#self.omx_player.quit()
|
||||
self.player_running = False
|
||||
except:
|
||||
pass
|
||||
|
||||
## not sure if i am going to implement this atm
|
||||
def set_screen_size_for_dev_mode(self):
|
||||
## only dev mode is needed now that auto handles all modes... can be removed probably ...
|
||||
if self.data.settings['other']['DEV_MODE_RESET']['value'] == 'on':
|
||||
##self.client.send_message("/player/{}/alpha".format(self.name[0]), amount)
|
||||
return True, '--win', '50,350,550,750'
|
||||
else:
|
||||
aspect_mode = self.data.settings['video']['SCREEN_MODE']['value']
|
||||
|
||||
@@ -88,7 +88,7 @@ class VideoDriver(object):
|
||||
|
||||
def start_video(self):
|
||||
self.current_player.start_video()
|
||||
self.last_player.exit()
|
||||
self.exit_last_player_after_delay()
|
||||
self.next_player.try_load(self.get_next_layer_value())
|
||||
self.in_current_playing_cycle = True
|
||||
self.wait_for_next_cycle()
|
||||
@@ -132,6 +132,9 @@ class VideoDriver(object):
|
||||
def reload_next_player(self):
|
||||
self.next_player.reload(self.get_next_layer_value())
|
||||
|
||||
def exit_last_player_after_delay(self):
|
||||
self.root.after(100, self.last_player.exit)
|
||||
|
||||
def setup_osc_client(self):
|
||||
client_parser = argparse.ArgumentParser()
|
||||
client_parser.add_argument("--ip", default="127.0.0.1", help="the ip")
|
||||
|
||||
Reference in New Issue
Block a user