BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bseengineutils.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __BSE_ENGINE_UTIL_H__
3 #define __BSE_ENGINE_UTIL_H__
4 
5 #include <bse/bseenginenode.hh>
6 
7 G_BEGIN_DECLS
8 
9 /* --- UserThread --- */
10 void _engine_free_trans (BseTrans *trans);
11 BseOStream* _engine_alloc_ostreams (guint n);
12 #if 0 /* bseengine.hh: */
14 gfloat* bse_engine_const_values (gfloat value);
15 #endif
16 
17 
18 /* --- MasterThread --- */
19 void _engine_recycle_const_values (gboolean nuke_all);
20 void _engine_node_collect_jobs (EngineNode *node);
21 /* master node list */
22 void _engine_mnl_remove (EngineNode *node);
23 void _engine_mnl_node_changed (EngineNode *node);
24 void _engine_mnl_integrate (EngineNode *node);
25 #define BSE_ENGINE_MNL_UNSCHEDULED_TJOB_NODE(node) (!(node)->sched_tag && ((node)->flow_jobs || (node)->probe_jobs))
26 EngineNode* _engine_mnl_head (void);
27 
28 /* communication routines for threads:
29  * UserThread - main application
30  * MasterThread - op engine control thread
31  * SlaveThread - op engine calculation threads
32  *
33  * these functions are for _internal_ use of bseengine*.cc implementations
34  */
35 
36 /* --- job transactions --- */
37 /* UserThread */
38 guint64 _engine_enqueue_trans (BseTrans *trans);
39 BseTrans* _engine_collect_trans (void);
40 void _engine_wait_on_trans (void);
41 /* MasterThread */
42 BseJob* _engine_pop_job (gboolean update_commit_stamp);
43 gboolean _engine_job_pending (void);
44 
45 
46 /* --- node processing queue --- */
47 void _engine_set_schedule (EngineSchedule *schedule);
48 void _engine_unset_schedule (EngineSchedule *schedule);
49 EngineNode* _engine_pop_unprocessed_node (void);
50 void _engine_push_processed_node (EngineNode *node);
51 SfiRing* _engine_pop_unprocessed_cycle (void);
52 void _engine_push_processed_cycle (SfiRing *cycle);
53 void _engine_wait_on_unprocessed (void);
54 
55 G_END_DECLS
56 
57 #endif /* __BSE_ENGINE_UTIL_H__ */
void bse_engine_user_thread_collect(void)
BSE Engine user thread function.
Definition: bseengineutils.cc:355
Definition: sfiring.hh:23