2 #ifndef __BSE_ENGINE_NODE_H__
3 #define __BSE_ENGINE_NODE_H__
10 #define ENGINE_NODE(module) ((EngineNode*) (module))
11 #define ENGINE_NODE_N_OSTREAMS(node) ((node)->module.klass->n_ostreams)
12 #define ENGINE_NODE_N_ISTREAMS(node) ((node)->module.klass->n_istreams)
13 #define ENGINE_NODE_N_JSTREAMS(node) ((node)->module.klass->n_jstreams)
14 #define ENGINE_NODE_IS_CONSUMER(node) ((node)->is_consumer && \
15 (node)->output_nodes == NULL)
16 #define ENGINE_NODE_IS_INTEGRATED(node) ((node)->integrated)
17 #define ENGINE_NODE_IS_VIRTUAL(node) ((node)->virtual_node)
18 #define ENGINE_NODE_IS_SUSPENDED(nod,s) ((s) < (nod)->next_active)
19 #define ENGINE_NODE_IS_DEFERRED(node) (FALSE)
20 #define ENGINE_NODE_IS_SCHEDULED(node) (ENGINE_NODE (node)->sched_tag)
21 #define ENGINE_NODE_IS_CHEAP(node) (((node)->module.klass->mflags & BSE_COST_CHEAP) != 0)
22 #define ENGINE_NODE_IS_EXPENSIVE(node) (((node)->module.klass->mflags & BSE_COST_EXPENSIVE) != 0)
23 #define ENGINE_NODE_LOCK(node) (node)->rec_mutex.lock()
24 #define ENGINE_NODE_UNLOCK(node) (node)->rec_mutex.unlock()
25 #define ENGINE_MODULE_IS_VIRTUAL(mod) (ENGINE_NODE_IS_VIRTUAL (ENGINE_NODE (mod)))
42 ENGINE_JOB_IDISCONNECT,
43 ENGINE_JOB_JDISCONNECT,
44 ENGINE_JOB_KILL_INPUTS,
45 ENGINE_JOB_KILL_OUTPUTS,
46 ENGINE_JOB_SET_CONSUMER,
47 ENGINE_JOB_UNSET_CONSUMER,
48 ENGINE_JOB_FORCE_RESET,
53 ENGINE_JOB_REMOVE_POLL,
57 ENGINE_JOB_BOUNDARY_JOB,
68 gboolean free_with_job;
81 EngineNode *dest_node;
90 BseFreeFunc free_func;
95 BseFreeFunc free_func;
100 BseEngineTimerFunc timer_func;
102 BseFreeFunc free_func;
106 EngineTimedJob *tjob;
121 EngineTimedJob *next;
126 EngineTimedJob *next;
130 BseOStream *ostreams;
135 EngineTimedJob *next;
138 BseFreeFunc free_func;
147 EngineNode *src_node;
150 EngineNode *real_node;
155 EngineNode *src_node;
158 EngineNode *real_node;
175 EngineTimedJob *flow_jobs;
176 EngineTimedJob *probe_jobs;
177 EngineTimedJob *boundary_jobs;
178 EngineTimedJob *tjob_head, *tjob_tail;
182 EngineNode *mnl_next;
183 EngineNode *mnl_prev;
184 guint integrated : 1;
185 guint virtual_node : 1;
186 guint is_consumer : 1;
188 guint update_suspend : 1;
189 guint in_suspend_call : 1;
190 guint needs_reset : 1;
192 guint cleared_ostreams : 1;
194 guint sched_recurse_tag : 1;
195 guint sched_leaf_level;
196 guint64 local_active;
197 EngineNode *toplevel_next;
void(* BseEngineProbeFunc)(gpointer data, guint n_values, guint64 tick_stamp, guint n_ostreams, BseOStream **ostreams_p)
Definition: bseengine.hh:38
Definition: bseenginenode.hh:161
Definition: bseenginenode.hh:61
Definition: bseengineschedule.hh:21
void(* BseEngineAccessFunc)(BseModule *module, gpointer data)
Definition: bsedefs.hh:128
Definition: bseenginenode.hh:166
Definition: sfiring.hh:23
Definition: bseenginenode.hh:110
gboolean(* BseEnginePollFunc)(gpointer data, guint n_values, glong *timeout_p, guint n_fds, const GPollFD *fds, gboolean revents_filled)
Definition: bseengine.hh:30
Definition: bseenginenode.hh:117