src/include/xmms/xmms_object.h File Reference

#include <glib.h>
#include "xmms/xmms_error.h"
#include "xmmsc/xmmsc_idnumbers.h"
#include "xmmsc/xmmsc_coll.h"

Go to the source code of this file.

Data Structures

struct  xmms_object_St
struct  xmms_object_cmd_value_t
struct  xmms_object_cmd_arg_t
struct  xmms_object_cmd_desc_St

Defines

#define XMMS_OBJECT_MID   0x00455574
#define XMMS_OBJECT_CMD_MAX_ARGS   6
#define XMMS_OBJECT(p)   ((xmms_object_t *)p)
#define XMMS_IS_OBJECT(p)   (XMMS_OBJECT (p)->id == XMMS_OBJECT_MID)
#define __XMMS_CMD_DO_ARG_NONE(a)
#define __XMMS_CMD_DO_ARG_STRING(a)   ,arg->values[a].value.string
#define __XMMS_CMD_DO_ARG_UINT32(a)   ,arg->values[a].value.uint32
#define __XMMS_CMD_DO_ARG_INT32(a)   ,arg->values[a].value.int32
#define __XMMS_CMD_DO_ARG_STRINGLIST(a)   ,arg->values[a].value.list
#define __XMMS_CMD_DO_ARG_COLL(a)   ,arg->values[a].value.coll
#define __XMMS_CMD_DO_ARG_BIN(a)   ,arg->values[a].value.bin
#define __XMMS_CMD_DO_RETVAL_NONE()   arg->retval = xmms_object_cmd_value_none_new();
#define __XMMS_CMD_DO_RETVAL_DICT()   arg->retval = xmms_object_cmd_value_dict_new
#define __XMMS_CMD_DO_RETVAL_UINT32()   arg->retval = xmms_object_cmd_value_uint_new
#define __XMMS_CMD_DO_RETVAL_INT32()   arg->retval = xmms_object_cmd_value_int_new
#define __XMMS_CMD_DO_RETVAL_LIST()   arg->retval = xmms_object_cmd_value_list_new
#define __XMMS_CMD_DO_RETVAL_PROPDICT()   arg->retval = xmms_object_cmd_value_propdict_new
#define __XMMS_CMD_DO_RETVAL_STRING()   arg->retval = xmms_object_cmd_value_str_new
#define __XMMS_CMD_DO_RETVAL_COLL()   arg->retval = xmms_object_cmd_value_coll_new
#define __XMMS_CMD_DO_RETVAL_BIN()   arg->retval = xmms_object_cmd_value_bin_new
#define XMMS_CMD_DEFINE6(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, argtype3, argtype4, argtype5, argtype6)
#define XMMS_CMD_DEFINE(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2)   XMMS_CMD_DEFINE6(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, NONE, NONE, NONE, NONE)
#define XMMS_CMD_DEFINE3(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, argtype3)   XMMS_CMD_DEFINE6(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, argtype3, NONE, NONE, NONE)
#define XMMS_CMD_DEFINE4(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, argtype3, argtype4)   XMMS_CMD_DEFINE6(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, argtype3, argtype4, NONE, NONE)
#define XMMS_CMD_DEFINE5(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, argtype3, argtype4, argtype5)   XMMS_CMD_DEFINE6(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, argtype3, argtype4, argtype5, NONE)
#define XMMS_CMD_FUNC(cmdid)   &__int_xmms_cmd_desc_##cmdid
#define xmms_object_ref(obj)
#define xmms_object_unref(obj)
#define xmms_object_new(objtype, destroyfunc)   (objtype *) __int_xmms_object_new (sizeof (objtype), destroyfunc)

Typedefs

