LiVES 1.4.9
Data Structures | Defines | Enumerations | Functions

src/multitrack.h File Reference

Go to the source code of this file.

Data Structures

struct  mt_opts
struct  lives_mt
struct  mt_undo
struct  lives_amixer_t
struct  track_rect
struct  ttable
struct  layout_map

Defines

#define CLIP_THUMB_WIDTH   72
#define CLIP_THUMB_HEIGHT   72
#define CLIP_LABEL_LENGTH   20
#define BLOCK_THUMB_WIDTH   40
#define BLOCK_DRAW_SIMPLE   1
#define BLOCK_DRAW_THUMB   2
#define BLOCK_DRAW_TYPE   BLOCK_DRAW_THUMB
#define MT_PLAY_WIDTH_SMALL   320
#define MT_PLAY_HEIGHT_SMALL   216
#define MT_PLAY_WIDTH_EXP   480
#define MT_PLAY_HEIGHT_EXP   360
#define MT_CTX_WIDTH   320
#define MT_CTX_HEIGHT   220
#define FX_BLOCK_WIDTH   80
#define FX_BLOCK_HEIGHT   20
#define TIMECODE_LENGTH   14
 length of timecode text entry, must be >12
#define DEF_TIME   120
 default seconds when there is no event_list
#define MT_BORDER_WIDTH   20
 width border for window
#define IN_OUT_SEP   10
 min pixel separation for in/out images in poly_box (per image)
#define MAX_DISP_VTRACKS   5
#define TRACK_I_HIDDEN_USER   (1<<0)
#define TRACK_I_HIDDEN_SCROLLED   (1<<1)

Enumerations

enum  lives_mt_mouse_mode_t { MOUSE_MODE_MOVE, MOUSE_MODE_SELECT, MOUSE_MODE_COPY }
enum  lives_mt_insert_mode_t {
  INSERT_MODE_NORMAL, INSERT_MODE_OVERWRITE, INSERT_MODE_EXPAND, INSERT_MODE_FILL_START,
  INSERT_MODE_FILL_END
}
enum  lives_mt_grav_mode_t { GRAV_MODE_NORMAL, GRAV_MODE_LEFT, GRAV_MODE_RIGHT }
enum  lives_mt_undo_t {
  MT_UNDO_NONE = 0, MT_UNDO_INSERT_BLOCK = 1, MT_UNDO_INSERT_AUDIO_BLOCK = 2, MT_UNDO_APPLY_FILTER = 512,
  MT_UNDO_DELETE_FILTER = 513, MT_UNDO_SPLIT = 514, MT_UNDO_SPLIT_MULTI = 515, MT_UNDO_FILTER_MAP_CHANGE = 516,
  MT_UNDO_DELETE_BLOCK = 1024, MT_UNDO_MOVE_BLOCK = 1025, MT_UNDO_REMOVE_GAPS = 1026, MT_UNDO_DELETE_AUDIO_BLOCK = 1027,
  MT_UNDO_MOVE_AUDIO_BLOCK = 1028, MT_UNDO_INSERT_GAP = 1029
}
enum  lives_mt_nb_error_t {
  NB_ERROR_SEL, NB_ERROR_NOEFFECT, NB_ERROR_NOTRANS, NB_ERROR_NOCOMP,
  NB_ERROR_NOCLIP
}
enum  lives_mt_poly_state_t {
  POLY_NONE = 0, POLY_CLIPS, POLY_IN_OUT, POLY_FX_STACK,
  POLY_EFFECTS, POLY_TRANS, POLY_COMP, POLY_PARAMS
}
enum  lives_direction_t { DIRECTION_NEGATIVE, DIRECTION_POSITIVE }
enum  lives_mt_last_fx_type_t { MT_LAST_FX_NONE = 0, MT_LAST_FX_BLOCK, MT_LAST_FX_REGION }
enum  lives_mt_fx_order_t { FX_ORD_NONE = 0, FX_ORD_BEFORE, FX_ORD_AFTER }
enum  lives_mt_block_state_t { BLOCK_UNSELECTED = 0, BLOCK_SELECTED }
enum  lives_lmap_error_t {
  LMAP_ERROR_MISSING_CLIP = 1, LMAP_ERROR_CLOSE_FILE = 2, LMAP_ERROR_DELETE_FRAMES = 3, LMAP_ERROR_DELETE_AUDIO = 4,
  LMAP_ERROR_SHIFT_FRAMES = 65, LMAP_ERROR_ALTER_FRAMES = 66, LMAP_ERROR_SHIFT_AUDIO = 67, LMAP_ERROR_ALTER_AUDIO = 68,
  LMAP_INFO_SETNAME_CHANGED = 1024
}

Functions

lives_mt * multitrack (weed_plant_t *, gint orig_file, gdouble fps)
 create and return lives_mt struct
void mt_init_tracks (lives_mt *, gboolean set_min_max)
 add basic tracks, or set tracks from mt->event_list
gboolean on_multitrack_activate (GtkMenuItem *menuitem, weed_plant_t *event_list)
 menuitem callback
