def __init__(self, id, file_path, name, media_type, length, icon_path, info): self.id = id self.path = file_path self.name = name self.type = media_type self.length = length self.icon_path = icon_path self.icon = None self.create_icon() self.mark_in = -1 self.mark_out = -1 self.has_proxy_file = False self.is_proxy_file = False self.second_file_path = None # to proxy when original, to original when proxy self.current_frame = 0 self.info = info # Set default length for graphics files (f_name, ext) = os.path.splitext(self.name) if utils.file_extension_is_graphics_file(ext): in_fr, out_fr, l = editorpersistance.get_graphics_default_in_out_length( ) self.mark_in = in_fr self.mark_out = out_fr self.length = l
def __init__(self, id, file_path, name, media_type, length, icon_path, info): self.id = id self.path = file_path self.name = name self.type = media_type self.length = length self.icon_path = icon_path self.icon = None self.create_icon() self.mark_in = -1 self.mark_out = -1 self.has_proxy_file = False self.is_proxy_file = False self.second_file_path = None # to proxy when original, to original when proxy self.current_frame = 0 self.info = info # Set default length for graphics files (f_name, ext) = os.path.splitext(self.name) if utils.file_extension_is_graphics_file(ext) and self.type != appconsts.IMAGE_SEQUENCE: in_fr, out_fr, l = editorpersistance.get_graphics_default_in_out_length() self.mark_in = in_fr self.mark_out = out_fr self.length = l
def tline_media_drop(media_file, x, y, use_marks=False): track = tlinewidgets.get_track(y) if track == None: return if track.id < 1 or track.id >= (len(current_sequence().tracks) - 1): return if track_lock_check_and_user_info(track): set_default_edit_mode() return set_default_edit_mode() frame = tlinewidgets.get_frame(x) # Create new clip. if media_file.type != appconsts.PATTERN_PRODUCER: new_clip = current_sequence().create_file_producer_clip( media_file.path, media_file.name) else: new_clip = current_sequence().create_pattern_producer(media_file) # Set clip in and out if use_marks == False: new_clip.mark_in = 0 new_clip.mark_out = new_clip.get_length( ) - 1 # - 1 because out is mark_out inclusive if media_file.type == appconsts.IMAGE_SEQUENCE: new_clip.mark_out = media_file.length else: new_clip.mark_in = media_file.mark_in new_clip.mark_out = media_file.mark_out if new_clip.mark_in == -1: new_clip.mark_in = 0 if new_clip.mark_out == -1: new_clip.mark_out = new_clip.get_length( ) - 1 # - 1 because out is mark_out inclusive if media_file.type == appconsts.IMAGE_SEQUENCE: new_clip.mark_out = media_file.length # Graphics files get added with their default lengths f_name, ext = os.path.splitext(media_file.name) if utils.file_extension_is_graphics_file( ext ) and media_file.type != appconsts.IMAGE_SEQUENCE: # image sequences are graphics files but have own length in_fr, out_fr, l = editorpersistance.get_graphics_default_in_out_length( ) new_clip.mark_in = in_fr new_clip.mark_out = out_fr if editorpersistance.prefs.overwrite_clip_drop == True: if track.id != current_sequence().first_video_track().id: drop_done = _attempt_dnd_overwrite(track, new_clip, frame) if drop_done == True: return do_clip_insert(track, new_clip, frame)
def tline_media_drop(media_file, x, y, use_marks=False): track = tlinewidgets.get_track(y) if track == None: return if track.id < 1 or track.id >= (len(current_sequence().tracks) - 1): return if dialogutils.track_lock_check_and_user_info(track): #modesetting.set_default_edit_mode() # TODO: Info return modesetting.stop_looping() frame = tlinewidgets.get_frame(x) # Create new clip. if media_file.type != appconsts.PATTERN_PRODUCER: new_clip = current_sequence().create_file_producer_clip(media_file.path, media_file.name, False, media_file.ttl) else: new_clip = current_sequence().create_pattern_producer(media_file) # Set clip in and out if use_marks == False: new_clip.mark_in = 0 new_clip.mark_out = new_clip.get_length() - 1 # - 1 because out is mark_out inclusive if media_file.type == appconsts.IMAGE_SEQUENCE: new_clip.mark_out = media_file.length else: new_clip.mark_in = media_file.mark_in new_clip.mark_out = media_file.mark_out if new_clip.mark_in == -1: new_clip.mark_in = 0 if new_clip.mark_out == -1: new_clip.mark_out = new_clip.get_length() - 1 # - 1 because out is mark_out inclusive if media_file.type == appconsts.IMAGE_SEQUENCE: new_clip.mark_out = media_file.length # Graphics files get added with their default lengths f_name, ext = os.path.splitext(media_file.name) if utils.file_extension_is_graphics_file(ext) and media_file.type != appconsts.IMAGE_SEQUENCE: # image sequences are graphics files but have own length in_fr, out_fr, l = editorpersistance.get_graphics_default_in_out_length() new_clip.mark_in = in_fr new_clip.mark_out = out_fr # Non-insert DND actions if editorpersistance.prefs.dnd_action == appconsts.DND_OVERWRITE_NON_V1: if track.id != current_sequence().first_video_track().id: drop_done = _attempt_dnd_overwrite(track, new_clip, frame) if drop_done == True: return elif editorpersistance.prefs.dnd_action == appconsts.DND_ALWAYS_OVERWRITE: drop_done = _attempt_dnd_overwrite(track, new_clip, frame) if drop_done == True: return do_clip_insert(track, new_clip, frame)
def tline_media_drop(media_file, x, y, use_marks=False): track = tlinewidgets.get_track(y) if track == None: return if track.id < 1 or track.id >= (len(current_sequence().tracks) - 1): return if track_lock_check_and_user_info(track): set_default_edit_mode() return set_default_edit_mode() frame = tlinewidgets.get_frame(x) # Create new clip. if media_file.type != appconsts.PATTERN_PRODUCER: new_clip = current_sequence().create_file_producer_clip(media_file.path, media_file.name) else: new_clip = current_sequence().create_pattern_producer(media_file) # Set clip in and out if use_marks == False: new_clip.mark_in = 0 new_clip.mark_out = new_clip.get_length() - 1 # - 1 because out is mark_out inclusive if media_file.type == appconsts.IMAGE_SEQUENCE: new_clip.mark_out = media_file.length else: new_clip.mark_in = media_file.mark_in new_clip.mark_out = media_file.mark_out if new_clip.mark_in == -1: new_clip.mark_in = 0 if new_clip.mark_out == -1: new_clip.mark_out = new_clip.get_length() - 1 # - 1 because out is mark_out inclusive if media_file.type == appconsts.IMAGE_SEQUENCE: new_clip.mark_out = media_file.length # Graphics files get added with their default lengths f_name, ext = os.path.splitext(media_file.name) if utils.file_extension_is_graphics_file(ext) and media_file.type != appconsts.IMAGE_SEQUENCE: # image sequences are graphics files but have own length in_fr, out_fr, l = editorpersistance.get_graphics_default_in_out_length() new_clip.mark_in = in_fr new_clip.mark_out = out_fr do_clip_insert(track, new_clip, frame)
def tline_media_drop(media_file, x, y, use_marks=False): track = tlinewidgets.get_track(y) if track == None: return if track.id < 1 or track.id >= (len(current_sequence().tracks) - 1): return if dialogutils.track_lock_check_and_user_info(track): #modesetting.set_default_edit_mode() # TODO: Info return modesetting.stop_looping() if EDIT_MODE() == editorstate.KF_TOOL: kftoolmode.exit_tool() frame = tlinewidgets.get_frame(x) # Create new clip. if media_file.type != appconsts.PATTERN_PRODUCER: if media_file.container_data == None: # Standard clips new_clip = current_sequence().create_file_producer_clip(media_file.path, media_file.name, False, media_file.ttl) else: # Container clips new_clip = current_sequence().create_file_producer_clip(media_file.path, media_file.name, False, media_file.ttl) new_clip.container_data = media_file.container_data else: new_clip = current_sequence().create_pattern_producer(media_file) # Set clip in and out if use_marks == False: new_clip.mark_in = 0 new_clip.mark_out = new_clip.get_length() - 1 # - 1 because out is mark_out inclusive if media_file.type == appconsts.IMAGE_SEQUENCE: new_clip.mark_out = media_file.length else: if new_clip.media_type == appconsts.IMAGE or new_clip.media_type == appconsts.PATTERN_PRODUCER: # Give IMAGE and PATTERN_PRODUCER media types default mark in and mark out if not already set. # This makes them reasonably short and trimmable in both directions. # NOTE: WE SHOULD BE DOING THIS AT CREATION TIME, WE'RE DOING THE SAME THING IN updater.display_clip_in_monitor() ? # ...but then we would need to patch persistance.py...maybe keep this even if not too smart. # TODO: Make default length user settable or use graphics value if (hasattr(new_clip, 'mark_in') == False) or (new_clip.mark_in == -1 and new_clip.mark_out == -1): center_frame = new_clip.get_length() // 2 default_length_half = 75 mark_in = center_frame - default_length_half mark_out = center_frame + default_length_half - 1 new_clip.mark_in = mark_in new_clip.mark_out = mark_out else: # All the rest new_clip.mark_in = media_file.mark_in new_clip.mark_out = media_file.mark_out if new_clip.mark_in == -1: new_clip.mark_in = 0 if new_clip.mark_out == -1: new_clip.mark_out = new_clip.get_length() - 1 # - 1 because out is mark_out inclusive if media_file.type == appconsts.IMAGE_SEQUENCE: new_clip.mark_out = media_file.length # Graphics files get added with their default lengths f_name, ext = os.path.splitext(media_file.name) if utils.file_extension_is_graphics_file(ext) and media_file.type != appconsts.IMAGE_SEQUENCE: # image sequences are graphics files but have own length in_fr, out_fr, l = editorpersistance.get_graphics_default_in_out_length() new_clip.mark_in = in_fr new_clip.mark_out = out_fr # Non-insert DND actions if editorpersistance.prefs.dnd_action == appconsts.DND_OVERWRITE_NON_V1: if track.id != current_sequence().first_video_track().id: drop_done = _attempt_dnd_overwrite(track, new_clip, frame) if drop_done == True: return elif editorpersistance.prefs.dnd_action == appconsts.DND_ALWAYS_OVERWRITE: drop_done = _attempt_dnd_overwrite(track, new_clip, frame) if drop_done == True: return do_clip_insert(track, new_clip, frame)
def tline_media_drop(media_file, x, y, use_marks=False): track = tlinewidgets.get_track(y) if track == None: return if track.id < 1 or track.id >= (len(current_sequence().tracks) - 1): return if dialogutils.track_lock_check_and_user_info(track): #modesetting.set_default_edit_mode() # TODO: Info return modesetting.stop_looping() if EDIT_MODE() == editorstate.KF_TOOL: kftoolmode.exit_tool() frame = tlinewidgets.get_frame(x) # Create new clip. if media_file.type != appconsts.PATTERN_PRODUCER: new_clip = current_sequence().create_file_producer_clip(media_file.path, media_file.name, False, media_file.ttl) else: new_clip = current_sequence().create_pattern_producer(media_file) # Set clip in and out if use_marks == False: new_clip.mark_in = 0 new_clip.mark_out = new_clip.get_length() - 1 # - 1 because out is mark_out inclusive if media_file.type == appconsts.IMAGE_SEQUENCE: new_clip.mark_out = media_file.length else: if new_clip.media_type == appconsts.IMAGE or new_clip.media_type == appconsts.PATTERN_PRODUCER: # Give IMAGE and PATTERN_PRODUCER media types default mark in and mark out if not already set. # This makes them reasonably short and trimmable in both directions. # NOTE: WE SHOULD BE DOING THIS AT CREATION TIME, WE'RE DOING THE SAME THING IN updater.display_clip_in_monitor() ? # ...but then we would need to patch persistance.py...maybe keep this even if not too smart. # TODO: Make default length user settable or use graphics value if (hasattr(new_clip, 'mark_in') == False) or (new_clip.mark_in == -1 and new_clip.mark_out == -1): center_frame = new_clip.get_length() / 2 default_length_half = 75 mark_in = center_frame - default_length_half mark_out = center_frame + default_length_half - 1 new_clip.mark_in = mark_in new_clip.mark_out = mark_out else: # All the rest new_clip.mark_in = media_file.mark_in new_clip.mark_out = media_file.mark_out if new_clip.mark_in == -1: new_clip.mark_in = 0 if new_clip.mark_out == -1: new_clip.mark_out = new_clip.get_length() - 1 # - 1 because out is mark_out inclusive if media_file.type == appconsts.IMAGE_SEQUENCE: new_clip.mark_out = media_file.length # Graphics files get added with their default lengths f_name, ext = os.path.splitext(media_file.name) if utils.file_extension_is_graphics_file(ext) and media_file.type != appconsts.IMAGE_SEQUENCE: # image sequences are graphics files but have own length in_fr, out_fr, l = editorpersistance.get_graphics_default_in_out_length() new_clip.mark_in = in_fr new_clip.mark_out = out_fr # Non-insert DND actions if editorpersistance.prefs.dnd_action == appconsts.DND_OVERWRITE_NON_V1: if track.id != current_sequence().first_video_track().id: drop_done = _attempt_dnd_overwrite(track, new_clip, frame) if drop_done == True: return elif editorpersistance.prefs.dnd_action == appconsts.DND_ALWAYS_OVERWRITE: drop_done = _attempt_dnd_overwrite(track, new_clip, frame) if drop_done == True: return do_clip_insert(track, new_clip, frame)