00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __XMMS_PRIV_XFORM_H__
00018 #define __XMMS_PRIV_XFORM_H__
00019
00020 #include "xmms/xmms_xformplugin.h"
00021 #include "xmms/xmms_medialib.h"
00022 #include "xmmspriv/xmms_streamtype.h"
00023 #include "xmmspriv/xmms_plugin.h"
00024
00025 typedef struct xmms_xform_object_St xmms_xform_object_t;
00026
00027 xmms_xform_object_t *xmms_xform_object_init (void);
00028
00029 xmms_xform_t *xmms_xform_new (xmms_xform_plugin_t *plugin, xmms_xform_t *prev, xmms_medialib_entry_t entry, GList *goal_hints);
00030 const gchar *xmms_xform_outtype_get_str (xmms_xform_t *xform, xmms_stream_type_key_t key);
00031 gint xmms_xform_outtype_get_int (xmms_xform_t *xform, xmms_stream_type_key_t key);
00032 xmms_stream_type_t *xmms_xform_outtype_get (xmms_xform_t *xform);
00033
00034 xmms_plugin_t *xmms_xform_plugin_new (void);
00035 gboolean xmms_xform_plugin_verify (xmms_plugin_t *plugin);
00036
00037 xmms_xform_t *xmms_xform_chain_setup (xmms_medialib_entry_t entry, GList *goal_formats);
00038 xmms_xform_t *xmms_xform_chain_setup_url (xmms_medialib_entry_t entry, const gchar *url, GList *goal_formats);
00039 xmms_xform_t *xmms_xform_chain_setup_without_effects (xmms_medialib_entry_t entry, GList *goal_formats);
00040 xmms_xform_t *xmms_xform_chain_setup_url_without_effects (xmms_medialib_entry_t entry, const gchar *url, GList *goal_formats);
00041 xmms_xform_t *xmms_xform_chain_setup_rehash (xmms_medialib_entry_t entry, GList *goal_formats);
00042
00043 gint64 xmms_xform_this_seek (xmms_xform_t *xform, gint64 offset, xmms_xform_seek_mode_t whence, xmms_error_t *err);
00044 int xmms_xform_this_read (xmms_xform_t *xform, gpointer buf, int siz, xmms_error_t *err);
00045 gboolean xmms_xform_iseos (xmms_xform_t *xform);
00046
00047 const GList *xmms_xform_goal_hints_get (xmms_xform_t *xform);
00048 xmms_stream_type_t *xmms_xform_intype_get (xmms_xform_t *xform);
00049
00050 void xmms_xform_outdata_type_set (xmms_xform_t *xform, xmms_stream_type_t *type);
00051 GList *xmms_xform_browse (xmms_xform_object_t *obj, const gchar *url, xmms_error_t *error);
00052 GList *xmms_xform_browse_method (xmms_xform_t *xform, const gchar *url, xmms_error_t *error);
00053
00054 const char *xmms_xform_indata_find_str (xmms_xform_t *xform, xmms_stream_type_key_t key);
00055
00056 #define XMMS_XFORM_BUILTIN(shname, name, ver, desc, setupfunc) XMMS_BUILTIN(XMMS_PLUGIN_TYPE_XFORM, XMMS_XFORM_API_VERSION, shname, name, ver, desc, (gboolean (*)(gpointer))setupfunc)
00057
00058 #endif