typedef struct xmms_object_St xmms_object_t
typedef struct
xmms_object_cmd_desc_St 
xmms_object_cmd_desc_t
typedef void(* xmms_object_destroy_func_t )(xmms_object_t *object)
typedef void(* xmms_object_handler_t )(xmms_object_t *object, gconstpointer data, gpointer userdata)
typedef void(* xmms_object_cmd_func_t )(xmms_object_t *object, xmms_object_cmd_arg_t *arg)

Functions

xmms_object_cmd_value_txmms_object_cmd_value_str_new (const gchar *string)
xmms_object_cmd_value_txmms_object_cmd_value_bin_new (GString *bin)
xmms_object_cmd_value_txmms_object_cmd_value_uint_new (guint32 uint)
xmms_object_cmd_value_txmms_object_cmd_value_int_new (gint32 i)
xmms_object_cmd_value_txmms_object_cmd_value_dict_new (GTree *dict)
xmms_object_cmd_value_txmms_object_cmd_value_hash_table_new (GHashTable *hash)
xmms_object_cmd_value_txmms_object_cmd_value_list_new (GList *list)
xmms_object_cmd_value_txmms_object_cmd_value_propdict_new (GList *list)
xmms_object_cmd_value_txmms_object_cmd_value_coll_new (xmmsc_coll_t *coll)
xmms_object_cmd_value_txmms_object_cmd_value_none_new (void)
xmms_object_cmd_value_txmms_object_cmd_value_ref (xmms_object_cmd_value_t *val)
void xmms_object_cmd_value_unref (xmms_object_cmd_value_t *val)
void xmms_object_cleanup (xmms_object_t *object)
 Cleanup all the resources for the object.
void xmms_object_parent_set (xmms_object_t *object, xmms_object_t *parent)
void xmms_object_connect (xmms_object_t *object, guint32 signalid, xmms_object_handler_t handler, gpointer userdata)
 Connect to a signal that is emitted by this object.
void xmms_object_disconnect (xmms_object_t *object, guint32 signalid, xmms_object_handler_t handler, gpointer userdata)
 Disconnect from a signal.
void xmms_object_emit (xmms_object_t *object, guint32 signalid, gconstpointer data)
 Emit a signal and thus call all the handlers that are connected.
void xmms_object_emit_f (xmms_object_t *object, guint32 signalid, xmms_object_cmd_arg_type_t type,...)
 Emits a signal on the current object.
void xmms_object_cmd_arg_init (xmms_object_cmd_arg_t *arg)
 Initialize a command argument.
void xmms_object_cmd_add (xmms_object_t *object, guint cmdid, xmms_object_cmd_desc_t *desc)
 Add a command that could be called from the client API to a object.
void xmms_object_cmd_call (xmms_object_t *object, guint cmdid, xmms_object_cmd_arg_t *arg)
 Call a command with argument.
void __int_xmms_object_unref (xmms_object_t *object)
xmms_object_t__int_xmms_object_new (gint size, xmms_object_destroy_func_t destfunc)


Define Documentation

#define __XMMS_CMD_DO_ARG_BIN (  )     ,arg->values[a].value.bin

Definition at line 136 of file xmms_object.h.

#define __XMMS_CMD_DO_ARG_COLL (  )     ,arg->values[a].value.coll

Definition at line 135 of file xmms_object.h.

#define __XMMS_CMD_DO_ARG_INT32 (  )     ,arg->values[a].value.int32

Definition at line 133 of file xmms_object.h.

#define __XMMS_CMD_DO_ARG_NONE (  ) 

Definition at line 130 of file xmms_object.h.

#define __XMMS_CMD_DO_ARG_STRING (  )     ,arg->values[a].value.string

Definition at line 131 of file xmms_object.h.

#define __XMMS_CMD_DO_ARG_STRINGLIST (  )     ,arg->values[a].value.list

Definition at line 134 of file xmms_object.h.

#define __XMMS_CMD_DO_ARG_UINT32 (  )     ,arg->values[a].value.uint32

Definition at line 132 of file xmms_object.h.

 
#define __XMMS_CMD_DO_RETVAL_BIN (  )     arg->retval = xmms_object_cmd_value_bin_new

