BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
sfitypes.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 __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: */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines