LiVES  2.4.1-svn
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Enumerations | Functions
events.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 "effects.h"
#include "support.h"
#include "callbacks.h"
#include "resample.h"
#include "paramwindow.h"
#include "audio.h"
#include "cvirtual.h"

Enumerations

enum  { TITLE_COLUMN, KEY_COLUMN, VALUE_COLUMN, NUM_COLUMNS }
 

Functions

G_GNUC_PURE void *** get_event_pchains (void)
 
LIVES_INLINE weed_timecode_t get_event_timecode (weed_plant_t *plant)
 
LIVES_INLINE int get_event_hint (weed_plant_t *plant)
 
LIVES_INLINE weed_plant_t * get_prev_event (weed_plant_t *event)
 
LIVES_INLINE weed_plant_t * get_next_event (weed_plant_t *event)
 
LIVES_INLINE weed_plant_t * get_first_event (weed_plant_t *event_list)
 
LIVES_INLINE weed_plant_t * get_last_event (weed_plant_t *event_list)
 
boolean has_frame_event_at (weed_plant_t *event_list, weed_timecode_t tc, weed_plant_t **shortcut)
 
int get_audio_frame_clip (weed_plant_t *event, int track)
 returns clip number for track (track==-1 is backing audio) More...
 
double get_audio_frame_vel (weed_plant_t *event, int track)
 returns velocity for track (track==-1 is backing audio) More...
 
double get_audio_frame_seek (weed_plant_t *event, int track)
 returns velocity for track (track==-1 is backing audio) More...
 
int get_frame_event_clip (weed_plant_t *event, int layer)
 
int get_frame_event_frame (weed_plant_t *event, int layer)
 
void unlink_event (weed_plant_t *event_list, weed_plant_t *event)
 
void delete_event (weed_plant_t *event_list, weed_plant_t *event)
 
boolean insert_event_before (weed_plant_t *at_event, weed_plant_t *event)
 
boolean insert_event_after (weed_plant_t *at_event, weed_plant_t *event)
 
