LiVES  3.2.0
effects-data.h
Go to the documentation of this file.
1 // effects-data.h
2 // LiVES (lives-exe)
3 // (c) G. Finch 2005 - 2012 (salsaman@gmail.com)
4 // Released under the GPL 3 or later
5 // see file ../COPYING for licensing details
6 
7 #define FX_DATA_WILDCARD -1000000
8 #define FX_DATA_WILDCARD_KEEP_ACTIVATED -1000001
9 
10 // special input keys
11 #define FX_DATA_KEY_SUBTITLES -1
12 #define FX_DATA_KEY_PLAYBACK_PLUGIN -2
13 #define FX_DATA_KEY_OMC_MACRO -3
14 
15 #define EXTRA_PARAMS_OUT 1
16 #define EXTRA_PARAMS_IN 1
17 
18 #define FX_DATA_PARAM_ACTIVE -1
19 
20 // struct for connecting out params to in params
21 
22 typedef struct _lives_pconnect_t lives_pconnect_t;
23 
24 // when an out parameter is mapped/updated, we add it to here
25 
26 // when unmapped we delete it
27 
29  int okey;
30  int omode;
31 
32  int nparams;
33 
34  // index to parameters which are to be copied (|params|)
35  int *params;
36 
37  // previous vals, so we can see when state changed
39 
40  // number of connections for each param
41  int *nconns;
42 
43  // each param is mapped to nconns[i] of these
44  int *ikey;
45  int *imode;
46  int *ipnum;
47  boolean *autoscale;
48 
49  lives_pconnect_t *next;
50 };
51 
53 void pconx_add_connection(int okey, int omode, int opnum, int ikey, int imode, int ipnum, boolean autoscale);
54 
55 // free all connections (and set mainw->pconx to NULL)
56 void pconx_delete_all();
57 
58 void pconx_delete(int okey, int omode, int ocnum, int ikey, int imode, int icnum);
59 
60 void pconx_remap_mode(int key, int omode, int nmode);
61 
62 // chain any output data into fx key/mode (pull)
63 boolean pconx_chain_data(int key, int mode, boolean is_audio_thread);
64 
65 // chain any output data into OMC Macros (push)
66 int pconx_chain_data_omc(weed_plant_t *instance, int key, int mode);
67 
68 // return list of in keys/modes/params/autoscale
69 char *pconx_list(int okey, int omode, int opnum);
70 
71 // special version for compound fx internal connections
72 boolean pconx_chain_data_internal(weed_plant_t *inst);
73 
74 // alpha channels
75 
76 // struct for connecting out alphas to in alphas
77 
78 typedef struct _lives_cconnect_t lives_cconnect_t;
79 
80 // when an out alpha is mapped/updated, we add it to here
81 
82 // when unmapped we delete it
83 
85  int okey;
86  int omode;
87 
88  int nchans;
89 
90  // index to chans which are to be copied
91  int *chans;
92 
93  // number of connections for each channel
94  int *nconns;
95 
96  // each param is mapped to nconns[i] of these
97  int *ikey;
98  int *imode;
99  int *icnum;
100 
101  lives_cconnect_t *next;
102 };
103 
105 void cconx_add_connection(int okey, int omode, int ocnum, int ikey, int imode, int icnum);
106 
107 // free all connections (and set mainw->cconx to NULL)
108 void cconx_delete_all();
109 
110 void cconx_delete(int okey, int omode, int ocnum, int ikey, int imode, int icnum);
111 
112 void cconx_remap_mode(int key, int omode, int nmode);
113 
114 // chain any output data into fx key/mode
115 boolean cconx_chain_data(int key, int mode);
116 
117 // return list of in chaannels/modes/params
118 char *cconx_list(int okey, int omode, int ocnum);
119 
120 boolean cconx_chain_data_internal(weed_plant_t *ichan);
121 
123 
124 void override_if_active_input(int hotkey);
125 void end_override_if_activate_output(int hotkey);
126 
128 
129 typedef struct {
130  weed_plant_t *filter;
131 
132  int okey;
133  int omode;
136  int ntabs;
137 
138  lives_cconnect_t *cconx;
139  lives_pconnect_t *pconx;
140 
141  LiVESWidget *conx_dialog;
142  LiVESWidget *acbutton;
143  LiVESWidget *apbutton;
144  LiVESWidget *disconbutton;
145 
146  LiVESWidget **clabel;
147  LiVESWidget **pclabel;
148  LiVESWidget **cfxcombo;
149  LiVESWidget **pfxcombo;
150  LiVESWidget **pcombo;
151  LiVESWidget **ccombo;
152  LiVESWidget **acheck;
153  LiVESWidget **add_button;
154  LiVESWidget **del_button;
155  LiVESWidget *allcheckc;
156  LiVESWidget *allcheck_label;
157 
158  LiVESWidget *tablec;
159  LiVESWidget *tablep;
160 
161  // table row counts
162  int trowsc;
163  int trowsp;
164 
165  // # dislay rows for each param/channel
166  int *dispc;
167  int *dispp;
168 
169  int *ikeys;
170  int *imodes;
171  int *idx;
172 
176 } lives_conx_w;
177 
178 LiVESWidget *make_datacon_window(int key, int mode);
179 
180 int pconx_check_connection(weed_plant_t *ofilter, int opnum, int ikey, int imode, int ipnum, boolean setup,
181  weed_plant_t **iparam_ret,
182  int *idx_ret,
183  int *okey, int *omode, int *oopnum);
184 
185 int cconx_check_connection(int ikey, int imode, int icnum, boolean setup, weed_plant_t **ichan_ret, int *idx_ret, int *okey,
186  int *omode,
187  int *ocnum);
188 
189 boolean feeds_to_video_filters(int okey, int omode);
190 boolean feeds_to_audio_filters(int okey, int omode);
191 
lives_conx_w::acheck
LiVESWidget ** acheck
Definition: effects-data.h:152
_lives_pconnect_t::nconns
int * nconns
Definition: effects-data.h:41
_lives_pconnect_t::last_boolval
int * last_boolval
Definition: effects-data.h:38
cconx_chain_data_internal
boolean cconx_chain_data_internal(weed_plant_t *ichan)
Definition: effects-data.c:2166
lives_conx_w::pcombo
LiVESWidget ** pcombo
Definition: effects-data.h:150
cconx_chain_data
boolean cconx_chain_data(int key, int mode)
Definition: effects-data.c:2129
_lives_cconnect_t::chans
int * chans
Definition: effects-data.h:91
pconx_remap_mode
void pconx_remap_mode(int key, int omode, int nmode)
Definition: effects-data.c:380
pconx_delete
void pconx_delete(int okey, int omode, int ocnum, int ikey, int imode, int icnum)
Definition: effects-data.c:262
lives_conx_w::trowsc
int trowsc
Definition: effects-data.h:162
_lives_pconnect_t::okey
int okey
okey is 0 based
Definition: effects-data.h:29
lives_conx_w::tablep
LiVESWidget * tablep
Definition: effects-data.h:159
lives_conx_w::add_button
LiVESWidget ** add_button
Definition: effects-data.h:153
_lives_cconnect_t::ikey
int * ikey
ikey is 0 based
Definition: effects-data.h:97
lives_conx_w::num_params
int num_params
Definition: effects-data.h:135
cconx_list
char * cconx_list(int okey, int omode, int ocnum)
Definition: effects-data.c:1635
_lives_cconnect_t::next
lives_cconnect_t * next
Definition: effects-data.h:101
lives_conx_w::ikeys
int * ikeys
Definition: effects-data.h:169
pconx_add_connection
void pconx_add_connection(int okey, int omode, int opnum, int ikey, int imode, int ipnum, boolean autoscale)
add a new connection from out_param okey/omode/opnum to in_param ikey/imode/ipnum
Definition: effects-data.c:618
cconx_delete_all
void cconx_delete_all()
Definition: effects-data.c:1560
_lives_pconnect_t::params
int * params
Definition: effects-data.h:35
lives_conx_w::okey
int okey
Definition: effects-data.h:132
lives_conx_w::allcheckc
LiVESWidget * allcheckc
Definition: effects-data.h:155
lives_conx_w::omode
int omode
Definition: effects-data.h:133
lives_conx_w::acheck_func
ulong * acheck_func
Definition: effects-data.h:175
lives_conx_w::ccombo
LiVESWidget ** ccombo
Definition: effects-data.h:151
cconx_add_connection
void cconx_add_connection(int okey, int omode, int ocnum, int ikey, int imode, int icnum)
add a new connection from out_chan okey/omode/ocnum to in_chan ikey/imode/icnum
Definition: effects-data.c:1954
lives_conx_w::cfxcombo
LiVESWidget ** cfxcombo
Definition: effects-data.h:148
cconx_check_connection
int cconx_check_connection(int ikey, int imode, int icnum, boolean setup, weed_plant_t **ichan_ret, int *idx_ret, int *okey, int *omode, int *ocnum)
Definition: effects-data.c:3633
lives_conx_w::pclabel
LiVESWidget ** pclabel
Definition: effects-data.h:147
lives_conx_w::clabel
LiVESWidget ** clabel
Definition: effects-data.h:146
_lives_cconnect_t::nchans
int nchans
number of alpha channels which are linked (|chans|)
Definition: effects-data.h:88
lives_conx_w::filter
weed_plant_t * filter
Definition: effects-data.h:130
feeds_to_audio_filters
boolean feeds_to_audio_filters(int okey, int omode)
Definition: effects-data.c:2228
feeds_to_video_filters
boolean feeds_to_video_filters(int okey, int omode)
Definition: effects-data.c:2178
_lives_pconnect_t::ikey
int * ikey
ikey is 0 based :: values < 0 indicate an FX_DATA_KEY_*
Definition: effects-data.h:44
lives_conx_w::dpc_func
ulong * dpc_func
Definition: effects-data.h:173
_lives_pconnect_t::imode
int * imode
Definition: effects-data.h:45
lives_conx_w::conx_dialog
LiVESWidget * conx_dialog
Definition: effects-data.h:141
lives_conx_w::pfxcombo
LiVESWidget ** pfxcombo
Definition: effects-data.h:149
cconx_delete
void cconx_delete(int okey, int omode, int ocnum, int ikey, int imode, int icnum)
Definition: effects-data.c:1663
pconx_chain_data_omc
int pconx_chain_data_omc(weed_plant_t *instance, int key, int mode)
Definition: effects-data.c:1323
pconx_chain_data
boolean pconx_chain_data(int key, int mode, boolean is_audio_thread)
Definition: effects-data.c:1390
lives_conx_w::dispp
int * dispp
Definition: effects-data.h:167
_lives_pconnect_t
Definition: effects-data.h:28
pconx_list
char * pconx_list(int okey, int omode, int opnum)
Definition: effects-data.c:231
override_if_active_input
void override_if_active_input(int hotkey)
Definition: effects-data.c:98
lives_conx_w::dpp_func
ulong * dpp_func
Definition: effects-data.h:174
lives_conx_w::num_alpha
int num_alpha
Definition: effects-data.h:134
_lives_cconnect_t::okey
int okey
okey is 0 based
Definition: effects-data.h:85
lives_conx_w::cconx
lives_cconnect_t * cconx
Definition: effects-data.h:138
end_override_if_activate_output
void end_override_if_activate_output(int hotkey)
Definition: effects-data.c:126
pconx_chain_data_internal
boolean pconx_chain_data_internal(weed_plant_t *inst)
Definition: effects-data.c:1525
lives_conx_w::dispc
int * dispc
Definition: effects-data.h:166
lives_conx_w::disconbutton
LiVESWidget * disconbutton
Definition: effects-data.h:144
lives_conx_w::tablec
LiVESWidget * tablec
Definition: effects-data.h:158
lives_conx_w::trowsp
int trowsp
Definition: effects-data.h:163
lives_conx_w
Definition: effects-data.h:129
pconx_check_connection
int pconx_check_connection(weed_plant_t *ofilter, int opnum, int ikey, int imode, int ipnum, boolean setup, weed_plant_t **iparam_ret, int *idx_ret, int *okey, int *omode, int *oopnum)
Definition: effects-data.c:3390
lives_conx_w::ntabs
int ntabs
Definition: effects-data.h:136
lives_conx_w::apbutton
LiVESWidget * apbutton
Definition: effects-data.h:143
_lives_cconnect_t
Definition: effects-data.h:84
_lives_cconnect_t::omode
int omode
Definition: effects-data.h:86
_lives_cconnect_t::nconns
int * nconns
Definition: effects-data.h:94
lives_conx_w::imodes
int * imodes
Definition: effects-data.h:170
cconx_remap_mode
void cconx_remap_mode(int key, int omode, int nmode)
Definition: effects-data.c:1744
_lives_cconnect_t::imode
int * imode
Definition: effects-data.h:98
_lives_pconnect_t::autoscale
boolean * autoscale
Definition: effects-data.h:47
_lives_pconnect_t::next
lives_pconnect_t * next
Definition: effects-data.h:49
lives_conx_w::del_button
LiVESWidget ** del_button
Definition: effects-data.h:154
_lives_pconnect_t::nparams
int nparams
number of parameters which are linked
Definition: effects-data.h:32
ulong
#define ulong
Definition: main.h:178
_lives_pconnect_t::omode
int omode
Definition: effects-data.h:30
make_datacon_window
LiVESWidget * make_datacon_window(int key, int mode)
Definition: effects-data.c:4722
_lives_cconnect_t::icnum
int * icnum
Definition: effects-data.h:99
lives_conx_w::pconx
lives_pconnect_t * pconx
Definition: effects-data.h:139
lives_conx_w::acbutton
LiVESWidget * acbutton
Definition: effects-data.h:142
pconx_delete_all
void pconx_delete_all()
Definition: effects-data.c:153
_lives_pconnect_t::ipnum
int * ipnum
Definition: effects-data.h:46
lives_conx_w::allcheck_label
LiVESWidget * allcheck_label
Definition: effects-data.h:156
lives_conx_w::idx
int * idx
Definition: effects-data.h:171