9 #ifndef HAS_LIVES_EVENTS_H 10 #define HAS_LIVES_EVENTS_H 13 #define WEED_LEAF_WEED_EVENT_API_VERSION "weed_event_api_version" 14 #define WEED_LEAF_AUDIO_SIGNED "audio_signed" 15 #define WEED_LEAF_AUDIO_ENDIAN "audio_endian" 16 #define WEED_LEAF_AUDIO_SAMPLE_SIZE "audio_sample_size" 17 #define WEED_LEAF_AUDIO_VOLUME_TRACKS "audio_volume_tracks" 18 #define WEED_LEAF_AUDIO_VOLUME_VALUES "audio_volume_values" 19 #define WEED_LEAF_TRACK_LABEL_TRACKS "track_label_tracks" 20 #define WEED_LEAF_TRACK_LABEL_VALUES "track_label_values" 23 #define WEED_LEAF_FRAMES "frames" 24 #define WEED_LEAF_CLIPS "clips" 25 #define WEED_LEAF_AUDIO_CLIPS "audio_clips" 26 #define WEED_LEAF_AUDIO_SEEKS "audio_seeks" 29 #define WEED_LEAF_FILTER "filter" 30 #define WEED_LEAF_IN_COUNT "in_count" 31 #define WEED_LEAF_OUT_COUNT "out_count" 32 #define WEED_LEAF_IN_TRACKS "in_tracks" 33 #define WEED_LEAF_OUT_TRACKS "out_tracks" 34 #define WEED_LEAF_EVENT_ID "event_id" 37 #define WEED_LEAF_INIT_EVENT "init_event" 40 #define WEED_LEAF_INIT_EVENTS "init_events" 43 #define WEED_LEAF_INDEX "index" 47 #define WEED_LEAF_NEXT "next" 48 #define WEED_LEAF_PREVIOUS "previous" 49 #define WEED_LEAF_FIRST "first" 50 #define WEED_LEAF_LAST "last" 51 #define WEED_LEAF_NEEDS_SET "needs_set" 54 #define WEED_LEAF_NEXT_CHANGE "next_change" 55 #define WEED_LEAF_PREV_CHANGE "prev_change" 58 #define WEED_LEAF_DEINIT_EVENT "deinit_event" 61 #define WEED_LEAF_LIVES_TYPE "lives_type" 62 #define WEED_LEAF_TRACKS "tracks" 65 #define WEED_LEAF_PTRSIZE "ptrsize" 67 #define WEED_LEAF_HOST_AUDIO_TRANSITION "host_audio_transition" 69 #define LIVES_TRACK_ANY -1000000 71 weed_plant_t *
append_frame_event(weed_plant_t *event_list, weed_timecode_t tc,
int numframes,
74 int filter_idx,
int num_in_tracks,
int key, weed_plant_t *inst)
WARN_UNUSED;
79 weed_plant_t *param,
void *init_event,
void **pchain)
WARN_UNUSED;
84 int *clips,
int *frames, weed_plant_t **shortcut)
WARN_UNUSED;
86 double time,
double vel);
95 weed_plant_t *
process_events(weed_plant_t *next_event,
boolean process_audio, weed_timecode_t curr_tc);
108 int count_events(weed_plant_t *event_list,
boolean all_events, weed_timecode_t start_tc, weed_timecode_t end_tc);
127 weed_plant_t *
get_frame_event_at(weed_plant_t *event_list, weed_timecode_t tc, weed_plant_t *shortcut,
boolean exact);
130 weed_plant_t *
get_audio_block_start(weed_plant_t *event_list,
int track, weed_timecode_t tc,
boolean seek_back);
143 #include <weed/weed-utils.h> 145 #include "../libweed/weed-utils.h" 156 weed_timecode_t tc, weed_plant_t **shortcut,
boolean bleedthru);
205 #define RENDER_CHOICE_DISCARD 0 206 #define RENDER_CHOICE_PREVIEW 1 207 #define RENDER_CHOICE_SAME_CLIP 2 208 #define RENDER_CHOICE_NEW_CLIP 3 209 #define RENDER_CHOICE_MULTITRACK 4 210 #define RENDER_CHOICE_EVENT_LIST 5 215 LiVESWidget *
add_video_options(LiVESWidget **spwidth,
int defwidth, LiVESWidget **spheight,
int defheight,
216 LiVESWidget **spfps,
double deffps,
boolean add_aspect, LiVESWidget *extra);
218 LiVESWidget *
add_audio_options(LiVESWidget **cbbackaudio, LiVESWidget **cbpertrack);
228 void **
filter_init_add_pchanges(weed_plant_t *event_list, weed_plant_t *filter, weed_plant_t *init_event,
int ntracks,
int leave);
231 boolean before_frames);
237 weed_plant_t *
insert_marker_event_at(weed_plant_t *event_list, weed_plant_t *at_event,
int marker_type, livespointer data);
245 boolean move_event_right(weed_plant_t *event_list, weed_plant_t *
event,
boolean can_stay,
double fps);
246 boolean move_event_left(weed_plant_t *event_list, weed_plant_t *
event,
boolean can_stay,
double fps);
248 void move_filter_init_event(weed_plant_t *event_list, weed_timecode_t new_tc, weed_plant_t *init_event,
double fps);
250 double fps,
boolean rescale_pchanges);
257 void replace_event(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *
event);
267 boolean is_init_pchange(weed_plant_t *init_event, weed_plant_t *pchange_event);
285 boolean has_frame_event_at(weed_plant_t *event_list, weed_timecode_t tc, weed_plant_t **shortcut);
287 #define EVENT_MARKER_BLOCK_START 1 288 #define EVENT_MARKER_BLOCK_UNORDERED 512 289 #define EVENT_MARKER_RECORD_START 1024 290 #define EVENT_MARKER_RECORD_END 1025 292 #define WEED_PLANT_IS_EVENT(plant) ((plant != NULL && weed_get_plant_type(plant) == WEED_PLANT_EVENT) ? 1 : 0) 293 #define WEED_PLANT_IS_EVENT_LIST(plant) ((plant != NULL && weed_get_plant_type(plant) == WEED_PLANT_EVENT_LIST) ? 1 : 0) 295 #define WEED_EVENT_IS_FRAME(event) (get_event_hint(event) == WEED_EVENT_HINT_FRAME ? 1 : 0) 296 #define WEED_EVENT_IS_AUDIO_FRAME(event) ((get_event_hint(event) == WEED_EVENT_HINT_FRAME && weed_plant_has_leaf(event, "audio_clips")) ? 1 : 0) 297 #define WEED_EVENT_IS_FILTER_INIT(event) (get_event_hint(event) == WEED_EVENT_HINT_FILTER_INIT ? 1 : 0) 298 #define WEED_EVENT_IS_FILTER_DEINIT(event) (get_event_hint(event) == WEED_EVENT_HINT_FILTER_DEINIT ? 1 : 0) 299 #define WEED_EVENT_IS_FILTER_MAP(event) (get_event_hint(event) == WEED_EVENT_HINT_FILTER_MAP ? 1 : 0) 300 #define WEED_EVENT_IS_PARAM_CHANGE(event) (get_event_hint(event) == WEED_EVENT_HINT_PARAM_CHANGE ? 1 : 0) 301 #define WEED_EVENT_IS_MARKER(event) (get_event_hint(event) == WEED_EVENT_HINT_MARKER ? 1 : 0) 303 #endif // HAS_LIVES_EVENTS_H LiVESWidget * spinbutton_width
Definition: events.h:175
weed_timecode_t event_list_get_end_tc(weed_plant_t *event_list)
Definition: events.c:4109
void remove_end_blank_frames(weed_plant_t *event_list, boolean remove_filter_inits)
Definition: events.c:438
boolean has_audio_frame(weed_plant_t *event_list)
Definition: events.c:4131
void remove_audio_for_track(weed_plant_t *event, int track)
Definition: events.c:1220
void *** get_event_pchains(void)
Definition: events.c:41
int achans
Definition: events.h:191
void replace_event(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:263
weed_plant_t * get_filter_map_after(weed_plant_t *event, int ctrack)
Definition: events.c:693
void get_active_track_list(int *clip_index, int num_tracks, weed_plant_t *filter_map)
Definition: events.c:2874
LiVESWidget * spinbutton_fps
Definition: events.h:177
weed_plant_t * get_last_frame_event(weed_plant_t *event_list)
Definition: events.c:335
int asamps
Definition: events.h:192
boolean start_render_effect_events(weed_plant_t *event_list)
render to clip
Definition: events.c:3966
void remove_frame_from_event(weed_plant_t *event_list, weed_plant_t *event, int track)
Definition: events.c:382
weed_plant_t * get_first_frame_event(weed_plant_t *event_list)
Definition: events.c:320
void event_list_replace_events(weed_plant_t *event_list, weed_plant_t *new_event_list)
replace events in event_list with events in new_event_list
Definition: events.c:2217
void backup_host_tags(weed_plant_t *event_list, weed_timecode_t curr_tc)
Definition: events.c:1471
LiVESWidget * dialog
Definition: events.h:167
int get_frame_event_frame(weed_plant_t *, int layer)
Definition: events.c:200
LiVESWidget * usecur_button
Definition: events.h:169
weed_plant_t * event_copy_and_insert(weed_plant_t *in_event, weed_plant_t *event_list)
called during quantisation
Definition: events.c:491
boolean init_event_is_process_last(weed_plant_t *event)
Definition: events.c:1608
void insert_filter_init_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:899
void event_list_add_track(weed_plant_t *event_list, int layer)
Definition: events.c:2351
char * encoder_name
Definition: events.h:185
LiVESWidget * pertrack_checkbutton
Definition: events.h:178
double event_list_get_end_secs(weed_plant_t *event_list)
Definition: events.c:4115
void move_filter_init_event(weed_plant_t *event_list, weed_timecode_t new_tc, weed_plant_t *init_event, double fps)
Definition: events.c:1679
boolean insert_filter_map_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event, boolean before_frames)
Definition: events.c:944
boolean filter_map_after_frame(weed_plant_t *fmap)
Definition: events.c:675
void unlink_event(weed_plant_t *event_list, weed_plant_t *event)
Definition: events.c:213
weed_plant_t * insert_marker_event_at(weed_plant_t *event_list, weed_plant_t *at_event, int marker_type, livespointer data)
Definition: events.c:1294
boolean move_event_left(weed_plant_t *event_list, weed_plant_t *event, boolean can_stay, double fps)
Definition: events.c:2003
LiVESWidget * always_hbox
Definition: events.h:181
boolean event_list_to_block(weed_plant_t *event_list, int num_events)
Definition: events.c:2225
boolean frame_event_has_frame_for_track(weed_plant_t *event, int track)
Definition: events.c:634
void add_init_event_to_filter_map(weed_plant_t *fmap, weed_plant_t *event, void **hints)
Definition: events.c:1630
weed_timecode_t get_event_timecode(weed_plant_t *)
Definition: events.c:46
weed_plant_t * append_filter_map_event(weed_plant_t *event_list, weed_timecode_t tc, void **init_events) WARN_UNUSED
Definition: events.c:2831
int get_audio_frame_clip(weed_plant_t *event, int track)
returns clip number for track (track==-1 is backing audio)
Definition: events.c:114
weed_plant_t * get_next_frame_event(weed_plant_t *event)
Definition: events.c:272
double event_list_get_start_secs(weed_plant_t *event_list)
Definition: events.c:4126
weed_plant_t * get_prev_audio_frame_event(weed_plant_t *event)
Definition: events.c:308
boolean is_encoding
Definition: events.h:188
boolean init_event_is_relevant(weed_plant_t *init_event, int ctrack)
Definition: events.c:732
double fps
Definition: events.h:165
weed_plant_t * get_frame_event_at(weed_plant_t *event_list, weed_timecode_t tc, weed_plant_t *shortcut, boolean exact)
Definition: events.c:655
void insert_filter_deinit_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:921
LiVESWidget * backaudio_checkbutton
Definition: events.h:179
boolean ratio_fps
Definition: events.h:166
LiVESWidget * events_rec_dialog(boolean allow_mt)
Definition: events.c:2094
weed_timecode_t get_next_paramchange(void **pchange_next, weed_timecode_t end_tc)
Definition: events.c:457
int count_resampled_events(weed_plant_t *event_list, double fps)
Definition: events.c:4069
void insert_param_change_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:994
boolean insert_event_before(weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:237
int width
Definition: events.h:163
boolean filter_init_has_owner(weed_plant_t *init_event, int track)
Definition: events.c:1449
LiVESWidget * add_video_options(LiVESWidget **spwidth, int defwidth, LiVESWidget **spheight, int defheight, LiVESWidget **spfps, double deffps, boolean add_aspect, LiVESWidget *extra)
Definition: events.c:5134
render_details * rdet
Definition: events.h:196
LiVESWidget * spinbutton_height
Definition: events.h:176
weed_plant_t * insert_frame_event_at(weed_plant_t *event_list, weed_timecode_t tc, int numframes, int *clips, int *frames, weed_plant_t **shortcut) WARN_UNUSED
Definition: events.c:1022
weed_timecode_t event_list_get_start_tc(weed_plant_t *event_list)
Definition: events.c:4120
double get_audio_frame_seek(weed_plant_t *event, int track)
returns velocity for track (track==-1 is backing audio)
Definition: events.c:161
LiVESWidget * acodec_combo
Definition: events.h:173
void restore_host_tags(weed_plant_t *event_list, weed_timecode_t curr_tc)
Definition: events.c:1486
LiVESWidget * add_audio_options(LiVESWidget **cbbackaudio, LiVESWidget **cbpertrack)
Definition: events.c:5180
weed_plant_t * get_next_audio_frame_event(weed_plant_t *event)
Definition: events.c:296
boolean has_frame_event_at(weed_plant_t *event_list, weed_timecode_t tc, weed_plant_t **shortcut)
Definition: events.c:96
int get_event_hint(weed_plant_t *)
Definition: events.c:55
int get_frame_event_clip(weed_plant_t *, int layer)
Definition: events.c:187
boolean init_event_in_list(void **init_events, int num_inits, weed_plant_t *event)
Definition: events.c:1428
void move_filter_deinit_event(weed_plant_t *event_list, weed_timecode_t new_tc, weed_plant_t *deinit_event, double fps, boolean rescale_pchanges)
Definition: events.c:1787
void remove_filter_from_event_list(weed_plant_t *event_list, weed_plant_t *init_event)
Definition: events.c:1358
render_details * create_render_details(int type)
Definition: events.c:5248
weed_plant_t * append_param_change_event(weed_plant_t *event_list, weed_timecode_t tc, int pnum, weed_plant_t *param, void *init_event, void **pchain) WARN_UNUSED
Definition: events.c:2784
boolean enc_changed
Definition: events.h:184
void event_list_free(weed_plant_t *event_list)
Definition: events.c:2210
weed_plant_t * process_events(weed_plant_t *next_event, boolean process_audio, weed_timecode_t curr_tc)
RT playback.
Definition: events.c:2929
weed_timecode_t get_prev_paramchange(void **pchange_next, weed_timecode_t start_tc)
Definition: events.c:467
boolean deal_with_render_choice(boolean add_deinit)
Definition: events.c:4377
LiVESWidget * create_event_list_dialog(weed_plant_t *event_list, weed_timecode_t start_tc, weed_timecode_t end_tc)
Definition: events.c:4706
void event_list_close_start_gap(weed_plant_t *event_list)
int count_events(weed_plant_t *event_list, boolean all_events, weed_timecode_t start_tc, weed_timecode_t end_tc)
if all_events is FALSE we only count FRAME events
Definition: events.c:4051
ulong encoder_name_fn
Definition: events.h:182
LiVESWidget * ofmt_combo
Definition: events.h:172
#define ulong
Definition: main.h:156
void delete_event(weed_plant_t *event_list, weed_plant_t *event)
Definition: events.c:227
LiVESWidget * clipname_entry
Definition: events.h:170
void insert_audio_event_at(weed_plant_t *event_list, weed_plant_t *event, int track, int clipnum, double time, double vel)
Definition: events.c:1123
void free_pchains(int key)
void ** filter_init_add_pchanges(weed_plant_t *event_list, weed_plant_t *filter, weed_plant_t *init_event, int ntracks, int leave)
Definition: events.c:2498
weed_plant_t * get_prev_frame_event(weed_plant_t *event)
Definition: events.c:284
void add_track_to_avol_init(weed_plant_t *filter, weed_plant_t *event, int nbtracks, boolean behind)
Definition: events.c:2285
weed_plant_t * get_filter_map_before(weed_plant_t *event, int ctrack, weed_plant_t *stop_event)
Definition: events.c:770
weed_plant_t * append_filter_deinit_event(weed_plant_t *event_list, weed_timecode_t tc, void *init_event, void **pchain) WARN_UNUSED
Definition: events.c:2740
boolean move_event_right(weed_plant_t *event_list, weed_plant_t *event, boolean can_stay, double fps)
Definition: events.c:1925
boolean is_blank_frame(weed_plant_t *, boolean count_audio)
Definition: events.c:417
int get_render_choice(void)
Definition: events.c:2089
LiVESWidget * encoder_combo
Definition: events.h:171
weed_plant_t * get_prev_event(weed_plant_t *event)
Definition: events.c:64
void ** get_init_events_before(weed_plant_t *event, weed_plant_t *init_event, boolean add)
Definition: events.c:812
LiVESWidget * always_checkbutton
Definition: events.h:180
boolean insert_event_after(weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:250
int height
Definition: events.h:164
weed_plant_t * get_last_event(weed_plant_t *event_list)
Definition: events.c:88
weed_plant_t * append_frame_event(weed_plant_t *event_list, weed_timecode_t tc, int numframes, int *clips, int *frames) WARN_UNUSED
Definition: events.c:2453
weed_plant_t * get_frame_event_at_or_before(weed_plant_t *event_list, weed_timecode_t tc, weed_plant_t *shortcut)
Definition: events.c:684
LiVESWidget * okbutton
Definition: events.h:168
int arate
Definition: events.h:190
boolean render_to_clip(boolean new_clip)
rendering
Definition: events.c:4143
double get_audio_frame_vel(weed_plant_t *event, int track)
returns velocity for track (track==-1 is backing audio)
Definition: events.c:133
weed_plant_t * append_filter_init_event(weed_plant_t *event_list, weed_timecode_t tc, int filter_idx, int num_in_tracks, int key, weed_plant_t *inst) WARN_UNUSED
Definition: events.c:2577
double * get_track_visibility_at_tc(weed_plant_t *event_list, int ntracks, int n_back_tracks, weed_timecode_t tc, weed_plant_t **shortcut, boolean bleedthru)
Definition: events.c:4534
weed_plant_t * get_audio_block_start(weed_plant_t *event_list, int track, weed_timecode_t tc, boolean seek_back)
Definition: events.c:350
int aendian
Definition: events.h:193
weed_plant_t * insert_blank_frame_event_at(weed_plant_t *event_list, weed_timecode_t tc, weed_plant_t **shortcut) WARN_UNUSED
Definition: events.c:1350
boolean suggestion_followed
Definition: events.h:186
LiVESWidget * acodec_entry
Definition: events.h:174
weed_plant_t * get_next_event(weed_plant_t *event)
Definition: events.c:72
ulong encoder_ofmt_fn
Definition: events.h:183
#define WARN_UNUSED
Definition: main.h:305
weed_plant_t * get_first_event(weed_plant_t *event_list)
Definition: events.c:80
void update_filter_maps(weed_plant_t *event, weed_plant_t *end_event, weed_plant_t *init_event)
Definition: events.c:887
boolean is_init_pchange(weed_plant_t *init_event, weed_plant_t *pchange_event)
Definition: events.c:477
weed_plant_t * append_marker_event(weed_plant_t *event_list, weed_timecode_t tc, int marker_type) WARN_UNUSED
Definition: events.c:1255