void replace_event (weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
 
weed_plant_t * get_next_frame_event (weed_plant_t *event)
 
weed_plant_t * get_prev_frame_event (weed_plant_t *event)
 
weed_plant_t * get_next_audio_frame_event (weed_plant_t *event)
 
weed_plant_t * get_prev_audio_frame_event (weed_plant_t *event)
 
weed_plant_t * get_first_frame_event (weed_plant_t *event_list)
 
weed_plant_t * get_last_frame_event (weed_plant_t *event_list)
 
weed_plant_t * get_audio_block_start (weed_plant_t *event_list, int track, weed_timecode_t tc, boolean seek_back)
 
void * find_init_event_by_id (void *init_event, weed_plant_t *event)
 
void remove_frame_from_event (weed_plant_t *event_list, weed_plant_t *event, int track)
 
boolean is_blank_frame (weed_plant_t *event, boolean count_audio)
 
void remove_end_blank_frames (weed_plant_t *event_list, boolean remove_filter_inits)
 
weed_timecode_t get_next_paramchange (void **pchange_next, weed_timecode_t end_tc)
 
weed_timecode_t get_prev_paramchange (void **pchange_prev, weed_timecode_t start_tc)
 
boolean is_init_pchange (weed_plant_t *init_event, weed_plant_t *pchange_event)
 
weed_plant_t * event_copy_and_insert (weed_plant_t *in_event, weed_plant_t *event_list)
 called during quantisation More...
 
boolean frame_event_has_frame_for_track (weed_plant_t *event, int track)
 
weed_plant_t * get_frame_event_at (weed_plant_t *event_list, weed_timecode_t tc, weed_plant_t *shortcut, boolean exact)
 
boolean filter_map_after_frame (weed_plant_t *fmap)
 
weed_plant_t * get_frame_event_at_or_before (weed_plant_t *event_list, weed_timecode_t tc, weed_plant_t *shortcut)
 
weed_plant_t * get_filter_map_after (weed_plant_t *event, int ctrack)
 
boolean init_event_is_relevant (weed_plant_t *init_event, int ctrack)
 
weed_plant_t * get_filter_map_before (weed_plant_t *event, int ctrack, weed_plant_t *stop_event)
 
void ** get_init_events_before (weed_plant_t *event, weed_plant_t *init_event, boolean add)
 
void update_filter_maps (weed_plant_t *event, weed_plant_t *end_event, weed_plant_t *init_event)
 
void insert_filter_init_event_at (weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
 
void insert_filter_deinit_event_at (weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
 
boolean insert_filter_map_event_at (weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event, boolean before_frames)
 
void insert_param_change_event_at (weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
 
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)
 
void insert_audio_event_at (weed_plant_t *event_list, weed_plant_t *event, int track, int clipnum, double seek, double vel)
 
void remove_audio_for_track (weed_plant_t *event, int track)
 
weed_plant_t * append_marker_event (weed_plant_t *event_list, weed_timecode_t tc, int marker_type)
 
void insert_marker_event_at (weed_plant_t *event_list, weed_plant_t *at_event, int marker_type, livespointer data)
 
weed_plant_t * insert_blank_frame_event_at (weed_plant_t *event_list, weed_timecode_t tc, weed_plant_t **shortcut)
 
void remove_filter_from_event_list (weed_plant_t *event_list, weed_plant_t *init_event)
 
LIVES_INLINE boolean init_event_in_list (void **init_events, int num_inits, weed_plant_t *event)
 
boolean filter_map_has_event (weed_plant_t *fmap, weed_plant_t *event)
 
boolean filter_init_has_owner (weed_plant_t *init_event, int track)
 
void backup_host_tags (weed_plant_t *event_list, weed_timecode_t curr_tc)
 
void restore_host_tags (weed_plant_t *event_list, weed_timecode_t curr_tc)
 
void delete_param_changes_after_deinit (weed_plant_t *event_list, weed_plant_t *init_event)
 
boolean init_event_is_process_last (weed_plant_t *event)
 
void add_init_event_to_filter_map (weed_plant_t *fmap, weed_plant_t *event, void **hints)
 
void move_filter_init_event (weed_plant_t *event_list, weed_timecode_t new_tc, weed_plant_t *init_event, double fps)
 
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)
 
boolean move_event_right (weed_plant_t *event_list, weed_plant_t *event, boolean can_stay, double fps)
 
boolean move_event_left (weed_plant_t *event_list, weed_plant_t *event, boolean can_stay, double fps)
 
void set_render_choice (LiVESToggleButton *togglebutton, livespointer choice)
 
void set_render_choice_button (LiVESButton *button, livespointer choice)
 
int get_render_choice (void)
 
LiVESWidget * events_rec_dialog (boolean allow_mt)
 
void event_list_free (weed_plant_t *event_list)
 
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 More...
 
boolean event_list_to_block (weed_plant_t *event_list, int num_events)
 
void event_list_close_gaps (weed_plant_t *event_list)
 
void add_track_to_avol_init (weed_plant_t *filter, weed_plant_t *event, int nbtracks, boolean behind)
 
void event_list_add_track (weed_plant_t *event_list, int layer)
 
weed_plant_t * append_frame_event (weed_plant_t *event_list, weed_timecode_t tc, int numframes, int *clips, int *frames)
 
void ** filter_init_add_pchanges (weed_plant_t *event_list, weed_plant_t *plant, weed_plant_t *init_event, int ntracks, int leave)
 
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)
 
weed_plant_t * append_filter_deinit_event (weed_plant_t *event_list, weed_timecode_t tc, void *init_event, void **pchain)
 
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)
 
weed_plant_t * append_filter_map_event (weed_plant_t *event_list, weed_timecode_t tc, void **init_events)
 
void get_active_track_list (int *clip_index, int num_tracks, weed_plant_t *filter_map)
 
weed_plant_t * process_events (weed_plant_t *next_event, boolean process_audio, weed_timecode_t curr_tc)
 RT playback. More...
 
lives_render_error_t render_events (boolean reset)
 
