LiVES 2.4.6

- Main Page
- Namespaces
- Data Structures
- Files

- File List
- Globals

All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Macros | Functions
multitrack.c File Reference
`#include "../libweed/weed.h"`
`#include "../libweed/weed-palettes.h"`
`#include "../libweed/weed-effects.h"`
`#include "../libweed/weed-host.h"`
`#include "main.h"`
`#include "events.h"`
`#include "callbacks.h"`
`#include "effects.h"`
`#include "resample.h"`
`#include "support.h"`
`#include "paramwindow.h"`
`#include "interface.h"`
`#include "audio.h"`
`#include "startup.h"`
`#include "framedraw.h"`
`#include "cvirtual.h"`
`#include "pangotext.h"`

## Macros
#define | LIVES_AVOL_SCALE ((double)1000000.)

## Functions
void | on_add_video_track_activate (LiVESMenuItem *, livespointer mt)
void | multitrack_adj_start_end (LiVESMenuItem *, livespointer mt)
boolean | multitrack_audio_insert (LiVESMenuItem *, livespointer mt)
void | multitrack_view_events (LiVESMenuItem *, livespointer mt)
void | multitrack_view_sel_events (LiVESMenuItem *, livespointer mt)
void | on_prerender_aud_activate (LiVESMenuItem *, livespointer mt)
void | on_jumpnext_activate (LiVESMenuItem *, livespointer mt)
void | on_jumpback_activate (LiVESMenuItem *, livespointer mt)
void | on_seltrack_activate (LiVESMenuItem *, livespointer mt)
void | multitrack_view_details (LiVESMenuItem *, livespointer mt)
void | mt_add_region_effect (LiVESMenuItem *, livespointer mt)
void | mt_add_block_effect (LiVESMenuItem *, livespointer mt)
void | on_clear_event_list_activate (LiVESMenuItem *, livespointer mt)
void | show_frame_events_activate (LiVESMenuItem *, livespointer)
void | mt_save_vals_toggled (LiVESMenuItem *, livespointer mt)
void | mt_load_vals_toggled (LiVESMenuItem *, livespointer mt)
void | mt_render_vid_toggled (LiVESMenuItem *, livespointer mt)
void | mt_render_aud_toggled (LiVESMenuItem *, livespointer mt)
void | mt_norm_aud_toggled (LiVESMenuItem *, livespointer mt)
void | mt_fplay_toggled (LiVESMenuItem *, livespointer mt)
void | mt_change_vals_activate (LiVESMenuItem *, livespointer mt)
void | on_set_pvals_clicked (LiVESWidget *button, livespointer mt)
void | on_move_fx_changed (LiVESMenuItem *, livespointer mt)
void | select_all_time (LiVESMenuItem *, livespointer mt)
void | select_from_zero_time (LiVESMenuItem *, livespointer mt)
void | select_to_end_time (LiVESMenuItem *, livespointer mt)
void | select_all_vid (LiVESMenuItem *, livespointer mt)
void | select_no_vid (LiVESMenuItem *, livespointer mt)
void | on_split_sel_activate (LiVESMenuItem *, livespointer mt)
void | on_split_curr_activate (LiVESMenuItem *, livespointer mt)
void | multitrack_undo (LiVESMenuItem *, livespointer mt)
void | multitrack_redo (LiVESMenuItem *, livespointer mt)
void | on_mt_showkeys_activate (LiVESMenuItem *, livespointer)
void | on_mt_list_fx_activate (LiVESMenuItem *, livespointer mt)
void | on_mt_delfx_activate (LiVESMenuItem *, livespointer mt)
void | on_mt_fx_edit_activate (LiVESMenuItem *, livespointer mt)
void | mt_view_audio_toggled (LiVESMenuItem *, livespointer mt)
void | mt_view_ctx_toggled (LiVESMenuItem *, livespointer mt)
void | mt_ign_ins_sel_toggled (LiVESMenuItem *, livespointer mt)
void | mt_change_max_disp_tracks (LiVESMenuItem *, livespointer mt)
int | get_track_for_block (track_rect *block)
| return track number for a given block More...
double | get_mixer_track_vol (lives_mt *mt, int trackno)
void | set_mixer_track_vol (lives_mt *mt, int trackno, double vol)
LiVESPixbuf * | make_thumb (lives_mt *mt, int file, int width, int height, int frame, boolean noblanks)
LiVESPixbuf * | make_thumb_fast_between (lives_mt *mt, int fileno, int width, int height, int tframe, int range)
boolean | write_backup_layout_numbering (lives_mt *mt)
uint32_t | mt_idle_add (lives_mt *mt)
void | recover_layout_cancelled (boolean is_startup)
void | recover_layout (void)
void ** | mt_get_pchain (void)
LIVES_INLINE char * | get_track_name (lives_mt *mt, int track_num, boolean is_audio)
LIVES_INLINE double | get_time_from_x (lives_mt *mt, int x)
LIVES_INLINE void | set_params_unchanged (lives_rfx_t *rfx)
double | mt_get_effect_time (lives_mt *mt)
boolean | add_mt_param_box (lives_mt *mt)
void | track_select (lives_mt *mt)
| must call after setting mt->current_track More...
void | scroll_tracks (lives_mt *mt, int top_track, boolean set_value)
boolean | track_arrow_pressed (LiVESWidget *ebox, LiVESXEventButton *event, livespointer user_data)
void | multitrack_view_clips (LiVESMenuItem *menuitem, livespointer user_data)
void | multitrack_view_in_out (LiVESMenuItem *menuitem, livespointer user_data)
void | mt_clip_select (lives_mt *mt, boolean scroll)
boolean | mt_prevclip (LiVESAccelGroup *group, LiVESObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean | mt_nextclip (LiVESAccelGroup *group, LiVESObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
void | set_timeline_end_secs (lives_mt *mt, double secs)
void | mt_show_current_frame (lives_mt *mt, boolean return_layer)
| preview the current frame More...
void | mt_tl_move (lives_mt *mt, double pos)
LIVES_INLINE void | mt_tl_move_relative (lives_mt *mt, double pos_rel)
boolean | mt_tlfor (LiVESAccelGroup *group, LiVESObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean | mt_tlfor_frame (LiVESAccelGroup *group, LiVESObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean | mt_tlback (LiVESAccelGroup *group, LiVESObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean | mt_tlback_frame (LiVESAccelGroup *group, LiVESObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
void | scroll_track_by_scrollbar (LiVESScrollbar *sbar, livespointer user_data)
boolean | mt_trdown (LiVESAccelGroup *group, LiVESObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
boolean | mt_trup (LiVESAccelGroup *group, LiVESObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
LIVES_INLINE int | poly_page_to_tab (uint32_t page)
LIVES_INLINE int | poly_tab_to_page (uint32_t tab)
LIVES_INLINE lives_mt_poly_state_t | get_poly_state_from_page (lives_mt *mt)
void | mt_center_on_cursor (LiVESMenuItem *menuitem, livespointer user_data)
void | mt_zoom_in (LiVESMenuItem *menuitem, livespointer user_data)
void | mt_zoom_out (LiVESMenuItem *menuitem, livespointer user_data)
void | mt_spin_start_value_changed (LiVESSpinButton *spinbutton, livespointer user_data)
void | mt_spin_end_value_changed (LiVESSpinButton *spinbutton, livespointer user_data)
void | mt_init_start_end_spins (lives_mt *mt)
void | mouse_mode_context (lives_mt *mt)
void | update_insert_mode (lives_mt *mt)
void | update_grav_mode (lives_mt *mt)
boolean | make_backup_space (lives_mt *mt, size_t space_needed)
void | mt_backup (lives_mt *mt, int undo_type, weed_timecode_t tc)
void | mt_aparam_view_toggled (LiVESMenuItem *menuitem, livespointer user_data)
void | add_aparam_menuitems (lives_mt *mt)
char * | set_values_from_defs (lives_mt *mt, boolean from_prefs)
void | event_list_free_undos (lives_mt *mt)
void | stored_event_list_free_undos (void)
void | remove_current_from_affected_layouts (lives_mt *mt)
void | stored_event_list_free_all (boolean wiped)
boolean | check_for_layout_del (lives_mt *mt, boolean exiting)
void | delete_audio_tracks (lives_mt *mt, LiVESList *list, boolean full)
void | mt_quit_activate (LiVESMenuItem *menuitem, livespointer user_data)
void | mt_set_autotrans (int idx)
lives_mt * | multitrack (weed_plant_t *event_list, int orig_file, double fps)
| create and return lives_mt struct More...
void | delete_audio_track (lives_mt *mt, LiVESWidget *eventbox, boolean full)
boolean | used_in_current_layout (lives_mt *mt, int file)
boolean | multitrack_delete (lives_mt *mt, boolean save_layout)
void | mt_init_tracks (lives_mt *mt, boolean set_min_max)
| add basic tracks, or set tracks from mt->event_list More...
void | delete_video_track (lives_mt *mt, int layer, boolean full)
LiVESWidget * | add_audio_track (lives_mt *mt, int track, boolean behind)
void | set_track_label_string (lives_mt *mt, int track, const char *label)
int | add_video_track_behind (LiVESMenuItem *menuitem, livespointer user_data)
int | add_video_track_front (LiVESMenuItem *menuitem, livespointer user_data)
void | do_effect_context (lives_mt *mt, LiVESXEventButton *event)
void | mt_clear_timeline (lives_mt *mt)
void | mt_delete_clips (lives_mt *mt, int file)
void | mt_init_clips (lives_mt *mt, int orig_file, boolean add)
boolean | on_multitrack_activate (LiVESMenuItem *menuitem, weed_plant_t *event_list)
| menuitem callback More...
boolean | block_overlap (LiVESWidget *eventbox, double time_start, double time_end)
track_rect * | move_block (lives_mt *mt, track_rect *block, double timesecs, int old_track, int new_track)
void | unselect_all (lives_mt *mt)
| unselect all blocks More...
void | clear_context (lives_mt *mt)
void | add_context_label (lives_mt *mt, const char *text)
boolean | resize_timeline (lives_mt *mt)
void | in_out_start_changed (LiVESWidget *widget, livespointer user_data)
void | in_out_end_changed (LiVESWidget *widget, livespointer user_data)
void | avel_reverse_toggled (LiVESToggleButton *togglebutton, livespointer user_data)
void | avel_spin_changed (LiVESSpinButton *spinbutton, livespointer user_data)
void | in_anchor_toggled (LiVESToggleButton *togglebutton, livespointer user_data)
void | out_anchor_toggled (LiVESToggleButton *togglebutton, livespointer user_data)
void | polymorph (lives_mt *mt, lives_mt_poly_state_t poly)
void | do_block_context (lives_mt *mt, LiVESXEventButton *event, track_rect *block)
void | do_track_context (lives_mt *mt, LiVESXEventButton *event, double timesecs, int track)
boolean | on_track_release (LiVESWidget *eventbox, LiVESXEventButton *event, livespointer user_data)
boolean | on_track_header_click (LiVESWidget *widget, LiVESXEventButton *event, livespointer user_data)
boolean | on_track_header_release (LiVESWidget *widget, LiVESXEventButton *event, livespointer user_data)
boolean | on_track_between_click (LiVESWidget *widget, LiVESXEventButton *event, livespointer user_data)
boolean | on_track_between_release (LiVESWidget *widget, LiVESXEventButton *event, livespointer user_data)
boolean | on_track_click (LiVESWidget *eventbox, LiVESXEventButton *event, livespointer user_data)
boolean | on_track_move (LiVESWidget *widget, LiVESXEventMotion *event, livespointer user_data)
boolean | on_track_header_move (LiVESWidget *widget, LiVESXEventMotion *event, livespointer user_data)
void | unpaint_line (lives_mt *mt, LiVESWidget *eventbox)
void | unpaint_lines (lives_mt *mt)
void | animate_multitrack (lives_mt *mt)
void | multitrack_end_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | insert_here_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | insert_at_ctx_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | edit_start_end_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | close_clip_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | show_clipinfo_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | insert_audio_here_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | insert_audio_at_ctx_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | delete_block_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | selblock_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | list_fx_here_cb (LiVESMenuItem *menuitem, livespointer user_data)
void | tc_to_rs (LiVESMenuItem *menuitem, livespointer user_data)
void | tc_to_re (LiVESMenuItem *menuitem, livespointer user_data)
void | rs_to_tc (LiVESMenuItem *menuitem, livespointer user_data)
void | re_to_tc (LiVESMenuItem *menuitem, livespointer user_data)
void | multitrack_clear_marks (LiVESMenuItem *menuitem, livespointer user_data)
void | remove_first_gaps (LiVESMenuItem *menuitem, livespointer user_data)
void | remove_gaps (LiVESMenuItem *menuitem, livespointer user_data)
void | on_insgap_sel_activate (LiVESMenuItem *menuitem, livespointer user_data)
void | on_insgap_cur_activate (LiVESMenuItem *menuitem, livespointer user_data)
weed_plant_t * | add_blank_frames_up_to (weed_plant_t *event_list, weed_plant_t *start_event, weed_timecode_t end_tc, double fps)
void | on_rename_track_activate (LiVESMenuItem *menuitem, livespointer user_data)
void | on_cback_audio_activate (LiVESMenuItem *menuitem, livespointer user_data)
boolean | on_render_activate (LiVESMenuItem *menuitem, livespointer user_data)
void | update_filter_events (lives_mt *mt, weed_plant_t *first_event, weed_timecode_t start_tc, weed_timecode_t end_tc, int track, weed_timecode_t new_start_tc, int new_track)
void | on_split_activate (LiVESMenuItem *menuitem, livespointer user_data)
void | on_seltrack_toggled (LiVESWidget *checkbutton, livespointer user_data)
void | mt_desensitise (lives_mt *mt)
void | mt_sensitise (lives_mt *mt)
void | mt_swap_play_pause (lives_mt *mt, boolean put_pause)
void | multitrack_preview_clicked (LiVESWidget *button, livespointer user_data)
void | mt_prepare_for_playback (lives_mt *mt)
void | mt_post_playback (lives_mt *mt)
void | multitrack_playall (lives_mt *mt)
void | multitrack_play_sel (LiVESMenuItem *menuitem, livespointer user_data)
boolean | multitrack_insert (LiVESMenuItem *menuitem, livespointer user_data)
void | insert_frames (int filenum, weed_timecode_t offset_start, weed_timecode_t offset_end, weed_timecode_t tc, lives_direction_t direction, LiVESWidget *eventbox, lives_mt *mt, track_rect *in_block)
void | insert_audio (int filenum, weed_timecode_t offset_start, weed_timecode_t offset_end, weed_timecode_t tc, double avel, lives_direction_t direction, LiVESWidget *eventbox, lives_mt *mt, track_rect *in_block)
void | draw_region (lives_mt *mt)
boolean | on_timeline_update (LiVESWidget *widget, LiVESXEventMotion *event, livespointer user_data)
boolean | all_present (weed_plant_t *event, LiVESList *sel)
void | get_region_overlap (lives_mt *mt)
void | do_sel_context (lives_mt *mt)
void | do_fx_list_context (lives_mt *mt, int fxcount)
void | do_fx_move_context (lives_mt *mt)
boolean | on_timeline_release (LiVESWidget *eventbox, LiVESXEventButton *event, livespointer user_data)
boolean | on_timeline_press (LiVESWidget *widget, LiVESXEventButton *event, livespointer user_data)
weed_plant_t * | get_prev_fm (lives_mt *mt, int current_track, weed_plant_t *event)
weed_plant_t * | get_next_fm (lives_mt *mt, int current_track, weed_plant_t *event)
boolean | mt_mark_callback (LiVESAccelGroup *group, LiVESObject *obj, uint32_t keyval, LiVESXModifierType mod, livespointer user_data)
void | on_fx_insa_clicked (LiVESWidget *button, livespointer user_data)
void | on_fx_insb_clicked (LiVESWidget *button, livespointer user_data)
void | on_prev_fm_clicked (LiVESWidget *button, livespointer user_data)
void | on_next_fm_clicked (LiVESWidget *button, livespointer user_data)
void | on_node_spin_value_changed (LiVESSpinButton *spinbutton, livespointer user_data)
void | on_next_node_clicked (LiVESWidget *button, livespointer user_data)
void | on_prev_node_clicked (LiVESWidget *button, livespointer user_data)
void | on_del_node_clicked (LiVESWidget *button, livespointer user_data)
void | mt_fixup_events (lives_mt *mt, weed_plant_t *old_event, weed_plant_t *new_event)
void | activate_mt_preview (lives_mt *mt)
| sensitize Show Preview and Apply buttons More...
LiVESList * | load_layout_map (void)
void | save_layout_map (int *lmap, double *lmap_audio, const char *file, const char *dir)
void | add_markers (lives_mt *mt, weed_plant_t *event_list, boolean add_block_ids)
boolean | set_new_set_name (lives_mt *mt)
boolean | on_save_event_list_activate (LiVESMenuItem *menuitem, livespointer user_data)
void | move_init_in_filter_map (lives_mt *mt, weed_plant_t *event_list, weed_plant_t *event, weed_plant_t *ifrom, weed_plant_t *ito, int track, boolean after)
boolean | compare_filter_maps (weed_plant_t *fm1, weed_plant_t *fm2, int ctrack)
| ctrack can be -1 to compare all events, else we cf for ctrack More...
boolean | event_list_rectify (lives_mt *mt, weed_plant_t *event_list)
char * | get_eload_filename (lives_mt *mt, boolean allow_auto_reload)
weed_plant_t * | load_event_list (lives_mt *mt, char *eload_file)
void | remove_markers (weed_plant_t *event_list)
void | wipe_layout (lives_mt *mt)
boolean | on_load_event_list_activate (LiVESMenuItem *menuitem, livespointer user_data)
void | migrate_layouts (const char *old_set_name, const char *new_set_name)
LiVESList * | layout_frame_is_affected (int clipno, int frame)
LiVESList * | layout_audio_is_affected (int clipno, double time)
void | mt_change_disp_tracks_ok (LiVESButton *button, livespointer user_data)
uint32_t | event_list_get_byte_size (lives_mt *mt, weed_plant_t *event_list, int *num_events)
| returns bytes and sets num_events More...
void | on_amixer_close_clicked (LiVESButton *button, lives_mt *mt)
void | on_amixer_slider_changed (LiVESAdjustment *adj, lives_mt *mt)
LiVESWidget * | amixer_add_channel_slider (lives_mt *mt, int i)
void | amixer_show (LiVESButton *button, livespointer user_data)
LiVESWidget * | get_eventbox_for_track (lives_mt *mt, int ntrack)
track_rect * | find_block_by_uid (lives_mt *mt, ulong uid)
boolean | mt_track_is_video (lives_mt *mt, int ntrack)
| return TRUE if ntrack is a valid video track More...
boolean | mt_track_is_audio (lives_mt *mt, int ntrack)
| return TRUE if ntrack is a valid backing audio track More...
ulong | mt_get_last_block_uid (lives_mt *mt)
| get index of last inserted (wallclock time) block for track More...
int | mt_get_block_count (lives_mt *mt, int ntrack)
| count blocks in track More...
double | mt_get_block_sttime (lives_mt *mt, int ntrack, int iblock)
| return time in seconds of first frame event in block More...
double | mt_get_block_entime (lives_mt *mt, int ntrack, int iblock)
| return time in seconds of last frame event in block, + event duration More...
track_rect * | get_block_from_track_and_time (lives_mt *mt, int track, double time)
| get timeline end time of block More...
int | get_clip_for_block (track_rect *block)
void | mt_do_autotransition (lives_mt *mt, track_rect *block)
| call this on a block to apply autotransition on it More...

## Macro Definition Documentation

#define LIVES_AVOL_SCALE ((double)1000000.)

## Function Documentation

void activate_mt_preview | ( | lives_mt * | mt | ) |

sensitize Show Preview and Apply buttons

void add_aparam_menuitems | ( | lives_mt * | mt | ) |

LiVESWidget* add_audio_track | ( | lives_mt * | mt,
|  | int | track,
|  | boolean | behind
| ) |  |

weed_plant_t* add_blank_frames_up_to | ( | weed_plant_t * | event_list,
|  | weed_plant_t * | start_event,
|  | weed_timecode_t | end_tc,
|  | double | fps
| ) |  |

void add_context_label | ( | lives_mt * | mt,
|  | const char * | text
| ) |  |

void add_markers | ( | lives_mt * | mt,
|  | weed_plant_t * | event_list,
|  | boolean | add_block_ids
| ) |  |

boolean add_mt_param_box | ( | lives_mt * | mt | ) |

int add_video_track_behind | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

int add_video_track_front | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

boolean all_present | ( | weed_plant_t * | event,
|  | LiVESList * | sel
| ) |  |

LiVESWidget* amixer_add_channel_slider | ( | lives_mt * | mt,
|  | int | i
| ) |  |

void amixer_show | ( | LiVESButton * | button,
|  | livespointer | user_data
| ) |  |

void animate_multitrack | ( | lives_mt * | mt | ) |

void avel_reverse_toggled | ( | LiVESToggleButton * | togglebutton,
|  | livespointer | user_data
| ) |  |

void avel_spin_changed | ( | LiVESSpinButton * | spinbutton,
|  | livespointer | user_data
| ) |  |

boolean block_overlap | ( | LiVESWidget * | eventbox,
|  | double | time_start,
|  | double | time_end
| ) |  |

boolean check_for_layout_del | ( | lives_mt * | mt,
|  | boolean | exiting
| ) |  |

void clear_context | ( | lives_mt * | mt | ) |

void close_clip_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

boolean compare_filter_maps | ( | weed_plant_t * | fm1,
|  | weed_plant_t * | fm2,
|  | int | ctrack
| ) |  |

ctrack can be -1 to compare all events, else we cf for ctrack

void delete_audio_track | ( | lives_mt * | mt,
|  | LiVESWidget * | eventbox,
|  | boolean | full
| ) |  |

void delete_audio_tracks | ( | lives_mt * | mt,
|  | LiVESList * | list,
|  | boolean | full
| ) |  |

void delete_block_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void delete_video_track | ( | lives_mt * | mt,
|  | int | layer,
|  | boolean | full
| ) |  |

void do_block_context | ( | lives_mt * | mt,
|  | LiVESXEventButton * | event,
|  | track_rect * | block
| ) |  |

void do_effect_context | ( | lives_mt * | mt,
|  | LiVESXEventButton * | event
| ) |  |

void do_fx_list_context | ( | lives_mt * | mt,
|  | int | fxcount
| ) |  |

void do_fx_move_context | ( | lives_mt * | mt | ) |

void do_sel_context | ( | lives_mt * | mt | ) |

void do_track_context | ( | lives_mt * | mt,
|  | LiVESXEventButton * | event,
|  | double | timesecs,
|  | int | track
| ) |  |

void draw_region | ( | lives_mt * | mt | ) |

< opaque black

void edit_start_end_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void event_list_free_undos | ( | lives_mt * | mt | ) |

uint32_t event_list_get_byte_size | ( | lives_mt * | mt,
|  | weed_plant_t * | event_list,
|  | int * | num_events
| ) |  |

returns bytes and sets num_events

boolean event_list_rectify | ( | lives_mt * | mt,
|  | weed_plant_t * | event_list
| ) |  |

track_rect* find_block_by_uid | ( | lives_mt * | mt,
|  | ulong | uid
| ) |  |

track_rect* get_block_from_track_and_time | ( | lives_mt * | mt,
|  | int | track,
|  | double | time
| ) |  |

get timeline end time of block

int get_clip_for_block | ( | track_rect * | block | ) |

char* get_eload_filename | ( | lives_mt * | mt,
|  | boolean | allow_auto_reload
| ) |  |

LiVESWidget* get_eventbox_for_track | ( | lives_mt * | mt,
|  | int | ntrack
| ) |  |

double get_mixer_track_vol | ( | lives_mt * | mt,
|  | int | trackno
| ) |  |

weed_plant_t* get_next_fm | ( | lives_mt * | mt,
|  | int | current_track,
|  | weed_plant_t * | event
| ) |  |

LIVES_INLINE lives_mt_poly_state_t get_poly_state_from_page | ( | lives_mt * | mt | ) |

weed_plant_t* get_prev_fm | ( | lives_mt * | mt,
|  | int | current_track,
|  | weed_plant_t * | event
| ) |  |

void get_region_overlap | ( | lives_mt * | mt | ) |

LIVES_INLINE double get_time_from_x | ( | lives_mt * | mt,
|  | int | x
| ) |  |

int get_track_for_block | ( | track_rect * | block | ) |

return track number for a given block

LIVES_INLINE char* get_track_name | ( | lives_mt * | mt,
|  | int | track_num,
|  | boolean | is_audio
| ) |  |

void in_anchor_toggled | ( | LiVESToggleButton * | togglebutton,
|  | livespointer | user_data
| ) |  |

void in_out_end_changed | ( | LiVESWidget * | widget,
|  | livespointer | user_data
| ) |  |

void in_out_start_changed | ( | LiVESWidget * | widget,
|  | livespointer | user_data
| ) |  |

void insert_at_ctx_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void insert_audio | ( | int | filenum,
|  | weed_timecode_t | offset_start,
|  | weed_timecode_t | offset_end,
|  | weed_timecode_t | tc,
|  | double | avel,
|  | lives_direction_t | direction,
|  | LiVESWidget * | eventbox,
|  | lives_mt * | mt,
|  | track_rect * | in_block
| ) |  |

void insert_audio_at_ctx_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void insert_audio_here_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void insert_frames | ( | int | filenum,
|  | weed_timecode_t | offset_start,
|  | weed_timecode_t | offset_end,
|  | weed_timecode_t | tc,
|  | lives_direction_t | direction,
|  | LiVESWidget * | eventbox,
|  | lives_mt * | mt,
|  | track_rect * | in_block
| ) |  |

void insert_here_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

LiVESList* layout_audio_is_affected | ( | int | clipno,
|  | double | time
| ) |  |

LiVESList* layout_frame_is_affected | ( | int | clipno,
|  | int | frame
| ) |  |

void list_fx_here_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

weed_plant_t* load_event_list | ( | lives_mt * | mt,
|  | char * | eload_file
| ) |  |

LiVESList* load_layout_map | ( | void |  | ) |

boolean make_backup_space | ( | lives_mt * | mt,
|  | size_t | space_needed
| ) |  |

LiVESPixbuf* make_thumb | ( | lives_mt * | mt,
|  | int | file,
|  | int | width,
|  | int | height,
|  | int | frame,
|  | boolean | noblanks
| ) |  |

LiVESPixbuf* make_thumb_fast_between | ( | lives_mt * | mt,
|  | int | fileno,
|  | int | width,
|  | int | height,
|  | int | tframe,
|  | int | range
| ) |  |

void migrate_layouts | ( | const char * | old_set_name,
|  | const char * | new_set_name
| ) |  |

void mouse_mode_context | ( | lives_mt * | mt | ) |

track_rect* move_block | ( | lives_mt * | mt,
|  | track_rect * | block,
|  | double | timesecs,
|  | int | old_track,
|  | int | new_track
| ) |  |

void move_init_in_filter_map | ( | lives_mt * | mt,
|  | weed_plant_t * | event_list,
|  | weed_plant_t * | event,
|  | weed_plant_t * | ifrom,
|  | weed_plant_t * | ito,
|  | int | track,
|  | boolean | after
| ) |  |

void mt_add_block_effect | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void mt_add_region_effect | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void mt_aparam_view_toggled | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void mt_backup | ( | lives_mt * | mt,
|  | int | undo_type,
|  | weed_timecode_t | tc
| ) |  |

void mt_center_on_cursor | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void mt_change_disp_tracks_ok | ( | LiVESButton * | button,
|  | livespointer | user_data
| ) |  |

void mt_change_max_disp_tracks | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void mt_change_vals_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void mt_clear_timeline | ( | lives_mt * | mt | ) |

void mt_clip_select | ( | lives_mt * | mt,
|  | boolean | scroll
| ) |  |

void mt_delete_clips | ( | lives_mt * | mt,
|  | int | file
| ) |  |

void mt_desensitise | ( | lives_mt * | mt | ) |

void mt_do_autotransition | ( | lives_mt * | mt,
|  | track_rect * | block
| ) |  |

call this on a block to apply autotransition on it

<invalid block

<filter has no (visible) in parameters

< filter has no transition parameter

< cannot transition with self !

< force some visual changes

< cannot transition with self !

void mt_fixup_events | ( | lives_mt * | mt,
|  | weed_plant_t * | old_event,
|  | weed_plant_t * | new_event
| ) |  |

void mt_fplay_toggled | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

int mt_get_block_count | ( | lives_mt * | mt,
|  | int | ntrack
| ) |  |

count blocks in track

< no blocks in track

double mt_get_block_entime | ( | lives_mt * | mt,
|  | int | ntrack,
|  | int | iblock
| ) |  |

return time in seconds of last frame event in block, + event duration

get timeline start time of block

< invalid track or block number

double mt_get_block_sttime | ( | lives_mt * | mt,
|  | int | ntrack,
|  | int | iblock
| ) |  |

return time in seconds of first frame event in block

< invalid track or block number

double mt_get_effect_time | ( | lives_mt * | mt | ) |

ulong mt_get_last_block_uid | ( | lives_mt * | mt | ) |

get index of last inserted (wallclock time) block for track

< no blocks in track

void** mt_get_pchain | ( | void |  | ) |

uint32_t mt_idle_add | ( | lives_mt * | mt | ) |

void mt_ign_ins_sel_toggled | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void mt_init_clips | ( | lives_mt * | mt,
|  | int | orig_file,
|  | boolean | add
| ) |  |

void mt_init_start_end_spins | ( | lives_mt * | mt | ) |

void mt_init_tracks | ( | lives_mt * | mt,
|  | boolean | set_min_max
| ) |  |

add basic tracks, or set tracks from mt->event_list

void mt_load_vals_toggled | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

boolean mt_mark_callback | ( | LiVESAccelGroup * | group,
|  | LiVESObject * | obj,
|  | uint32_t | keyval,
|  | LiVESXModifierType | mod,
|  | livespointer | user_data
| ) |  |

boolean mt_nextclip | ( | LiVESAccelGroup * | group,
|  | LiVESObject * | obj,
|  | uint32_t | keyval,
|  | LiVESXModifierType | mod,
|  | livespointer | user_data
| ) |  |

void mt_norm_aud_toggled | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void mt_post_playback | ( | lives_mt * | mt | ) |

void mt_prepare_for_playback | ( | lives_mt * | mt | ) |

boolean mt_prevclip | ( | LiVESAccelGroup * | group,
|  | LiVESObject * | obj,
|  | uint32_t | keyval,
|  | LiVESXModifierType | mod,
|  | livespointer | user_data
| ) |  |

void mt_quit_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void mt_render_aud_toggled | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void mt_render_vid_toggled | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void mt_save_vals_toggled | ( | LiVESMenuItem * | ,
|  | livespointer | mt
| ) |  |

void mt_sensitise | ( | lives_mt * | mt | ) |

void mt_set_autotrans | ( | int | idx | ) |

void mt_show_current_frame | ( | lives_mt * | mt,
|  | boolean | return_layer
| ) |  |

preview the current frame

void mt_spin_end_value_changed | ( | LiVESSpinButton * | spinbutton,
|  | livespointer | user_data
| ) |  |

void mt_spin_start_value_changed | ( | LiVESSpinButton * | spinbutton,
|  | livespointer | user_data
| ) |  |

void mt_swap_play_pause | ( | lives_mt * | mt,
|  | boolean | put_pause
| ) |  |

void mt_tl_move | ( | lives_mt * | mt,
|  | double | pos
| ) |  |

LIVES_INLINE void mt_tl_move_relative | ( | lives_mt * | mt,
|  | double | pos_rel
| ) |  |

boolean mt_tlback | ( | LiVESAccelGroup * | group,
|  | LiVESObject * | obj,
|  | uint32_t | keyval,
|  | LiVESXModifierType | mod,
|  | livespointer | user_data
| ) |  |

boolean mt_tlback_frame | ( | LiVESAccelGroup * | group,
|  | LiVESObject * | obj,
|  | uint32_t | keyval,
|  | LiVESXModifierType | mod,
|  | livespointer | user_data
| ) |  |

boolean mt_tlfor | ( | LiVESAccelGroup * | group,
|  | LiVESObject * | obj,
|  | uint32_t | keyval,
|  | LiVESXModifierType | mod,
|  | livespointer | user_data
| ) |  |

boolean mt_tlfor_frame | ( | LiVESAccelGroup * | group,
|  | LiVESObject * | obj,
|  | uint32_t | keyval,
|  | LiVESXModifierType | mod,
|  | livespointer | user_data
| ) |  |

boolean mt_track_is_audio | ( | lives_mt * | mt,
|  | int | ntrack
| ) |  |

return TRUE if ntrack is a valid backing audio track

boolean mt_track_is_video | ( | lives_mt * | mt,
|  | int | ntrack
| ) |  |

return TRUE if ntrack is a valid video track

boolean mt_trdown | ( | LiVESAccelGroup * | group,
|  | LiVESObject * | obj,
|  | uint32_t | keyval,
|  | LiVESXModifierType | mod,
|  | livespointer | user_data
| ) |  |

boolean mt_trup | ( | LiVESAccelGroup * | group,
|  | LiVESObject * | obj,
|  | uint32_t | keyval,
|  | LiVESXModifierType | mod,
|  | livespointer | user_data
| ) |  |

void mt_view_audio_toggled | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void mt_view_ctx_toggled | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void mt_zoom_in | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void mt_zoom_out | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

lives_mt* multitrack | ( | weed_plant_t * | event_list,
|  | int | orig_file,
|  | double | fps
| ) |  |

create and return lives_mt struct

the autotransitions menu

apply block effect menu

None autotransition

void multitrack_adj_start_end | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

boolean multitrack_audio_insert | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void multitrack_clear_marks | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

boolean multitrack_delete | ( | lives_mt * | mt,
|  | boolean | save_layout
| ) |  |

void multitrack_end_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

boolean multitrack_insert | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void multitrack_play_sel | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void multitrack_playall | ( | lives_mt * | mt | ) |

void multitrack_preview_clicked | ( | LiVESWidget * | button,
|  | livespointer | user_data
| ) |  |

void multitrack_redo | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void multitrack_undo | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void multitrack_view_clips | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void multitrack_view_details | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void multitrack_view_events | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void multitrack_view_in_out | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void multitrack_view_sel_events | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void on_add_video_track_activate | ( | LiVESMenuItem * | ,
|  | livespointer | mt
| ) |  |

void on_amixer_close_clicked | ( | LiVESButton * | button,
|  | lives_mt * | mt
| ) |  |

void on_amixer_slider_changed | ( | LiVESAdjustment * | adj,
|  | lives_mt * | mt
| ) |  |

void on_cback_audio_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void on_clear_event_list_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void on_del_node_clicked | ( | LiVESWidget * | button,
|  | livespointer | user_data
| ) |  |

void on_fx_insa_clicked | ( | LiVESWidget * | button,
|  | livespointer | user_data
| ) |  |

void on_fx_insb_clicked | ( | LiVESWidget * | button,
|  | livespointer | user_data
| ) |  |

void on_insgap_cur_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void on_insgap_sel_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void on_jumpback_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void on_jumpnext_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

boolean on_load_event_list_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void on_move_fx_changed | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void on_mt_delfx_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void on_mt_fx_edit_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void on_mt_list_fx_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void on_mt_showkeys_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

boolean on_multitrack_activate | ( | LiVESMenuItem * | menuitem,
|  | weed_plant_t * | event_list
| ) |  |

menuitem callback

void on_next_fm_clicked | ( | LiVESWidget * | button,
|  | livespointer | user_data
| ) |  |

void on_next_node_clicked | ( | LiVESWidget * | button,
|  | livespointer | user_data
| ) |  |

void on_node_spin_value_changed | ( | LiVESSpinButton * | spinbutton,
|  | livespointer | user_data
| ) |  |

void on_prerender_aud_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void on_prev_fm_clicked | ( | LiVESWidget * | button,
|  | livespointer | user_data
| ) |  |

void on_prev_node_clicked | ( | LiVESWidget * | button,
|  | livespointer | user_data
| ) |  |

void on_rename_track_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

boolean on_render_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

boolean on_save_event_list_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void on_seltrack_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void on_seltrack_toggled | ( | LiVESWidget * | checkbutton,
|  | livespointer | user_data
| ) |  |

void on_set_pvals_clicked | ( | LiVESWidget * | button,
|  | livespointer | mt
| ) |  |

void on_split_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void on_split_curr_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void on_split_sel_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

boolean on_timeline_press | ( | LiVESWidget * | widget,
|  | LiVESXEventButton * | event,
|  | livespointer | user_data
| ) |  |

boolean on_timeline_release | ( | LiVESWidget * | eventbox,
|  | LiVESXEventButton * | event,
|  | livespointer | user_data
| ) |  |

boolean on_timeline_update | ( | LiVESWidget * | widget,
|  | LiVESXEventMotion * | event,
|  | livespointer | user_data
| ) |  |

boolean on_track_between_click | ( | LiVESWidget * | widget,
|  | LiVESXEventButton * | event,
|  | livespointer | user_data
| ) |  |

boolean on_track_between_release | ( | LiVESWidget * | widget,
|  | LiVESXEventButton * | event,
|  | livespointer | user_data
| ) |  |

boolean on_track_click | ( | LiVESWidget * | eventbox,
|  | LiVESXEventButton * | event,
|  | livespointer | user_data
| ) |  |

boolean on_track_header_click | ( | LiVESWidget * | widget,
|  | LiVESXEventButton * | event,
|  | livespointer | user_data
| ) |  |

boolean on_track_header_move | ( | LiVESWidget * | widget,
|  | LiVESXEventMotion * | event,
|  | livespointer | user_data
| ) |  |

boolean on_track_header_release | ( | LiVESWidget * | widget,
|  | LiVESXEventButton * | event,
|  | livespointer | user_data
| ) |  |

boolean on_track_move | ( | LiVESWidget * | widget,
|  | LiVESXEventMotion * | event,
|  | livespointer | user_data
| ) |  |

boolean on_track_release | ( | LiVESWidget * | eventbox,
|  | LiVESXEventButton * | event,
|  | livespointer | user_data
| ) |  |

void out_anchor_toggled | ( | LiVESToggleButton * | togglebutton,
|  | livespointer | user_data
| ) |  |

LIVES_INLINE int poly_page_to_tab | ( | uint32_t | page | ) |

LIVES_INLINE int poly_tab_to_page | ( | uint32_t | tab | ) |

void polymorph | ( | lives_mt * | mt,
|  | lives_mt_poly_state_t | poly
| ) |  |

< can happen during mt exit

void re_to_tc | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void recover_layout | ( | void |  | ) |

void recover_layout_cancelled | ( | boolean | is_startup | ) |

void remove_current_from_affected_layouts | ( | lives_mt * | mt | ) |

void remove_first_gaps | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void remove_gaps | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void remove_markers | ( | weed_plant_t * | event_list | ) |

boolean resize_timeline | ( | lives_mt * | mt | ) |

void rs_to_tc | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void save_layout_map | ( | int * | lmap,
|  | double * | lmap_audio,
|  | const char * | file,
|  | const char * | dir
| ) |  |

void scroll_track_by_scrollbar | ( | LiVESScrollbar * | sbar,
|  | livespointer | user_data
| ) |  |

void scroll_tracks | ( | lives_mt * | mt,
|  | int | top_track,
|  | boolean | set_value
| ) |  |

void selblock_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void select_all_time | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void select_all_vid | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void select_from_zero_time | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void select_no_vid | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void select_to_end_time | ( | LiVESMenuItem * | menuitem,
|  | livespointer | mt
| ) |  |

void set_mixer_track_vol | ( | lives_mt * | mt,
|  | int | trackno,
|  | double | vol
| ) |  |

boolean set_new_set_name | ( | lives_mt * | mt | ) |

LIVES_INLINE void set_params_unchanged | ( | lives_rfx_t * | rfx | ) |

void set_timeline_end_secs | ( | lives_mt * | mt,
|  | double | secs
| ) |  |

void set_track_label_string | ( | lives_mt * | mt,
|  | int | track,
|  | const char * | label
| ) |  |

char* set_values_from_defs | ( | lives_mt * | mt,
|  | boolean | from_prefs
| ) |  |

void show_clipinfo_cb | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void show_frame_events_activate | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void stored_event_list_free_all | ( | boolean | wiped | ) |

void stored_event_list_free_undos | ( | void |  | ) |

void tc_to_re | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

void tc_to_rs | ( | LiVESMenuItem * | menuitem,
|  | livespointer | user_data
| ) |  |

boolean track_arrow_pressed | ( | LiVESWidget * | ebox,
|  | LiVESXEventButton * | event,
|  | livespointer | user_data
| ) |  |

void track_select | ( | lives_mt * | mt | ) |

must call after setting mt->current_track

void unpaint_line | ( | lives_mt * | mt,
|  | LiVESWidget * | eventbox
| ) |  |

void unpaint_lines | ( | lives_mt * | mt | ) |

void unselect_all | ( | lives_mt * | mt | ) |

unselect all blocks

void update_filter_events | ( | lives_mt * | mt,
|  | weed_plant_t * | first_event,
|  | weed_timecode_t | start_tc,
|  | weed_timecode_t | end_tc,
|  | int | track,
|  | weed_timecode_t | new_start_tc,
|  | int | new_track
| ) |  |

void update_grav_mode | ( | lives_mt * | mt | ) |

void update_insert_mode | ( | lives_mt * | mt | ) |

boolean used_in_current_layout | ( | lives_mt * | mt,
|  | int | file
| ) |  |

void wipe_layout | ( | lives_mt * | mt | ) |

boolean write_backup_layout_numbering | ( | lives_mt * | mt | ) |