gboolean multitrack_delete (lives_mt *, gboolean save)
void polymorph (lives_mt *, lives_mt_poly_state_t poly)
void mt_desensitise (lives_mt *)
void mt_sensitise (lives_mt *)
void insert_here_cb (GtkMenuItem *, gpointer mt)
void insert_audio_here_cb (GtkMenuItem *, gpointer mt)
void insert_at_ctx_cb (GtkMenuItem *, gpointer mt)
void insert_audio_at_ctx_cb (GtkMenuItem *, gpointer mt)
void multitrack_end_cb (GtkMenuItem *, gpointer mt)
void delete_block_cb (GtkMenuItem *, gpointer mt)
void selblock_cb (GtkMenuItem *, gpointer mt)
void list_fx_here_cb (GtkMenuItem *, gpointer mt)
void edit_start_end_cb (GtkMenuItem *, gpointer mt)
void close_clip_cb (GtkMenuItem *, gpointer mt)
void show_clipinfo_cb (GtkMenuItem *, gpointer mt)
void on_add_video_track_activate (GtkMenuItem *, gpointer mt)
void multitrack_insert (GtkMenuItem *, gpointer mt)
void multitrack_adj_start_end (GtkMenuItem *, gpointer mt)
void multitrack_audio_insert (GtkMenuItem *, gpointer mt)
void multitrack_view_events (GtkMenuItem *, gpointer mt)
void multitrack_view_sel_events (GtkMenuItem *, gpointer mt)
void on_render_activate (GtkMenuItem *, gpointer mt)
void on_prerender_aud_activate (GtkMenuItem *, gpointer mt)
void on_jumpnext_activate (GtkMenuItem *, gpointer mt)
void on_jumpback_activate (GtkMenuItem *, gpointer mt)
void on_delblock_activate (GtkMenuItem *, gpointer mt)
void on_seltrack_activate (GtkMenuItem *, gpointer mt)
void multitrack_view_details (GtkMenuItem *, gpointer mt)
void mt_add_region_effect (GtkMenuItem *, gpointer mt)
void mt_add_block_effect (GtkMenuItem *, gpointer mt)
void on_save_event_list_activate (GtkMenuItem *, gpointer mt)
void on_load_event_list_activate (GtkMenuItem *, gpointer mt)
void on_clear_event_list_activate (GtkMenuItem *, gpointer mt)
void show_frame_events_activate (GtkMenuItem *, gpointer)
void mt_save_vals_toggled (GtkMenuItem *, gpointer mt)
void mt_load_vals_toggled (GtkMenuItem *, gpointer mt)
void mt_render_vid_toggled (GtkMenuItem *, gpointer mt)
void mt_render_aud_toggled (GtkMenuItem *, gpointer mt)
void mt_fplay_toggled (GtkMenuItem *, gpointer mt)
void mt_change_vals_activate (GtkMenuItem *, gpointer mt)
void on_set_pvals_clicked (GtkWidget *button, gpointer mt)
void on_move_fx_changed (GtkMenuItem *, gpointer mt)
void select_all_time (GtkMenuItem *, gpointer mt)
void select_from_zero_time (GtkMenuItem *, gpointer mt)
void select_to_end_time (GtkMenuItem *, gpointer mt)
void select_all_vid (GtkMenuItem *, gpointer mt)
void select_no_vid (GtkMenuItem *, gpointer mt)
void on_split_sel_activate (GtkMenuItem *, gpointer mt)
void on_split_curr_activate (GtkMenuItem *, gpointer mt)
void multitrack_undo (GtkMenuItem *, gpointer mt)
void multitrack_redo (GtkMenuItem *, gpointer mt)
void on_mt_showkeys_activate (GtkMenuItem *, gpointer)
void on_mt_list_fx_activate (GtkMenuItem *, gpointer mt)
void on_mt_delfx_activate (GtkMenuItem *, gpointer mt)
void on_mt_fx_edit_activate (GtkMenuItem *, gpointer mt)
void mt_view_audio_toggled (GtkMenuItem *, gpointer mt)
void mt_view_ctx_toggled (GtkMenuItem *, gpointer mt)
void mt_ign_ins_sel_toggled (GtkMenuItem *, gpointer mt)
void mt_change_max_disp_tracks (GtkMenuItem *, gpointer mt)
weed_plant_t * add_blank_frames_up_to (weed_plant_t *event_list, weed_plant_t *start_event, weed_timecode_t end_tc, gdouble fps)
void on_cback_audio_activate (GtkMenuItem *, gpointer mt)
GtkWidget * add_audio_track (lives_mt *, gint trackno, gboolean behind)
void add_video_track_behind (GtkMenuItem *, gpointer mt)
void add_video_track_front (GtkMenuItem *, gpointer mt)
void delete_video_track (lives_mt *, gint layer, gboolean full)
void delete_audio_track (lives_mt *, GtkWidget *eventbox, gboolean full)
void delete_audio_tracks (lives_mt *, GList *list, gboolean full)
void remove_gaps (GtkMenuItem *, gpointer mt)
void remove_first_gaps (GtkMenuItem *, gpointer mt)
void on_insgap_sel_activate (GtkMenuItem *, gpointer mt)
void on_insgap_cur_activate (GtkMenuItem *, gpointer mt)
void on_split_activate (GtkMenuItem *, gpointer mt)
void scroll_tracks (lives_mt *, gint top_track)
gboolean track_arrow_pressed (GtkWidget *ahbox, GdkEventButton *, gpointer mt)
void track_select (lives_mt *)
 must call after setting mt->current_track