boolean start_render_effect_events (weed_plant_t *event_list)
 render to clip More...
 
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 More...
 
int count_resampled_events (weed_plant_t *event_list, double fps)
 
weed_timecode_t event_list_get_end_tc (weed_plant_t *event_list)
 
double event_list_get_end_secs (weed_plant_t *event_list)
 
weed_timecode_t event_list_get_start_tc (weed_plant_t *event_list)
 
double event_list_get_start_secs (weed_plant_t *event_list)
 
boolean has_audio_frame (weed_plant_t *event_list)
 
boolean render_to_clip (boolean new_clip)
 rendering More...
 
LIVES_INLINE void dprint_recneg (void)
 
boolean deal_with_render_choice (boolean add_deinit)
 
double * get_track_visibility_at_tc (weed_plant_t *event_list, int ntracks, int nbtracks, weed_timecode_t tc, weed_plant_t **shortcut, boolean bleedthru)
 
LiVESWidget * create_event_list_dialog (weed_plant_t *event_list, weed_timecode_t start_tc, weed_timecode_t end_tc)
 
void rdetw_spinh_changed (LiVESSpinButton *spinbutton, livespointer user_data)
 
void rdetw_spinw_changed (LiVESSpinButton *spinbutton, livespointer user_data)
 
void rdetw_spinf_changed (LiVESSpinButton *spinbutton, livespointer user_data)
 
render_detailscreate_render_details (int type)
 

Enumeration Type Documentation

anonymous enum
Enumerator
TITLE_COLUMN 
KEY_COLUMN 
VALUE_COLUMN 
NUM_COLUMNS 

Function Documentation

void add_init_event_to_filter_map ( weed_plant_t *  fmap,
weed_plant_t *  event,
void **  hints 
)
void add_track_to_avol_init ( weed_plant_t *  filter,
weed_plant_t *  event,
int  nbtracks,
boolean  behind 
)
weed_plant_t* append_filter_deinit_event ( weed_plant_t *  event_list,
weed_timecode_t  tc,
void *  init_event,
void **  pchain 
)
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 
)
weed_plant_t* append_filter_map_event ( weed_plant_t *  event_list,
weed_timecode_t  tc,
void **  init_events 
)
weed_plant_t* append_frame_event ( weed_plant_t *  event_list,
weed_timecode_t  tc,
int  numframes,
int *  clips,
int *  frames 
)
weed_plant_t* append_marker_event ( weed_plant_t *  event_list,
weed_timecode_t  tc,
int  marker_type 
)
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 
)
void backup_host_tags ( weed_plant_t *  event_list,
weed_timecode_t  curr_tc 
)
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

int count_resampled_events ( weed_plant_t *  event_list,
double  fps 
)
LiVESWidget* create_event_list_dialog ( weed_plant_t *  event_list,
weed_timecode_t  start_tc,
weed_timecode_t  end_tc 
)
render_details* create_render_details ( int  type)
boolean deal_with_render_choice ( boolean  add_deinit)

< new clip frames always start at 1

< same clip frames start where recording started

void delete_event ( weed_plant_t *  event_list,
weed_plant_t *  event 
)
void delete_param_changes_after_deinit ( weed_plant_t *  event_list,
weed_plant_t *  init_event 
)
LIVES_INLINE void dprint_recneg ( void  )
weed_plant_t* event_copy_and_insert ( weed_plant_t *  in_event,
weed_plant_t *  event_list 
)

called during quantisation

void event_list_add_track ( weed_plant_t *  event_list,
int  layer 
)
void event_list_close_gaps ( weed_plant_t *  event_list)
void event_list_free ( weed_plant_t *  event_list)
double event_list_get_end_secs ( weed_plant_t *  event_list)
weed_timecode_t event_list_get_end_tc ( weed_plant_t *  event_list)
double event_list_get_start_secs ( weed_plant_t *  event_list)
weed_timecode_t event_list_get_start_tc ( weed_plant_t *  event_list)
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

