diff src/vorbis/vcedit.h @ 12:3da1b8942b8b trunk

[svn] - remove src/Input src/Output src/Effect src/General src/Visualization src/Container
author nenolod
date Mon, 18 Sep 2006 03:14:20 -0700
parents src/Input/vorbis/vcedit.h@54f9e753b511
children 839804c3b3a4
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/vorbis/vcedit.h	Mon Sep 18 03:14:20 2006 -0700
@@ -0,0 +1,63 @@
+/* This program is licensed under the GNU Library General Public License, version 2,
+ * a copy of which is included with this program (with filename LICENSE.LGPL).
+ *
+ * (c) 2000-2001 Michael Smith <msmith@labyrinth.net.au>
+ *
+ * VCEdit header.
+ *
+ */
+
+#ifndef __VCEDIT_H
+#define __VCEDIT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif 
+
+#include <stdio.h>
+#include <ogg/ogg.h>
+#include <vorbis/codec.h>
+#include <audacious/vfs.h>
+
+typedef size_t (*vcedit_read_func)(void *, size_t, size_t, void *);
+typedef size_t (*vcedit_write_func)(const void *, size_t, size_t, void *);
+
+typedef struct {
+	ogg_sync_state	 *oy;
+	ogg_stream_state *os;
+
+	vorbis_comment	 *vc;
+	vorbis_info       vi;
+
+	vcedit_read_func  read;
+	vcedit_write_func write;
+
+	void		 *in;
+	long		  serial;
+	unsigned char	 *mainbuf;
+	unsigned char	 *bookbuf;
+	int		  mainlen;
+	int		  booklen;
+	char 	         *lasterror;
+	char             *vendor;
+	int               prevW;
+	int               extrapage;
+	int               eosin;
+} vcedit_state;
+
+extern vcedit_state *vcedit_new_state(void);
+extern void vcedit_clear(vcedit_state *state);
+extern vorbis_comment *vcedit_comments(vcedit_state *state);
+extern int vcedit_open(vcedit_state *state, VFSFile *in);
+extern int vcedit_open_callbacks(vcedit_state *state, void *in,
+                                 vcedit_read_func read_func,
+                                 vcedit_write_func write_func);
+extern int vcedit_write(vcedit_state *state, void *out);
+extern char *vcedit_error(vcedit_state *state);
+
+#ifdef __cplusplus
+}
+#endif 
+
+#endif /* __VCEDIT_H */
+