Main Page   Modules   Compound List   File List   Compound Members   File Members  

xlv_export.h

00001 /*
00002  * xlv_export.h
00003  *
00004  * Copyright (C) 2002 by Guilhem Lavaux - guilhem.lavaux@free.fr
00005  *
00006  * This file is part of XLV, a free middleware audio-video stream coder/decoder.
00007  *
00008  * This library is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Library General Public
00010  * License as published by the Free Software Foundation; either
00011  * version 2 of the License, or (at your option) any later version.
00012  *
00013  * XLV is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  * GNU General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU General Public License
00019  * along with this program; if not, write to the Free Software
00020  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00021  */                                                                             
00022 #ifndef _XLV_EXPORT_H
00023 #define _XLV_EXPORT_H
00024 
00025 #include <glib.h>
00026 #include "xlv_plugin_mgr.h"
00027 
00028 typedef gpointer XLV_ExportFunction;
00029 
00030 typedef struct _XLV_ExportMgr XLV_ExportMgr;
00031 typedef struct _XLV_ExportCluster XLV_ExportCluster;
00032 typedef struct _XLV_ExportElement XLV_ExportElement;
00033 
00034 #ifdef _XLV_INTERNAL
00035 struct _XLV_ExportMgr {
00036     GList *m_clusters;
00037 };
00038 
00039 struct _XLV_ExportCluster {
00040     gchar *m_cname;
00041     gchar *m_cidname;
00042     XLV_Plugin *m_plugin;
00043     XLV_Stream *m_opened_stream;
00044     guint16 m_lock;
00045 
00046     GList *m_exports;
00047     XLV_Module *m_module;
00048 };
00049 
00050 struct _XLV_ExportElement {
00051     XLV_ExportFunction m_function;
00052     guint32 m_export_id;
00053 };
00054 #endif
00055 
00056 #ifdef __cplusplus
00057 extern "C" {
00058 #endif
00059 
00060     XLV_ExportCluster *xlv_export_pack (XLV_PluginMgr * mgr,
00061                                         XLV_Module * module,
00062                                         const gchar * cluster_name,
00063                                         const gchar * cluster_idname);
00064 
00065     gboolean xlv_export_add (XLV_ExportCluster * cluster, guint export_id,
00066                              XLV_ExportFunction function);
00067 
00068     XLV_ExportCluster *xlv_export_get_cluster (XLV_PluginMgr * mgr,
00069                                                const gchar * clustername);
00070 
00071     void xlv_export_lock_cluster (XLV_ExportCluster * cluster);
00072     void xlv_export_unlock_cluster (XLV_ExportCluster * cluster);
00073 
00074     XLV_ExportFunction xlv_export_get_function (XLV_ExportCluster * cluster,
00075                                                 guint export_id);
00076 
00077 #ifdef __cplusplus
00078 }
00079 #endif
00080 #endif

Generated on Mon Jul 1 19:39:05 2002 for XLV by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002