Go to the documentation of this file.
20 LiVESWidget *dialog_vbox;
22 LiVESWidget *align_start_button;
23 LiVESWidget *align_end_button;
26 LiVESWidget *fit_button;
27 LiVESWidget *transition_combo;
28 LiVESWidget *cancelbutton;
29 LiVESWidget *okbutton;
31 LiVESSList *radiobutton_align_group = NULL;
32 LiVESSList *radiobutton_insdrop_group = NULL;
36 LiVESAccelGroup *accel_group;
103 txt =
lives_strdup_printf(
_(
"Merge Clipboard [ %d Frames (resampled) ] With Selection [ %d Frames ]"), cb_frames,
126 if ((
cfile->end -
cfile->start + 1) < cb_frames) {
141 }
else if ((
cfile->end -
cfile->start + 1) > cb_frames) {
143 (
_(
"Number of Times to Loop Clipboard"), 1., 1.,
144 (
int)((
cfile->end -
cfile->start + 1) / cb_frames), 1., 10., 0, LIVES_BOX(hbox), NULL);
154 LIVES_BOX(hbox), NULL);
196 LIVES_RESPONSE_CANCEL);
208 LIVES_KEY_Escape, (LiVESXModifierType)0, (LiVESAccelFlags)0);
227 static void bang(LiVESWidget *widget, livespointer
null) {
304 boolean cb_video_change =
FALSE;
310 int oundo_start =
cfile->undo_start;
311 int oundo_end =
cfile->undo_end;
312 int cb_end, excess_frames;
313 int times_to_loop = 1;
319 LiVESWidget *textwidget = (LiVESWidget *)lives_widget_object_get_data(LIVES_WIDGET_OBJECT(
mainw->
textwidget_focus),
372 d_print(
_(
"Merging clipboard with selection..."));
380 if (excess_frames < 0) excess_frames = 0;
382 cfile->insert_start = 0;
383 cfile->insert_end = 0;
397 d_print(
P_(
"inserting %d extra frame before merge\n",
"inserting %d extra frames before merge\n", excess_frames),
431 cb_end = (
clipboard->frames - excess_frames) * times_to_loop;
441 cfile->undo_end =
cfile->start + (cb_end * times_to_loop) - 1;
443 cfile->undo_start =
cfile->end - (cb_end * times_to_loop) + 1;
445 cb_start = excess_frames + 1;
460 cfile->progress_start =
cfile->end - cb_end + 1;
472 start =
cfile->start;
478 cfile->start = start;
482 cfile->undo_start = oundo_start;
483 cfile->undo_end = oundo_end;
486 if (cb_video_change) {
495 cfile->start -= excess_frames;
496 cfile->end -= excess_frames;
508 d_print(
P_(
"now inserting %d extra frame\n",
"now inserting %d extra frames\n", excess_frames), excess_frames);
523 if (cb_video_change) {
534 if (
cfile->insert_start == 0) {
541 if (
cfile->undo_start <
cfile->insert_start) {
LiVESWidget * drop_frame_button
void on_merge_cancel_clicked(LiVESButton *button, livespointer user_data)
void on_merge_activate(LiVESMenuItem *menuitem, livespointer user_data)
LiVESList * do_onchange_init(lives_rfx_t *rfx)
void set_undoable(const char *what, boolean sensitive)
int lives_list_strcmp_index(LiVESList *list, livesconstpointer data, boolean case_sensitive)
void on_delete_activate(LiVESMenuItem *menuitem, livespointer user_data)
boolean last_transition_ins_frames
#define SCR_HEIGHT_SAFETY
LiVESWidget * ins_frame_button
lives_rfx_status_t status
int count_resampled_frames(int in_frames, double orig_fps, double resampled_fps)
char backend[PATH_MAX *4]
int num_rendered_effects_builtin
char * menu_text
for Weed, this is the filter_class "name"
void after_spinbutton_loops_changed(LiVESSpinButton *spinbutton, livespointer user_data)
void param_demarshall(lives_rfx_t *rfx, LiVESList *plist, boolean with_min_max, boolean upd)
void on_paramwindow_button_clicked(LiVESButton *button, lives_rfx_t *rfx)
boolean last_transition_align_start
void on_ins_frames_toggled(LiVESToggleButton *togglebutton, livespointer user_data)
boolean do_effect(lives_rfx_t *rfx, boolean is_preview)
defined as extern in paramwindow.c
volatile lives_cancel_t cancelled
void on_insert_activate(LiVESButton *button, livespointer user_data)
boolean make_param_box(LiVESVBox *top_vbox, lives_rfx_t *rfx)
make a dynamic parameter window
void d_print(const char *fmt,...)
void switch_to_file(int old_file, int new_file)
int num_rendered_effects_custom
LiVESWidget * textwidget_focus
boolean do_clipboard_fps_warning(void)
LIVES_GLOBAL_INLINE void do_rendered_fx_dialog(void)
void d_print_failed(void)
#define P_(String, StringPlural, n)
#define lives_strdup_printf(fmt,...)
void after_param_text_changed(LiVESWidget *textwidget, lives_rfx_t *rfx)
#define GUI_SCREEN_HEIGHT
boolean resample_clipboard(double new_fps)
call this to resample clipboard video
void lives_list_free_all(LiVESList **)
LiVESWidget * merge_dialog
void on_fit_toggled(LiVESToggleButton *togglebutton, livespointer user_data)
@ RFX_STATUS_TEST
test effects in the advanced menu
LiVESWidget * spinbutton_loops
void create_merge_dialog(void)
int lives_system(const char *com, boolean allow_error)
int num_rendered_effects_test
boolean special_cleanup(boolean is_ok)
void get_play_times(void)
recalculate video / audio lengths and draw the timer bars
void on_merge_ok_clicked(LiVESButton *button, livespointer user_data)
int last_transition_loops
void on_undo_activate(LiVESWidget *menuitem, livespointer user_data)
void on_align_start_end_toggled(LiVESToggleButton *togglebutton, livespointer user_data)
void on_trans_method_changed(LiVESCombo *combo, livespointer user_data)
#define SCR_WIDTH_SAFETY
sepwin/screen size safety margins in pixels
boolean last_transition_loop_to_fit
@ RFX_STATUS_CUSTOM
custom effects in the custom menu
lives_rfx_t * rendered_fx
rendered fx