boolean event_list_to_block ( weed_plant_t *  event_list,
int  num_events 
)
LiVESWidget* events_rec_dialog ( boolean  allow_mt)
void** filter_init_add_pchanges ( weed_plant_t *  event_list,
weed_plant_t *  plant,
weed_plant_t *  init_event,
int  ntracks,
int  leave 
)
boolean filter_init_has_owner ( weed_plant_t *  init_event,
int  track 
)
boolean filter_map_after_frame ( weed_plant_t *  fmap)
boolean filter_map_has_event ( weed_plant_t *  fmap,
weed_plant_t *  event 
)
void* find_init_event_by_id ( void *  init_event,
weed_plant_t *  event 
)
boolean frame_event_has_frame_for_track ( weed_plant_t *  event,
int  track 
)
void get_active_track_list ( int *  clip_index,
int  num_tracks,
weed_plant_t *  filter_map 
)
weed_plant_t* get_audio_block_start ( weed_plant_t *  event_list,
int  track,
weed_timecode_t  tc,
boolean  seek_back 
)
int get_audio_frame_clip ( weed_plant_t *  event,
int  track 
)

returns clip number for track (track==-1 is backing audio)

double get_audio_frame_seek ( weed_plant_t *  event,
int  track 
)

returns velocity for track (track==-1 is backing audio)

double get_audio_frame_vel ( weed_plant_t *  event,
int  track 
)

returns velocity for track (track==-1 is backing audio)

LIVES_INLINE int get_event_hint ( weed_plant_t *  plant)
G_GNUC_PURE void** * get_event_pchains ( void  )
LIVES_INLINE weed_timecode_t get_event_timecode ( weed_plant_t *  plant)
weed_plant_t* get_filter_map_after ( weed_plant_t *  event,
int  ctrack 
)
weed_plant_t* get_filter_map_before ( weed_plant_t *  event,
int  ctrack,
weed_plant_t *  stop_event 
)
LIVES_INLINE weed_plant_t* get_first_event ( weed_plant_t *  event_list)
weed_plant_t* get_first_frame_event ( weed_plant_t *  event_list)
weed_plant_t* get_frame_event_at ( weed_plant_t *  event_list,
weed_timecode_t  tc,
weed_plant_t *  shortcut,
boolean  exact 
)
weed_plant_t* get_frame_event_at_or_before ( weed_plant_t *  event_list,
weed_timecode_t  tc,
weed_plant_t *  shortcut 
)
int get_frame_event_clip ( weed_plant_t *  event,
int  layer 
)
int get_frame_event_frame ( weed_plant_t *  event,
int  layer 
)
void** get_init_events_before ( weed_plant_t *  event,
weed_plant_t *  init_event,
boolean  add 
)
LIVES_INLINE weed_plant_t* get_last_event ( weed_plant_t *  event_list)
weed_plant_t* get_last_frame_event ( weed_plant_t *  event_list)
weed_plant_t* get_next_audio_frame_event ( weed_plant_t *  event)
LIVES_INLINE weed_plant_t* get_next_event ( weed_plant_t *  event)
weed_plant_t* get_next_frame_event ( weed_plant_t *  event)
weed_timecode_t get_next_paramchange ( void **  pchange_next,
weed_timecode_t  end_tc 
)
weed_plant_t* get_prev_audio_frame_event ( weed_plant_t *  event)
LIVES_INLINE weed_plant_t* get_prev_event ( weed_plant_t *  event)
weed_plant_t* get_prev_frame_event ( weed_plant_t *  event)
weed_timecode_t get_prev_paramchange ( void **  pchange_prev,
weed_timecode_t  start_tc 
)
int get_render_choice ( void  )
double* get_track_visibility_at_tc ( weed_plant_t *  event_list,
int  ntracks,
int  nbtracks,
weed_timecode_t  tc,
weed_plant_t **  shortcut,
boolean  bleedthru 
)
boolean has_audio_frame ( weed_plant_t *  event_list)
boolean has_frame_event_at ( weed_plant_t *  event_list,
weed_timecode_t  tc,
weed_plant_t **  shortcut 
)
LIVES_INLINE boolean init_event_in_list ( void **  init_events,
int  num_inits,
weed_plant_t *  event 
)
boolean init_event_is_process_last ( weed_plant_t *  event)
boolean init_event_is_relevant ( weed_plant_t *  init_event,
int  ctrack 
)
void insert_audio_event_at ( weed_plant_t *  event_list,
weed_plant_t *  event,
int  track,
int  clipnum,
double  seek,
double  vel 
)
weed_plant_t* insert_blank_frame_event_at ( weed_plant_t *  event_list,
weed_timecode_t  tc,
weed_plant_t **  shortcut 
)
boolean insert_event_after ( weed_plant_t *  at_event,
weed_plant_t *  event 
)
boolean insert_event_before ( weed_plant_t *  at_event,
weed_plant_t *  event 
)
void insert_filter_deinit_event_at ( weed_plant_t *  event_list,
weed_plant_t *  at_event,
weed_plant_t *  event 
)
void insert_filter_init_event_at ( weed_plant_t *  event_list,
weed_plant_t *  at_event,
weed_plant_t *  event 
)
boolean insert_filter_map_event_at ( weed_plant_t *  event_list,
weed_plant_t *  at_event,
weed_plant_t *  event,
boolean  before_frames 
)
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 
)