Definition at line 145 of file xmms_object.h.

 
#define __XMMS_CMD_DO_RETVAL_COLL (  )     arg->retval = xmms_object_cmd_value_coll_new

Definition at line 144 of file xmms_object.h.

 
#define __XMMS_CMD_DO_RETVAL_DICT (  )     arg->retval = xmms_object_cmd_value_dict_new

Definition at line 138 of file xmms_object.h.

 
#define __XMMS_CMD_DO_RETVAL_INT32 (  )     arg->retval = xmms_object_cmd_value_int_new

Definition at line 140 of file xmms_object.h.

 
#define __XMMS_CMD_DO_RETVAL_LIST (  )     arg->retval = xmms_object_cmd_value_list_new

Definition at line 141 of file xmms_object.h.

 
#define __XMMS_CMD_DO_RETVAL_NONE (  )     arg->retval = xmms_object_cmd_value_none_new();

Definition at line 137 of file xmms_object.h.

 
#define __XMMS_CMD_DO_RETVAL_PROPDICT (  )     arg->retval = xmms_object_cmd_value_propdict_new

Definition at line 142 of file xmms_object.h.

 
#define __XMMS_CMD_DO_RETVAL_STRING (  )     arg->retval = xmms_object_cmd_value_str_new

Definition at line 143 of file xmms_object.h.

 
#define __XMMS_CMD_DO_RETVAL_UINT32 (  )     arg->retval = xmms_object_cmd_value_uint_new

Definition at line 139 of file xmms_object.h.

#define XMMS_CMD_DEFINE ( cmdid,
realfunc,
argtype0,
_rettype,
argtype1,
argtype2   )     XMMS_CMD_DEFINE6(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, NONE, NONE, NONE, NONE)

Definition at line 161 of file xmms_object.h.

#define XMMS_CMD_DEFINE3 ( cmdid,
realfunc,
argtype0,
_rettype,
argtype1,
argtype2,
argtype3   )     XMMS_CMD_DEFINE6(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, argtype3, NONE, NONE, NONE)

Definition at line 162 of file xmms_object.h.

#define XMMS_CMD_DEFINE4 ( cmdid,
realfunc,
argtype0,
_rettype,
argtype1,
argtype2,
argtype3,
argtype4   )     XMMS_CMD_DEFINE6(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, argtype3, argtype4, NONE, NONE)

Definition at line 163 of file xmms_object.h.

#define XMMS_CMD_DEFINE5 ( cmdid,
realfunc,
argtype0,
_rettype,
argtype1,
argtype2,
argtype3,
argtype4,
argtype5   )     XMMS_CMD_DEFINE6(cmdid, realfunc, argtype0, _rettype, argtype1, argtype2, argtype3, argtype4, argtype5, NONE)

Definition at line 164 of file xmms_object.h.

#define XMMS_CMD_DEFINE6 ( cmdid,
realfunc,
argtype0,
_rettype,
argtype1,
argtype2,
argtype3,
argtype4,
argtype5,
argtype6   ) 

Value:

