XMMS2

src/includepriv/xmmspriv/xmms_xform.h

Go to the documentation of this file.
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