BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __SFI_TYPES_H__ 00003 #define __SFI_TYPES_H__ 00004 00005 #include <sfi/glib-extra.hh> 00006 #include <sfi/sfiwrapper.hh> 00007 00008 G_BEGIN_DECLS 00009 00010 /* --- Sfi typedefs --- */ 00011 typedef bool SfiBool; 00012 typedef gint SfiInt; 00013 #define SFI_MAXINT (+2147483647) 00014 #define SFI_MININT (-SFI_MAXINT - 1) 00015 typedef long long int SfiNum; 00016 static_assert (sizeof (SfiNum) == 8, "SfiNum"); 00017 #define SFI_MAXNUM ((SfiNum) +9223372036854775807LL) 00018 #define SFI_MINNUM (-SFI_MAXNUM - 1) 00019 typedef long long int SfiTime; 00020 static_assert (sizeof (SfiTime) == 8, "SfiTime"); 00021 typedef SfiInt SfiNote; 00022 typedef double SfiReal; 00023 #define SFI_MINREAL (2.2250738585072014e-308) /* IEEE754 double */ 00024 #define SFI_MAXREAL (1.7976931348623157e+308) /* IEEE754 double */ 00025 typedef const gchar* SfiChoice; 00026 typedef gchar* SfiString; /* convenience for code generators */ 00027 typedef struct _SfiBBlock SfiBBlock; 00028 typedef struct _SfiFBlock SfiFBlock; 00029 typedef struct _SfiSeq SfiSeq; 00030 typedef struct _SfiRec SfiRec; 00031 typedef GType /* pointer */ SfiProxy; 00032 typedef struct { 00033 guint n_fields; 00034 GParamSpec **fields; 00035 } SfiRecFields; 00036 typedef struct _SfiUStore SfiUStore; 00037 typedef struct _SfiUPool SfiUPool; 00038 typedef struct _SfiPPool SfiPPool; 00039 00040 /* --- FIXME: hacks! --- */ 00041 gboolean sfi_choice_match_detailed (const gchar *choice_val1, 00042 const gchar *choice_val2, 00043 gboolean l1_ge_l2); 00044 gboolean sfi_choice_match (const gchar *choice_val1, 00045 const gchar *choice_val2); 00046 gchar* sfi_strdup_canon (const gchar *identifier); 00047 00048 typedef struct { 00049 const gchar *name; 00050 guint name_length; 00051 guint index; 00052 } SfiConstants; 00053 00054 guint sfi_constants_get_index (guint n_consts, 00055 const SfiConstants *rsorted_consts, 00056 const gchar *constant); 00057 const gchar* sfi_constants_get_name (guint n_consts, 00058 const SfiConstants *consts, 00059 guint index); 00060 gint sfi_constants_rcmp (const gchar *canon_identifier1, 00061 const gchar *canon_identifier2); 00062 const char* sfi_category_concat (const char *prefix, 00063 const char *trunk); 00064 00065 /* --- idl macro magic --- */ 00066 #define SFI_START_ARGS() ( 00067 #define SFI_END_ARGS() ) 00068 #define SFI_END_ARGS1(a) a) 00069 #define SFI_END_ARGS2(a,b) a , b) 00070 #define SFI_END_ARGS3(a,b,c) a , b , c) 00071 00072 00073 G_END_DECLS 00074 00075 #endif /* __SFI_TYPES_H__ */ 00076 00077 /* vim:set ts=8 sts=2 sw=2: */