XMMS2
|
00001 /* XMMS2 - X Music Multiplexer System 00002 * Copyright (C) 2003-2009 XMMS2 Team 00003 * 00004 * PLUGINS ARE NOT CONSIDERED TO BE DERIVED WORK !!! 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 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, gboolean rehash); 00038 xmms_xform_t *xmms_xform_chain_setup_url (xmms_medialib_entry_t entry, const gchar *url, GList *goal_formats, gboolean rehash); 00039 00040 gint64 xmms_xform_this_seek (xmms_xform_t *xform, gint64 offset, xmms_xform_seek_mode_t whence, xmms_error_t *err); 00041 int xmms_xform_this_read (xmms_xform_t *xform, gpointer buf, int siz, xmms_error_t *err); 00042 gboolean xmms_xform_iseos (xmms_xform_t *xform); 00043 00044 const GList *xmms_xform_goal_hints_get (xmms_xform_t *xform); 00045 xmms_stream_type_t *xmms_xform_intype_get (xmms_xform_t *xform); 00046 00047 void xmms_xform_outdata_type_set (xmms_xform_t *xform, xmms_stream_type_t *type); 00048 GList *xmms_xform_browse (const gchar *url, xmms_error_t *error); 00049 GList *xmms_xform_browse_method (xmms_xform_t *xform, const gchar *url, xmms_error_t *error); 00050 00051 const char *xmms_xform_indata_find_str (xmms_xform_t *xform, xmms_stream_type_key_t key); 00052 00053 #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) 00054 00055 #endif