static void \
__int_xmms_cmd_##cmdid (xmms_object_t *object, xmms_object_cmd_arg_t *arg) \
{ \
g_return_if_fail (XMMS_IS_OBJECT (object)); \
g_return_if_fail (arg->values[0].type == XMMS_OBJECT_CMD_ARG_##argtype1); \
g_return_if_fail (arg->values[1].type == XMMS_OBJECT_CMD_ARG_##argtype2); \
g_return_if_fail (arg->values[2].type == XMMS_OBJECT_CMD_ARG_##argtype3); \
g_return_if_fail (arg->values[3].type == XMMS_OBJECT_CMD_ARG_##argtype4); \
g_return_if_fail (arg->values[4].type == XMMS_OBJECT_CMD_ARG_##argtype5); \
g_return_if_fail (arg->values[5].type == XMMS_OBJECT_CMD_ARG_##argtype6); \
__XMMS_CMD_DO_RETVAL_##_rettype() (realfunc ((argtype0)object __XMMS_CMD_DO_ARG_##argtype1(0) __XMMS_CMD_DO_ARG_##argtype2(1) __XMMS_CMD_DO_ARG_##argtype3(2) __XMMS_CMD_DO_ARG_##argtype4(3) __XMMS_CMD_DO_ARG_##argtype5(4) __XMMS_CMD_DO_ARG_##argtype6(5), &arg->error)); \
} \
xmms_object_cmd_desc_t __int_xmms_cmd_desc_##cmdid = { __int_xmms_cmd_##cmdid, XMMS_OBJECT_CMD_ARG_##_rettype, {XMMS_OBJECT_CMD_ARG_##argtype1, XMMS_OBJECT_CMD_ARG_##argtype2, XMMS_OBJECT_CMD_ARG_##argtype3, XMMS_OBJECT_CMD_ARG_##argtype4, XMMS_OBJECT_CMD_ARG_##argtype5, XMMS_OBJECT_CMD_ARG_##argtype6} }

Definition at line 147 of file xmms_object.h.

#define XMMS_CMD_FUNC ( cmdid   )     &__int_xmms_cmd_desc_##cmdid

#define XMMS_IS_OBJECT (  )     (XMMS_OBJECT (p)->id == XMMS_OBJECT_MID)

#define XMMS_OBJECT (  )     ((xmms_object_t *)p)

#define XMMS_OBJECT_CMD_MAX_ARGS   6

Definition at line 84 of file xmms_object.h.

#define XMMS_OBJECT_MID   0x00455574

Definition at line 28 of file xmms_object.h.

Referenced by __int_xmms_object_new().

#define xmms_object_new ( objtype,
destroyfunc   )     (objtype *) __int_xmms_object_new (sizeof (objtype), destroyfunc)

#define xmms_object_ref ( obj   ) 

Value:

do { \
    if (obj && XMMS_IS_OBJECT (obj)) { \
        XMMS_OBJECT (obj)->ref++; \
    } \
} while (0)

Definition at line 172 of file xmms_object.h.

Referenced by __int_xmms_object_new(), _xmms_medialib_begin(), xmms_xform_new(), xmms_xform_outdata_type_copy(), and xmms_xform_outdata_type_set().

#define xmms_object_unref ( obj   ) 

Value:

do { \
    if (obj && XMMS_IS_OBJECT (obj)) { \
        __int_xmms_object_unref (XMMS_OBJECT (obj)); \
    } \
} while (0)

Definition at line 178 of file xmms_object.h.

Referenced by xmms_config_shutdown(), xmms_medialib_end(), xmms_output_plugin_switch(), xmms_plugin_shutdown(), xmms_xform_browse(), and xmms_xform_new().


Typedef Documentation

Definition at line 34 of file xmms_object.h.

Definition at line 91 of file xmms_object.h.

typedef void(* xmms_object_destroy_func_t)(xmms_object_t *object)

Definition at line 36 of file xmms_object.h.

typedef void(* xmms_object_handler_t)(xmms_object_t *object, gconstpointer data, gpointer userdata)

Definition at line 54 of file xmms_object.h.

typedef struct xmms_object_St xmms_object_t

Definition at line 33 of file xmms_object.h.


Function Documentation

xmms_object_t* __int_xmms_object_new ( gint  size,
xmms_object_destroy_func_t  destfunc 
)

Definition at line 502 of file object.c.

void __int_xmms_object_unref ( xmms_object_t object  ) 

Definition at line 488 of file object.c.

void xmms_object_parent_set ( xmms_object_t object,
xmms_object_t parent 
)


Generated on Wed Dec 10 18:06:44 2008 for XMMS2 by  doxygen 1.5.6