9 #ifndef HAS_LIVES_MULTITRACK_H
10 #define HAS_LIVES_MULTITRACK_H
12 #define CLIP_THUMB_WIDTH 72
13 #define CLIP_THUMB_HEIGHT 72
15 #define CLIP_LABEL_LENGTH 20
17 #define BLOCK_THUMB_WIDTH 40
19 #define BLOCK_DRAW_SIMPLE 1
20 #define BLOCK_DRAW_THUMB 2
21 #define BLOCK_DRAW_TYPE BLOCK_DRAW_THUMB
23 #define MT_PLAY_WIDTH_SMALL 320
24 #define MT_PLAY_HEIGHT_SMALL 216
26 #define MT_PLAY_WIDTH_EXP 432
27 #define MT_PLAY_HEIGHT_EXP 324
29 #define MT_CTX_WIDTH 320
30 #define MT_CTX_HEIGHT 220
32 #define FX_BLOCK_WIDTH 80
33 #define FX_BLOCK_HEIGHT 20
36 #define TIMECODE_LENGTH 14
40 #define MT_BORDER_WIDTH 20
44 typedef struct _mt lives_mt;
52 #define MAX_DISP_VTRACKS 5
615 #define TRACK_I_HIDDEN_USER (1<<0)
616 #define TRACK_I_HIDDEN_SCROLLED (1<<1)
663 lives_mt *
multitrack (weed_plant_t *, gint orig_file, gdouble fps);
739 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);
743 GtkWidget *
add_audio_track (lives_mt *, gint trackno, gboolean behind);
764 gboolean
on_track_click (GtkWidget *eventbox, GdkEventButton *, gpointer mt);
765 gboolean
on_atrack_click (GtkWidget *eventbox, GdkEventButton *, gpointer mt);
776 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);
777 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);
806 void tc_to_rs (GtkMenuItem *, gpointer mt);
807 void tc_to_re (GtkMenuItem *, gpointer mt);
808 void rs_to_tc (GtkMenuItem *, gpointer mt);
809 void re_to_tc (GtkMenuItem *, gpointer mt);
810 gboolean
mt_mark_callback (GtkAccelGroup *group, GObject *obj, guint keyval, GdkModifierType mod, gpointer user_data);
846 weed_plant_t *
get_prev_fm (lives_mt *, gint current_track, weed_plant_t *frame);
847 weed_plant_t *
get_next_fm (lives_mt *, gint current_track, weed_plant_t *frame);
865 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);
866 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);
867 void mt_fixup_events(lives_mt *, weed_plant_t *old_event, weed_plant_t *new_event);
875 void add_markers(lives_mt *, weed_plant_t *event_list);
881 void migrate_layouts (
const gchar *old_set_name,
const gchar *new_set_name);
919 void mt_init_clips (lives_mt *, gint orig_file, gboolean add);
922 gboolean
mt_prevclip (GtkAccelGroup *group, GObject *obj, guint keyval, GdkModifierType mod, gpointer user_data);
923 gboolean
mt_nextclip (GtkAccelGroup *group, GObject *obj, guint keyval, GdkModifierType mod, gpointer user_data);
947 #define MAX_TRACKS 32768
948 #define MAX_VIDEO_TRACKS 32768
949 #define MAX_AUDIO_TRACKS 32768
951 #define MAX_TRACKS 65536
952 #define MAX_VIDEO_TRACKS 65536
953 #define MAX_AUDIO_TRACKS 65536