will either insert or replace

void insert_marker_event_at ( weed_plant_t *  event_list,
weed_plant_t *  at_event,
int  marker_type,
livespointer  data 
)
void insert_param_change_event_at ( weed_plant_t *  event_list,
weed_plant_t *  at_event,
weed_plant_t *  event 
)
boolean is_blank_frame ( weed_plant_t *  event,
boolean  count_audio 
)
boolean is_init_pchange ( weed_plant_t *  init_event,
weed_plant_t *  pchange_event 
)
boolean move_event_left ( weed_plant_t *  event_list,
weed_plant_t *  event,
boolean  can_stay,
double  fps 
)
boolean move_event_right ( weed_plant_t *  event_list,
weed_plant_t *  event,
boolean  can_stay,
double  fps 
)
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 
)
void move_filter_init_event ( weed_plant_t *  event_list,
weed_timecode_t  new_tc,
weed_plant_t *  init_event,
double  fps 
)
weed_plant_t* process_events ( weed_plant_t *  next_event,
boolean  process_audio,
weed_timecode_t  curr_tc 
)

RT playback.

void rdetw_spinf_changed ( LiVESSpinButton *  spinbutton,
livespointer  user_data 
)
void rdetw_spinh_changed ( LiVESSpinButton *  spinbutton,
livespointer  user_data 
)
void rdetw_spinw_changed ( LiVESSpinButton *  spinbutton,
livespointer  user_data 
)
void remove_audio_for_track ( weed_plant_t *  event,
int  track 
)
void remove_end_blank_frames ( weed_plant_t *  event_list,
boolean  remove_filter_inits 
)
void remove_filter_from_event_list ( weed_plant_t *  event_list,
weed_plant_t *  init_event 
)
void remove_frame_from_event ( weed_plant_t *  event_list,
weed_plant_t *  event,
int  track 
)
lives_render_error_t render_events ( boolean  reset)
boolean render_to_clip ( boolean  new_clip)

rendering

render to clip

void replace_event ( weed_plant_t *  event_list,
weed_plant_t *  at_event,
weed_plant_t *  event 
)
void restore_host_tags ( weed_plant_t *  event_list,
weed_timecode_t  curr_tc 
)
void set_render_choice ( LiVESToggleButton *  togglebutton,
livespointer  choice 
)
void set_render_choice_button ( LiVESButton *  button,
livespointer  choice 
)
boolean start_render_effect_events ( weed_plant_t *  event_list)

render to clip

void unlink_event ( weed_plant_t *  event_list,
weed_plant_t *  event 
)
void update_filter_maps ( weed_plant_t *  event,
weed_plant_t *  end_event,
weed_plant_t *  init_event 
)