gboolean mt_track_is_audio (lives_mt *, int ntrack)
 return TRUE if ntrack is a valid backing audio track
gboolean mt_track_is_video (lives_mt *, int ntrack)
 return TRUE if ntrack is a valid video track
void mt_do_autotransition (lives_mt *, track_rect *block)
 call this on a block to apply autotransition on it
gboolean on_track_click (GtkWidget *eventbox, GdkEventButton *, gpointer mt)
gboolean on_atrack_click (GtkWidget *eventbox, GdkEventButton *, gpointer mt)
gboolean on_track_header_click (GtkWidget *eventbox, GdkEventButton *, gpointer mt)
gboolean on_track_between_click (GtkWidget *eventbox, GdkEventButton *, gpointer mt)
gboolean on_track_release (GtkWidget *eventbox, GdkEventButton *event, gpointer mt)
gboolean on_atrack_release (GtkWidget *eventbox, GdkEventButton *event, gpointer mt)
gboolean on_track_header_release (GtkWidget *eventbox, GdkEventButton *, gpointer mt)
gboolean on_track_between_release (GtkWidget *eventbox, GdkEventButton *, gpointer mt)
gboolean on_track_move (GtkWidget *widget, GdkEventMotion *event, gpointer mt)
gboolean on_track_header_move (GtkWidget *widget, GdkEventMotion *event, gpointer mt)
void unselect_all (lives_mt *)
 unselect all blocks
void insert_frames (gint filenum, weed_timecode_t offset_start, weed_timecode_t offset_end, weed_timecode_t tc, lives_direction_t direction, GtkWidget *eventbox, lives_mt *, track_rect *in_block)
void insert_audio (gint filenum, weed_timecode_t offset_start, weed_timecode_t offset_end, weed_timecode_t tc, gdouble avel, lives_direction_t direction, GtkWidget *eventbox, lives_mt *, track_rect *in_block)
void on_seltrack_toggled (GtkWidget *, gpointer mt)
void scroll_track_by_scrollbar (GtkVScrollbar *sbar, gpointer mt)
void in_out_start_changed (GtkWidget *, gpointer mt)
void in_out_end_changed (GtkWidget *, gpointer mt)
void in_anchor_toggled (GtkToggleButton *, gpointer mt)
void out_anchor_toggled (GtkToggleButton *, gpointer mt)
void avel_reverse_toggled (GtkToggleButton *, gpointer mt)
void avel_spin_changed (GtkSpinButton *, gpointer mt)
gint mt_get_last_block_number (lives_mt *, int ntrack)
 get index of last inserted (wallclock time) block for track
gint mt_get_block_count (lives_mt *, int ntrack)
 count blocks in track
gdouble mt_get_block_sttime (lives_mt *, int ntrack, int iblock)
 return time in seconds of first frame event in block
gdouble mt_get_block_entime (lives_mt *, int ntrack, int iblock)
 get timeline start time of block
void mt_tl_move (lives_mt *, gdouble pos_rel)
 get timeline end time of block
void set_timeline_end_secs (lives_mt *, gdouble secs)
gboolean on_timeline_press (GtkWidget *, GdkEventButton *, gpointer mt)
gboolean on_timeline_release (GtkWidget *, GdkEventButton *, gpointer mt)
gboolean on_timeline_update (GtkWidget *, GdkEventMotion *, gpointer mt)
gint expose_timeline_reg_event (GtkWidget *, GdkEventExpose *, gpointer mt)
gint mt_expose_laudtrack_event (GtkWidget *ebox, GdkEventExpose *, gpointer mt)
gint mt_expose_raudtrack_event (GtkWidget *ebox, GdkEventExpose *, gpointer mt)
void draw_region (lives_mt *mt)
void tc_to_rs (GtkMenuItem *, gpointer mt)
void tc_to_re (GtkMenuItem *, gpointer mt)
void rs_to_tc (GtkMenuItem *, gpointer mt)
void re_to_tc (GtkMenuItem *, gpointer mt)
gboolean mt_mark_callback (GtkAccelGroup *group, GObject *obj, guint keyval, GdkModifierType mod, gpointer user_data)
void multitrack_clear_marks (GtkMenuItem *, gpointer mt)
void mt_show_current_frame (lives_mt *, gboolean return_layer)
 preview the current frame
void mt_clear_timeline (lives_mt *mt)
void clear_context (lives_mt *)
void add_context_label (lives_mt *, const gchar *text)
void mouse_mode_context (lives_mt *)
void do_sel_context (lives_mt *)
void do_fx_list_context (lives_mt *, gint fxcount)
void do_fx_move_context (lives_mt *mt)
void multitrack_playall (lives_mt *)
void multitrack_play_sel (GtkMenuItem *, gpointer mt)
void animate_multitrack (lives_mt *)
void unpaint_line (lives_mt *, GtkWidget *eventbox)
void unpaint_lines (lives_mt *)
void mt_prepare_for_playback (lives_mt *)
void mt_post_playback (lives_mt *)
void on_next_node_clicked (GtkWidget *, gpointer mt)
void on_prev_node_clicked (GtkWidget *, gpointer mt)
void on_del_node_clicked (GtkWidget *, gpointer mt)
void on_node_spin_value_changed (GtkSpinButton *, gpointer mt)
gdouble mt_get_effect_time (lives_mt *)
void on_frame_preview_clicked (GtkButton *, gpointer mt)
void show_preview (lives_mt *, weed_timecode_t tc)
weed_plant_t * get_prev_fm (lives_mt *, gint current_track, weed_plant_t *frame)
weed_plant_t * get_next_fm (lives_mt *, gint current_track, weed_plant_t *frame)
void on_prev_fm_clicked (GtkWidget *button, gpointer user_data)
void on_next_fm_clicked (GtkWidget *button, gpointer user_data)
void on_fx_insb_clicked (GtkWidget *button, gpointer user_data)
void on_fx_insa_clicked (GtkWidget *button, gpointer user_data)
guint event_list_get_byte_size (lives_mt *mt, weed_plant_t *event_list, int *num_events)
 returns bytes and sets num_events
gboolean event_list_rectify (lives_mt *, weed_plant_t *event_listy)
gboolean make_backup_space (lives_mt *, size_t space_needed)
void activate_mt_preview (lives_mt *)
 sensitize Show Preview and Apply buttons
void ** mt_get_pchain (void)
void event_list_free_undos (lives_mt *)
gboolean used_in_current_layout (lives_mt *, gint file)
gboolean compare_filter_maps (weed_plant_t *fm1, weed_plant_t *fm2, gint ctrack)
 ctrack can be -1 to compare all events, else we cf for ctrack
void move_init_in_filter_map (lives_mt *mt, weed_plant_t *event_list, weed_plant_t *fmap, weed_plant_t *ifrom, weed_plant_t *ito, gint track, gboolean after)
void update_filter_events (lives_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 mt_fixup_events (lives_mt *, weed_plant_t *old_event, weed_plant_t *new_event)
weed_plant_t * load_event_list (lives_mt *, gchar *eload_file)
GList * load_layout_map (void)
void add_markers (lives_mt *, weed_plant_t *event_list)
void remove_markers (weed_plant_t *event_list)
void save_layout_map (int *lmap, double *lmap_audio, const gchar *file, const gchar *dir)
void wipe_layout (lives_mt *)
void migrate_layouts (const gchar *old_set_name, const gchar *new_set_name)
GList * layout_frame_is_affected (gint clipno, gint frame)
GList * layout_audio_is_affected (gint clipno, gdouble time)
gboolean check_for_layout_del (lives_mt *, gboolean exiting)
void stored_event_list_free_all (gboolean wiped)
void stored_event_list_free_undos (void)
void remove_current_from_affected_layouts (lives_mt *)
guint mt_idle_add (lives_mt *)
void recover_layout (GtkButton *, gpointer)
void recover_layout_cancelled (GtkButton *, gpointer user_data)
void write_backup_layout_numbering (lives_mt *)
void mouse_select_end (GtkWidget *, lives_mt *)
void amixer_show (GtkButton *, gpointer mt)
void on_amixer_close_clicked (GtkButton *, lives_mt *mt)
GtkWidget * amixer_add_channel_slider (lives_mt *, gint i)
void mt_change_disp_tracks_ok (GtkButton *, gpointer user_data)
void mt_swap_play_pause (lives_mt *, gboolean put_pause)
gchar * set_values_from_defs (lives_mt *, gboolean from_prefs)
void mt_clip_select (lives_mt *, gboolean scroll)
void mt_delete_clips (lives_mt *, gint file)
void mt_init_clips (lives_mt *, gint orig_file, gboolean add)
gboolean mt_prevclip (GtkAccelGroup *group, GObject *obj, guint keyval, GdkModifierType mod, gpointer user_data)
gboolean mt_nextclip (GtkAccelGroup *group, GObject *obj, guint keyval, GdkModifierType mod, gpointer user_data)

Define Documentation

#define BLOCK_DRAW_SIMPLE   1
#define BLOCK_DRAW_THUMB   2
#define BLOCK_DRAW_TYPE   BLOCK_DRAW_THUMB
#define BLOCK_THUMB_WIDTH   40
#define CLIP_LABEL_LENGTH   20
#define CLIP_THUMB_HEIGHT   72
#define CLIP_THUMB_WIDTH   72
#define DEF_TIME   120

default seconds when there is no event_list

#define FX_BLOCK_HEIGHT   20
#define FX_BLOCK_WIDTH   80
#define IN_OUT_SEP   10

min pixel separation for in/out images in poly_box (per image)

#define MAX_DISP_VTRACKS   5
#define MT_BORDER_WIDTH   20

width border for window

#define MT_CTX_HEIGHT   220
#define MT_CTX_WIDTH   320
#define MT_PLAY_HEIGHT_EXP   360
#define MT_PLAY_HEIGHT_SMALL   216
#define MT_PLAY_WIDTH_EXP   480
#define MT_PLAY_WIDTH_SMALL   320
#define TIMECODE_LENGTH   14

length of timecode text entry, must be >12

#define TRACK_I_HIDDEN_SCROLLED   (1<<1)
#define TRACK_I_HIDDEN_USER   (1<<0)

Enumeration Type Documentation

Enumerator:
DIRECTION_NEGATIVE 
DIRECTION_POSITIVE 
Enumerator:
LMAP_ERROR_MISSING_CLIP 
LMAP_ERROR_CLOSE_FILE 
LMAP_ERROR_DELETE_FRAMES 
LMAP_ERROR_DELETE_AUDIO 
LMAP_ERROR_SHIFT_FRAMES 
LMAP_ERROR_ALTER_FRAMES 
LMAP_ERROR_SHIFT_AUDIO 
LMAP_ERROR_ALTER_AUDIO 
LMAP_INFO_SETNAME_CHANGED 
Enumerator:
BLOCK_UNSELECTED 
BLOCK_SELECTED 
Enumerator:
FX_ORD_NONE 
FX_ORD_BEFORE 
FX_ORD_AFTER 
Enumerator:
GRAV_MODE_NORMAL 
GRAV_MODE_LEFT 
GRAV_MODE_RIGHT 
Enumerator:
INSERT_MODE_NORMAL 

the default (only insert if it fits)

INSERT_MODE_OVERWRITE 

overwite existing blocks

INSERT_MODE_EXPAND 

repeat to fill gap

INSERT_MODE_FILL_START 

insert enough to fill gap (from selection start)

INSERT_MODE_FILL_END 

insert enough to fill gap (to selection end)

Enumerator:
MT_LAST_FX_NONE 
MT_LAST_FX_BLOCK 
MT_LAST_FX_REGION 
Enumerator:
MOUSE_MODE_MOVE 
MOUSE_MODE_SELECT 
MOUSE_MODE_COPY 
Enumerator:
NB_ERROR_SEL 
NB_ERROR_NOEFFECT 
NB_ERROR_NOTRANS 
NB_ERROR_NOCOMP 
NB_ERROR_NOCLIP 
Enumerator:
POLY_NONE 
POLY_CLIPS 
POLY_IN_OUT 
POLY_FX_STACK 
POLY_EFFECTS 
POLY_TRANS 
POLY_COMP 
POLY_PARAMS 
Enumerator:
MT_UNDO_NONE 

no event_list

MT_UNDO_INSERT_BLOCK 
MT_UNDO_INSERT_AUDIO_BLOCK 
MT_UNDO_APPLY_FILTER 
MT_UNDO_DELETE_FILTER 
MT_UNDO_SPLIT 
MT_UNDO_SPLIT_MULTI 
MT_UNDO_FILTER_MAP_CHANGE 
MT_UNDO_DELETE_BLOCK 
MT_UNDO_MOVE_BLOCK 
MT_UNDO_REMOVE_GAPS 
MT_UNDO_DELETE_AUDIO_BLOCK 
MT_UNDO_MOVE_AUDIO_BLOCK 
MT_UNDO_INSERT_GAP 

Function Documentation

void activate_mt_preview ( lives_mt *  )

sensitize Show Preview and Apply buttons

GtkWidget* add_audio_track ( lives_mt *  ,
gint  trackno,
gboolean  behind 
)
weed_plant_t* add_blank_frames_up_to ( weed_plant_t *  event_list,
weed_plant_t *  start_event,
weed_timecode_t  end_tc,
gdouble  fps 
)
void add_context_label ( lives_mt *  ,
const gchar *  text 
)
void add_markers ( lives_mt *  ,
weed_plant_t *  event_list 
)
void add_video_track_behind ( GtkMenuItem *  ,
gpointer  mt 
)
void add_video_track_front ( GtkMenuItem *  ,
gpointer  mt 
)
GtkWidget* amixer_add_channel_slider ( lives_mt *  ,
gint  i 
)
void amixer_show ( GtkButton *  ,
gpointer  mt 
)
void animate_multitrack ( lives_mt *  )
void avel_reverse_toggled ( GtkToggleButton *  ,
gpointer  mt 
)
void avel_spin_changed ( GtkSpinButton *  ,
gpointer  mt 
)
gboolean check_for_layout_del ( lives_mt *  ,
gboolean  exiting 
)
void clear_context ( lives_mt *  )
void close_clip_cb ( GtkMenuItem *  ,
gpointer  mt 
)
gboolean compare_filter_maps ( weed_plant_t *  fm1,
weed_plant_t *  fm2,
gint  ctrack 
)

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

void delete_audio_track ( lives_mt *  ,
GtkWidget *  eventbox,
gboolean  full 
)
void delete_audio_tracks ( lives_mt *  ,
GList *  list,
gboolean  full 
)
void delete_block_cb ( GtkMenuItem *  ,
gpointer  mt 
)
void delete_video_track ( lives_mt *  ,
gint  layer,
gboolean  full 
)
void do_fx_list_context ( lives_mt *  ,
gint  fxcount 
)
void do_fx_move_context ( lives_mt *  mt)
void do_sel_context ( lives_mt *  )
void draw_region ( lives_mt *  mt)
void edit_start_end_cb ( GtkMenuItem *  ,
gpointer  mt 
)
void event_list_free_undos ( lives_mt *  )
guint event_list_get_byte_size ( lives_mt *  mt,
weed_plant_t *  event_list,
int *  num_events 
)

returns bytes and sets num_events

gboolean event_list_rectify ( lives_mt *  ,
weed_plant_t *  event_listy 
)
gint expose_timeline_reg_event ( GtkWidget *  ,
GdkEventExpose *  ,
gpointer  mt 
)
weed_plant_t* get_next_fm ( lives_mt *  ,
gint  current_track,
weed_plant_t *  frame 
)
weed_plant_t* get_prev_fm ( lives_mt *  ,
gint  current_track,
weed_plant_t *  frame 
)
void in_anchor_toggled ( GtkToggleButton *  ,
gpointer  mt 
)
void in_out_end_changed ( GtkWidget *  ,
gpointer  mt 
)
void in_out_start_changed ( GtkWidget *  ,
gpointer  mt 
)
void insert_at_ctx_cb ( GtkMenuItem *  ,
gpointer  mt 
)
void insert_audio ( gint  filenum,
weed_timecode_t  offset_start,
weed_timecode_t  offset_end,
weed_timecode_t  tc,
gdouble  avel,
lives_direction_t  direction,
GtkWidget *  eventbox,
lives_mt *  ,
track_rect *  in_block 
)
void insert_audio_at_ctx_cb ( GtkMenuItem *  ,
gpointer  mt 
)
void insert_audio_here_cb ( GtkMenuItem *  ,
gpointer  mt 
)
void insert_frames ( gint  filenum,
weed_timecode_t  offset_start,
weed_timecode_t  offset_end,
weed_timecode_t  tc,
lives_direction_t  direction,
GtkWidget *  eventbox,
lives_mt *  ,
track_rect *  in_block 
)
void insert_here_cb ( GtkMenuItem *  ,
gpointer  mt 
)
GList* layout_audio_is_affected ( gint  clipno,
gdouble  time 
)
GList* layout_frame_is_affected ( gint  clipno,
gint  frame 
)
void list_fx_here_cb ( GtkMenuItem *  ,
gpointer  mt 
)
weed_plant_t* load_event_list ( lives_mt *  ,
gchar *  eload_file 
)
GList* load_layout_map ( void  )
gboolean make_backup_space ( lives_mt *  ,
size_t  space_needed 
)
void migrate_layouts ( const gchar *  old_set_name,
const gchar *  new_set_name 
)
void mouse_mode_context ( lives_mt *  )
void mouse_select_end ( GtkWidget *  ,
lives_mt *   
)
void move_init_in_filter_map ( lives_mt *  mt,
weed_plant_t *  event_list,
weed_plant_t *  fmap,
weed_plant_t *  ifrom,
weed_plant_t *  ito,
gint  track,
gboolean  after 
)
void mt_add_block_effect ( GtkMenuItem *  ,
gpointer  mt 
)
void mt_add_region_effect ( GtkMenuItem *  ,
gpointer  mt 
)
void mt_change_disp_tracks_ok ( GtkButton *  ,
gpointer  user_data 
)
void mt_change_max_disp_tracks ( GtkMenuItem *  ,
gpointer  mt 
)
void mt_change_vals_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void mt_clear_timeline ( lives_mt *  mt)
void mt_clip_select ( lives_mt *  ,
gboolean  scroll 
)
void mt_delete_clips ( lives_mt *  ,
gint  file 
)
void mt_desensitise ( lives_mt *  )
void mt_do_autotransition ( lives_mt *  ,
track_rect *  block 
)

call this on a block to apply autotransition on it

<invalid block

<filter has no in parameters

< filter has no transition parameter

< cannot transition with self !

< force some visual changes

< cannot transition with self !

gint mt_expose_laudtrack_event ( GtkWidget *  ebox,
GdkEventExpose *  ,
gpointer  mt 
)
gint mt_expose_raudtrack_event ( GtkWidget *  ebox,
GdkEventExpose *  ,
gpointer  mt 
)
void mt_fixup_events ( lives_mt *  ,
weed_plant_t *  old_event,
weed_plant_t *  new_event 
)
void mt_fplay_toggled ( GtkMenuItem *  ,
gpointer  mt 
)
gint mt_get_block_count ( lives_mt *  ,
int  ntrack 
)

count blocks in track

< no blocks in track

gdouble mt_get_block_entime ( lives_mt *  mt,
int  ntrack,
int  iblock 
)

get timeline start time of block

< invalid track or block number

gdouble mt_get_block_sttime ( lives_mt *  ,
int  ntrack,
int  iblock 
)

return time in seconds of first frame event in block

< invalid track or block number

gdouble mt_get_effect_time ( lives_mt *  )
gint mt_get_last_block_number ( lives_mt *  ,
int  ntrack 
)

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

< no blocks in track

void** mt_get_pchain ( void  )
guint mt_idle_add ( lives_mt *  )
void mt_ign_ins_sel_toggled ( GtkMenuItem *  ,
gpointer  mt 
)
void mt_init_clips ( lives_mt *  ,
gint  orig_file,
gboolean  add 
)
void mt_init_tracks ( lives_mt *  ,
gboolean  set_min_max 
)

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

void mt_load_vals_toggled ( GtkMenuItem *  ,
gpointer  mt 
)
gboolean mt_mark_callback ( GtkAccelGroup *  group,
GObject *  obj,
guint  keyval,
GdkModifierType  mod,
gpointer  user_data 
)
gboolean mt_nextclip ( GtkAccelGroup *  group,
GObject *  obj,
guint  keyval,
GdkModifierType  mod,
gpointer  user_data 
)
void mt_post_playback ( lives_mt *  )
void mt_prepare_for_playback ( lives_mt *  )
gboolean mt_prevclip ( GtkAccelGroup *  group,
GObject *  obj,
guint  keyval,
GdkModifierType  mod,
gpointer  user_data 
)
void mt_render_aud_toggled ( GtkMenuItem *  ,
gpointer  mt 
)
void mt_render_vid_toggled ( GtkMenuItem *  ,
gpointer  mt 
)
void mt_save_vals_toggled ( GtkMenuItem *  ,
gpointer  mt 
)
void mt_sensitise ( lives_mt *  )
void mt_show_current_frame ( lives_mt *  ,
gboolean  return_layer 
)

preview the current frame

void mt_swap_play_pause ( lives_mt *  ,
gboolean  put_pause 
)
void mt_tl_move ( lives_mt *  ,
gdouble  pos_rel 
)

get timeline end time of block

gboolean mt_track_is_audio ( lives_mt *  ,
int  ntrack 
)

return TRUE if ntrack is a valid backing audio track

gboolean mt_track_is_video ( lives_mt *  ,
int  ntrack 
)

return TRUE if ntrack is a valid video track

void mt_view_audio_toggled ( GtkMenuItem *  ,
gpointer  mt 
)
void mt_view_ctx_toggled ( GtkMenuItem *  ,
gpointer  mt 
)
lives_mt* multitrack ( weed_plant_t *  ,
gint  orig_file,
gdouble  fps 
)

create and return lives_mt struct

the autotransitions menu

apply block effect menu

None autotransition

void multitrack_adj_start_end ( GtkMenuItem *  ,
gpointer  mt 
)
void multitrack_audio_insert ( GtkMenuItem *  ,
gpointer  mt 
)
void multitrack_clear_marks ( GtkMenuItem *  ,
gpointer  mt 
)
gboolean multitrack_delete ( lives_mt *  ,
gboolean  save 
)
void multitrack_end_cb ( GtkMenuItem *  ,
gpointer  mt 
)
void multitrack_insert ( GtkMenuItem *  ,
gpointer  mt 
)
void multitrack_play_sel ( GtkMenuItem *  ,
gpointer  mt 
)
void multitrack_playall ( lives_mt *  )
void multitrack_redo ( GtkMenuItem *  ,
gpointer  mt 
)
void multitrack_undo ( GtkMenuItem *  ,
gpointer  mt 
)
void multitrack_view_details ( GtkMenuItem *  ,
gpointer  mt 
)
void multitrack_view_events ( GtkMenuItem *  ,
gpointer  mt 
)
void multitrack_view_sel_events ( GtkMenuItem *  ,
gpointer  mt 
)
void on_add_video_track_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_amixer_close_clicked ( GtkButton *  ,
lives_mt *  mt 
)
gboolean on_atrack_click ( GtkWidget *  eventbox,
GdkEventButton *  ,
gpointer  mt 
)
gboolean on_atrack_release ( GtkWidget *  eventbox,
GdkEventButton *  event,
gpointer  mt 
)
void on_cback_audio_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_clear_event_list_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_del_node_clicked ( GtkWidget *  ,
gpointer  mt 
)
void on_delblock_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_frame_preview_clicked ( GtkButton *  ,
gpointer  mt 
)
void on_fx_insa_clicked ( GtkWidget *  button,
gpointer  user_data 
)
void on_fx_insb_clicked ( GtkWidget *  button,
gpointer  user_data 
)
void on_insgap_cur_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_insgap_sel_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_jumpback_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_jumpnext_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_load_event_list_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_move_fx_changed ( GtkMenuItem *  ,
gpointer  mt 
)
void on_mt_delfx_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_mt_fx_edit_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_mt_list_fx_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_mt_showkeys_activate ( GtkMenuItem *  ,
gpointer   
)
gboolean on_multitrack_activate ( GtkMenuItem *  menuitem,
weed_plant_t *  event_list 
)

menuitem callback

void on_next_fm_clicked ( GtkWidget *  button,
gpointer  user_data 
)
void on_next_node_clicked ( GtkWidget *  ,
gpointer  mt 
)
void on_node_spin_value_changed ( GtkSpinButton *  ,
gpointer  mt 
)
void on_prerender_aud_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_prev_fm_clicked ( GtkWidget *  button,
gpointer  user_data 
)
void on_prev_node_clicked ( GtkWidget *  ,
gpointer  mt 
)
void on_render_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_save_event_list_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_seltrack_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_seltrack_toggled ( GtkWidget *  ,
gpointer  mt 
)
void on_set_pvals_clicked ( GtkWidget *  button,
gpointer  mt 
)
void on_split_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_split_curr_activate ( GtkMenuItem *  ,
gpointer  mt 
)
void on_split_sel_activate ( GtkMenuItem *  ,
gpointer  mt 
)
gboolean on_timeline_press ( GtkWidget *  ,
GdkEventButton *  ,
gpointer  mt 
)
gboolean on_timeline_release ( GtkWidget *  ,
GdkEventButton *  ,
gpointer  mt 
)
gboolean on_timeline_update ( GtkWidget *  ,
GdkEventMotion *  ,
gpointer  mt 
)
gboolean on_track_between_click ( GtkWidget *  eventbox,
GdkEventButton *  ,
gpointer  mt 
)
gboolean on_track_between_release ( GtkWidget *  eventbox,
GdkEventButton *  ,
gpointer  mt 
)
gboolean on_track_click ( GtkWidget *  eventbox,
GdkEventButton *  ,
gpointer  mt 
)
gboolean on_track_header_click ( GtkWidget *  eventbox,
GdkEventButton *  ,
gpointer  mt 
)
gboolean on_track_header_move ( GtkWidget *  widget,
GdkEventMotion *  event,
gpointer  mt 
)
gboolean on_track_header_release ( GtkWidget *  eventbox,
GdkEventButton *  ,
gpointer  mt 
)
gboolean on_track_move ( GtkWidget *  widget,
GdkEventMotion *  event,
gpointer  mt 
)
gboolean on_track_release ( GtkWidget *  eventbox,
GdkEventButton *  event,
gpointer  mt 
)
void out_anchor_toggled ( GtkToggleButton *  ,
gpointer  mt 
)
void polymorph ( lives_mt *  ,
lives_mt_poly_state_t  poly 
)
void re_to_tc ( GtkMenuItem *  ,
gpointer  mt 
)
void recover_layout ( GtkButton *  ,
gpointer   
)
void recover_layout_cancelled ( GtkButton *  ,
gpointer  user_data 
)
void remove_current_from_affected_layouts ( lives_mt *  )
void remove_first_gaps ( GtkMenuItem *  ,
gpointer  mt 
)
void remove_gaps ( GtkMenuItem *  ,
gpointer  mt 
)
void remove_markers ( weed_plant_t *  event_list)
void rs_to_tc ( GtkMenuItem *  ,
gpointer  mt 
)
void save_layout_map ( int *  lmap,
double *  lmap_audio,
const gchar *  file,
const gchar *  dir 
)
void scroll_track_by_scrollbar ( GtkVScrollbar *  sbar,
gpointer  mt 
)
void scroll_tracks ( lives_mt *  ,
gint  top_track 
)
void selblock_cb ( GtkMenuItem *  ,
gpointer  mt 
)
void select_all_time ( GtkMenuItem *  ,
gpointer  mt 
)
void select_all_vid ( GtkMenuItem *  ,
gpointer  mt 
)
void select_from_zero_time ( GtkMenuItem *  ,
gpointer  mt 
)
void select_no_vid ( GtkMenuItem *  ,
gpointer  mt 
)
void select_to_end_time ( GtkMenuItem *  ,
gpointer  mt 
)
void set_timeline_end_secs ( lives_mt *  ,
gdouble  secs 
)
gchar* set_values_from_defs ( lives_mt *  ,
gboolean  from_prefs 
)
void show_clipinfo_cb ( GtkMenuItem *  ,
gpointer  mt 
)
void show_frame_events_activate ( GtkMenuItem *  ,
gpointer   
)
void show_preview ( lives_mt *  ,
weed_timecode_t  tc 
)
void stored_event_list_free_all ( gboolean  wiped)
void stored_event_list_free_undos ( void  )
void tc_to_re ( GtkMenuItem *  ,
gpointer  mt 
)
void tc_to_rs ( GtkMenuItem *  ,
gpointer  mt 
)
gboolean track_arrow_pressed ( GtkWidget *  ahbox,
GdkEventButton *  ,
gpointer  mt 
)
void track_select ( lives_mt *  )

must call after setting mt->current_track

void unpaint_line ( lives_mt *  ,
GtkWidget *  eventbox 
)
void unpaint_lines ( lives_mt *  )
void unselect_all ( lives_mt *  )

unselect all blocks

void update_filter_events ( lives_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 
)
gboolean used_in_current_layout ( lives_mt *  ,
gint  file 
)
void wipe_layout ( lives_mt *  )
void write_backup_layout_numbering ( lives_mt *  )
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines