expose video-positioning action seek_to_location_on_player - hopefully helps with #142 ?

This commit is contained in:
Tristan Rowley
2020-07-23 17:27:16 +00:00
parent 3773999da0
commit f180d82f39
4 changed files with 17 additions and 1 deletions

View File

@@ -240,6 +240,10 @@ class Actions(object):
def seek_back_on_player(self): def seek_back_on_player(self):
self.video_driver.current_player.seek(-(self.data.settings['sampler']['SEEK_TIME']['value'])) self.video_driver.current_player.seek(-(self.data.settings['sampler']['SEEK_TIME']['value']))
def seek_to_location_on_player(self, position):
print("seek_to_location_on_player passed %s" % position)
self.video_driver.current_player.seek_percent(position)
def toggle_function(self): def toggle_function(self):
self.data.function_on = not self.data.function_on self.data.function_on = not self.data.function_on

View File

@@ -41,7 +41,7 @@
}, },
"control_change 48": { "control_change 48": {
"DEFAULT": ["set_the_shader_param_0_layer_offset_0_continuous","set_strobe_amount_continuous"], "DEFAULT": ["set_the_shader_param_0_layer_offset_0_continuous","set_strobe_amount_continuous"],
"NAV_DETOUR": ["set_detour_speed_position_continuous"], "NAV_DETOUR": ["set_detour_speed_position_continuous", "seek_to_location_on_player"],
"NAV_WJMX": ["wj_set_position_N:x"], "NAV_WJMX": ["wj_set_position_N:x"],
"NAV_MANI": ["set_variable_A"], "NAV_MANI": ["set_variable_A"],
"NAV_LPRC": ["set_automation_speed"], "NAV_LPRC": ["set_automation_speed"],

View File

@@ -118,6 +118,12 @@ class AltVideoPlayer:
else: else:
self.message_handler.set_message('INFO', 'can not seek outside range') self.message_handler.set_message('INFO', 'can not seek outside range')
def seek_percent(self, percent):
# convert % to absolute position in current clip
duration = self.end - self.start
pos = duration * percent
self.set_position(self.start + pos)
def change_rate(self, amount): def change_rate(self, amount):
if self.rate is None: if self.rate is None:
self.rate = 1 self.rate = 1

View File

@@ -155,6 +155,12 @@ class VideoPlayer:
else: else:
self.message_handler.set_message('INFO', 'can not seek outside range') self.message_handler.set_message('INFO', 'can not seek outside range')
def seek_percent(self, percent):
# convert % to absolute position in current clip
duration = self.end - self.start
pos = duration * percent
self.set_position(self.start + pos)
def change_rate(self, amount): def change_rate(self, amount):
new_rate = self.rate + amount new_rate = self.rate + amount
if (new_rate > self.omx_player.minimum_rate() and new_rate < self.omx_player.maximum_rate()): if (new_rate > self.omx_player.minimum_rate() and new_rate < self.omx_player.maximum_rate()):