BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bsemain.hh
Go to the documentation of this file.
00001  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
00002 #ifndef __BSE_MAIN_H__
00003 #define __BSE_MAIN_H__
00004 #include        <bse/bse.hh>    /* initialization */
00005 #include        <bse/bsetype.hh>
00006 G_BEGIN_DECLS
00007 
00008 // == BSE Initialization ==
00009 void            bse_init_textdomain_only (void);
00010 void            _bse_init_async          (int *argc, char **argv, const char *app_name, const Bse::StringVector &args);
00011 SfiGlueContext* _bse_glue_context_create (const char *client, const std::function<void()> &caller_wakeup);
00012 const char*     bse_check_version       (guint           required_major,
00013                                          guint           required_minor,
00014                                          guint           required_micro);       // prototyped in bse.hh
00015 
00016 /* initialization for internal utilities */
00017 void bse_init_inprocess (int *argc, char **argv, const char *app_name, const Bse::StringVector &args = Bse::StringVector());
00018 void bse_init_test      (int *argc, char **argv, const Bse::StringVector &args = Bse::StringVector());
00019 void bse_main_wakeup    ();
00020 
00021 /* --- global macros --- */
00022 #define BSE_THREADS_ENTER()                     // bse_main_global_lock ()
00023 #define BSE_THREADS_LEAVE()                     // bse_main_global_unlock ()
00024 #define BSE_DBG_EXT                             (bse_main_args->debug_extensions != FALSE)
00025 #define BSE_CONFIG(field)                       (bse_main_args->field)
00026 
00027 /* --- argc/argv overide settings --- */
00028 struct BseMainArgs {
00029   uint                  n_processors;
00030   /* # values to pad around wave chunk blocks per channel */
00031   uint                  wave_chunk_padding;
00032   uint                  wave_chunk_big_pad;
00033   /* data (file) cache block size (aligned to power of 2) */
00034   uint                  dcache_block_size;
00035   /* amount of bytes to spare for memory cache */
00036   uint                  dcache_cache_memory;
00037   uint                  midi_kammer_note;
00038   /* kammer frequency, normally 440Hz, historically 435Hz */
00039   double                kammer_freq;
00040   const char           *path_binaries;
00041   const char           *bse_rcfile;
00042   const char           *override_plugin_globs;
00043   const char           *override_script_path;
00044   const char           *override_sample_path;
00045   bool                  stand_alone;            
00046   bool                  allow_randomization;    
00047   bool                  force_fpu;              
00048   bool                  load_core_plugins;      
00049   bool                  load_core_scripts;      
00050   bool                  debug_extensions;       
00051   bool                  load_drivers_early;
00052   bool                  dump_driver_list;
00053   int                   latency;
00054   int                   mixing_freq;
00055   int                   control_freq;
00056   SfiRing              *pcm_drivers;
00057   SfiRing              *midi_drivers;
00058 };
00059 
00060 /* --- internal --- */
00061 void    _bse_init_c_wrappers    ();
00062 extern BseMainArgs     *bse_main_args;
00063 extern GMainContext    *bse_main_context;
00064 
00065 G_END_DECLS
00066 
00067 #endif /* __BSE_MAIN_H__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines