00001 #ifndef __XMMS_UTILS_H__
00002 #define __XMMS_UTILS_H__
00003
00004 #include <stdio.h>
00005
00006 #define XMMS_STRINGIFY_NOEXPAND(x) #x
00007 #define XMMS_STRINGIFY(x) XMMS_STRINGIFY_NOEXPAND(x)
00008
00009 #define x_return_if_fail(expr) if (!(expr)) { fprintf (stderr, "Failed in file " __FILE__ " on row %d\n", __LINE__); return; }
00010 #define x_return_val_if_fail(expr, val) if (!(expr)) { fprintf (stderr, "Failed in file " __FILE__ " on row %d\n", __LINE__); return val; }
00011 #define x_return_null_if_fail(expr) x_return_val_if_fail (expr, NULL)
00012 #define x_oom() do { fprintf(stderr, "Out of memory in " __FILE__ "on row %d\n", __LINE__); } while (0)
00013 #define x_new0(type, num) calloc (1, sizeof (type) * (num))
00014 #define x_new(type, num) malloc (sizeof (type) * (num))
00015 #define x_malloc0(size) calloc (1, size)
00016 #define x_malloc(size) malloc (size)
00017
00018
00019
00020 #if defined(__x86_64__)
00021 # define XPOINTER_TO_INT(p) ((int) (long) (p))
00022 # define XPOINTER_TO_UINT(p) ((unsigned int) (unsigned long) (p))
00023 # define XINT_TO_POINTER(i) ((void *) (long) (i))
00024 # define XUINT_TO_POINTER(u) ((void *) (unsigned long) (u))
00025 #else
00026 # define XPOINTER_TO_INT(p) ((int) (p))
00027 # define XPOINTER_TO_UINT(p) ((unsigned int) (p))
00028 # define XINT_TO_POINTER(i) ((void *) (i))
00029 # define XUINT_TO_POINTER(u) ((void *) (u))
00030 #endif
00031
00032 #ifndef MIN
00033 # define MIN(a, b) (((a) < (b)) ? (a) : (b))
00034 #endif
00035
00036 #ifndef X_N_ELEMENTS
00037 # define X_N_ELEMENTS(a) (sizeof (a) / sizeof ((a)[0]))
00038 #endif
00039
00040 #define XMMS_PATH_MAX 255
00041
00042
00043 #define XMMS_DEFAULT_TCP_PORT 9667
00044
00045 const char *xmms_userconfdir_get (char *buf, int len);
00046 const char *xmms_usercachedir_get (char *buf, int len);
00047 const char *xmms_default_ipcpath_get (char *buf, int len);
00048 const char *xmms_fallback_ipcpath_get (char *buf, int len);
00049
00050 #endif