def _load_effect_stack_values_dialog_callback(dialog, response_id): if response_id == Gtk.ResponseType.ACCEPT: load_path = dialog.get_filenames()[0] stack_data = utils.unpickle(load_path) for effect_data in stack_data.effects_data: filter_info, properties, non_mlt_properties = effect_data data = { "clip": _filter_stack.clip, "filter_info": filter_info, "filter_edit_done_func": filter_edit_done_stack_update } action = edit.add_filter_action(data) set_stack_update_blocked() action.do_edit() set_stack_update_unblocked() filters = _filter_stack.get_filters() filter_object = filters[len(filters) - 1] filter_object.properties = copy.deepcopy(properties) filter_object.non_mlt_properties = copy.deepcopy( non_mlt_properties) filter_object.update_mlt_filter_properties_all() _filter_stack.reinit_stack_item(filter_object) dialog.destroy()
def init_tool_for_clip(clip, track, edit_type=VOLUME_KF_EDIT): clip_index = track.clips.index(clip) # Save data needed to do the keyframe edits. global edit_data #, pressed_on_selected, drag_disabled edit_data = {"draw_function":_tline_overlay, "clip_index":clip_index, "clip_start_in_timeline":track.clip_start(clip_index), "clip":clip, "track":track, "initializing":True} # Always brightness keyframes for media types that contain no audio. if edit_data["clip"].media_type != appconsts.VIDEO and edit_data["clip"].media_type != appconsts.AUDIO: edit_type = BRIGHTNESS_KF_EDIT # Volume keyframes on audio track for video and audio if track.type == appconsts.AUDIO and not(edit_data["clip"].media_type != appconsts.VIDEO and edit_data["clip"].media_type != appconsts.AUDIO): edit_type = VOLUME_KF_EDIT # Init for edit type if edit_type == VOLUME_KF_EDIT: ep = _get_volume_editable_property(clip, track, clip_index) if ep == None: filter_info = mltfilters.get_volume_filters_info() data = {"clip":clip, "filter_info":filter_info, "filter_edit_done_func":_filter_create_dummy_func} action = edit.add_multipart_filter_action(data) action.do_edit() ep = _get_volume_editable_property(clip, track, clip_index) edit_data["editable_property"] = ep global _kf_editor _kf_editor = TLineKeyFrameEditor(ep, True, VOLUME_KF_EDIT) elif edit_type == BRIGHTNESS_KF_EDIT: ep = _get_brightness_editable_property(clip, track, clip_index) if ep == None: filter_info = mltfilters.get_brightness_filter_info() data = {"clip":clip, "filter_info":filter_info, "filter_edit_done_func":_filter_create_dummy_func} action = edit.add_filter_action(data) action.do_edit() ep = _get_brightness_editable_property(clip, track, clip_index) edit_data["editable_property"] = ep global _kf_editor _kf_editor = TLineKeyFrameEditor(ep, True, BRIGHTNESS_KF_EDIT) tlinewidgets.set_edit_mode_data(edit_data) updater.repaint_tline()
def get_filter_add_action(filter_info, target_clip): # Maybe show info on using alpha filters if filter_info.group == "Alpha": GLib.idle_add(_alpha_filter_add_maybe_info, filter_info) data = { "clip": target_clip, "filter_info": filter_info, "filter_edit_done_func": filter_edit_done_stack_update } action = edit.add_filter_action(data) return action
def get_filter_add_action(filter_info, target_clip): if filter_info.multipart_filter == False: data = {"clip":target_clip, "filter_info":filter_info, "filter_edit_done_func":filter_edit_done} action = edit.add_filter_action(data) else: data = {"clip":target_clip, "filter_info":filter_info, "filter_edit_done_func":filter_edit_done} action = edit.add_multipart_filter_action(data) return action
def init_tool_for_clip(clip, track, edit_type=VOLUME_KF_EDIT): clip_index = track.clips.index(clip) # Save data needed to do the keyframe edits. global edit_data #, pressed_on_selected, drag_disabled edit_data = {"draw_function":_tline_overlay, "clip_index":clip_index, "clip_start_in_timeline":track.clip_start(clip_index), "clip":clip, "track":track, "initializing":True} # Always brightness keyframes for media types that contain no audio. if not(edit_data["clip"].media_type == appconsts.VIDEO or edit_data["clip"].media_type != appconsts.AUDIO): edit_type = BRIGHTNESS_KF_EDIT # Init for edit type if edit_type == VOLUME_KF_EDIT: ep = _get_volume_editable_property(clip, track, clip_index) if ep == None: filter_info = mltfilters.get_volume_filters_info() data = {"clip":clip, "filter_info":filter_info, "filter_edit_done_func":_filter_create_dummy_func} action = edit.add_multipart_filter_action(data) action.do_edit() ep = _get_volume_editable_property(clip, track, clip_index) edit_data["editable_property"] = ep global _kf_editor _kf_editor = TLineKeyFrameEditor(ep, True, VOLUME_KF_EDIT) elif edit_type == BRIGHTNESS_KF_EDIT: ep = _get_brightness_editable_property(clip, track, clip_index) if ep == None: filter_info = mltfilters.get_brightness_filter_info() data = {"clip":clip, "filter_info":filter_info, "filter_edit_done_func":_filter_create_dummy_func} action = edit.add_filter_action(data) action.do_edit() ep = _get_brightness_editable_property(clip, track, clip_index) edit_data["editable_property"] = ep global _kf_editor _kf_editor = TLineKeyFrameEditor(ep, True, BRIGHTNESS_KF_EDIT) tlinewidgets.set_edit_mode_data(edit_data) updater.repaint_tline()
def get_filter_add_action(filter_info, target_clip): if filter_info.multipart_filter == False: # Maybe show info on using alpha filters if filter_info.group == "Alpha": GLib.idle_add(_alpha_filter_add_maybe_info, filter_info) data = {"clip":target_clip, "filter_info":filter_info, "filter_edit_done_func":filter_edit_done} action = edit.add_filter_action(data) else: data = {"clip":target_clip, "filter_info":filter_info, "filter_edit_done_func":filter_edit_done} action = edit.add_multipart_filter_action(data) return action
def _add_filter_from_effect_select_panel(row_index, group_index): # Add filter group_name, filters_array = mltfilters.groups[group_index] filter_info = filters_array[row_index] data = { "clip": _filter_stack.clip, "filter_info": filter_info, "filter_edit_done_func": filter_edit_done_stack_update } action = edit.add_filter_action(data) set_stack_update_blocked() action.do_edit() set_stack_update_unblocked() clip, track, clip_index = _filter_stack.get_clip_data() set_clip(clip, track, clip_index) updater.repaint_tline()
def tline_effect_drop(x, y): clip, track, index = tlinewidgets.get_clip_track_and_index_for_pos(x, y) if clip == None: return 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() return selected_track_before = movemodes.selected_track selected_in_before = movemodes.selected_range_in selected_out_before = movemodes.selected_range_out if clipeffectseditor.clip_is_being_edited(clip) == False: clipeffectseditor.set_clip(clip, track, index) clipeffectseditor.add_currently_selected_effect() # drag start selects the dragged effect filter_info = clipeffectseditor.get_currently_selected_filter_info() if selected_track_before != track.id: return if not((selected_in_before <= index) and (selected_out_before >= index)): return if selected_in_before != -1: for add_index in range(selected_in_before, selected_out_before + 1): if add_index == index: continue add_clip = track.clips[add_index] if add_clip.is_blanck_clip == True: continue data = {"clip":add_clip, "filter_info":filter_info, "filter_edit_done_func":clipeffectseditor.filter_edit_done_stack_update} action = edit.add_filter_action(data) action.do_edit()