aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/vcedit.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vcedit.h')
-rwxr-xr-xsrc/vcedit.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/vcedit.h b/src/vcedit.h
new file mode 100755
index 0000000..5bc39dc
--- /dev/null
+++ b/src/vcedit.h
@@ -0,0 +1,75 @@
+/* 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@xiph.org>
+ *
+ * VCEdit header.
+ *
+ * last modified: $ID:$
+ */
+
+#ifndef __VCEDIT_H
+#define __VCEDIT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdio.h>
+#include <ogg/ogg.h>
+#include <vorbis/codec.h>
+
+#ifdef ENABLE_SPEEX
+#include <speex/speex.h>
+#include <speex/speex_header.h>
+#endif
+
+#define VCEDIT_IS_UNKNOWN 0
+#define VCEDIT_IS_SPEEX 1
+#define VCEDIT_IS_OGGVORBIS 2
+
+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;
+
+ int oggtype; // Stream is Vorbis or Speex?
+ vorbis_comment *vc;
+ vorbis_info *vi;
+#ifdef ENABLE_SPEEX
+ SpeexHeader *si;
+#endif
+
+ 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, FILE *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 */
+