summaryrefslogtreecommitdiff
path: root/src/input/vcd/libvcd/stream.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/vcd/libvcd/stream.c')
-rw-r--r--src/input/vcd/libvcd/stream.c276
1 files changed, 0 insertions, 276 deletions
diff --git a/src/input/vcd/libvcd/stream.c b/src/input/vcd/libvcd/stream.c
deleted file mode 100644
index ccc7cf046..000000000
--- a/src/input/vcd/libvcd/stream.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- $Id: stream.c,v 1.2 2004/04/11 12:20:32 miguelfreitas Exp $
-
- Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-
-#include <cdio/cdio.h>
-
-/* #define STREAM_DEBUG */
-
-/* Public headers */
-
-#include <libvcd/logging.h>
-
-/* Private headers */
-#include "vcd_assert.h"
-#include "stream.h"
-#include "util.h"
-
-static const char _rcsid[] = "$Id: stream.c,v 1.2 2004/04/11 12:20:32 miguelfreitas Exp $";
-
-/*
- * DataSource implementations
- */
-
-struct _VcdDataSink {
- void* user_data;
- vcd_data_sink_io_functions op;
- int is_open;
- long position;
-};
-
-static void
-_vcd_data_sink_open_if_necessary(VcdDataSink *obj)
-{
- vcd_assert (obj != NULL);
-
- if (!obj->is_open) {
- if ((obj->op.open) (obj->user_data))
- vcd_error("could not opening output stream...");
- else {
- obj->is_open = 1;
- obj->position = 0;
- }
- }
-}
-
-VcdDataSink*
-vcd_data_sink_new(void *user_data, const vcd_data_sink_io_functions *funcs)
-{
- VcdDataSink *new_obj;
-
- new_obj = _vcd_malloc(sizeof(VcdDataSink));
-
- new_obj->user_data = user_data;
- memcpy(&(new_obj->op), funcs, sizeof(vcd_data_sink_io_functions));
-
- return new_obj;
-}
-
-long
-vcd_data_sink_seek(VcdDataSink* obj, long offset)
-{
- vcd_assert (obj != NULL);
-
- _vcd_data_sink_open_if_necessary(obj);
-
- if (obj->position != offset) {
- vcd_warn("had to reposition DataSink from %ld to %ld!", obj->position, offset);
- obj->position = offset;
- return obj->op.seek(obj->user_data, offset);
- }
-
- return 0;
-}
-
-long
-vcd_data_sink_write(VcdDataSink* obj, const void *ptr, long size, long nmemb)
-{
- long written;
-
- vcd_assert (obj != NULL);
-
- _vcd_data_sink_open_if_necessary(obj);
-
- written = obj->op.write(obj->user_data, ptr, size*nmemb);
- obj->position += written;
-
- return written;
-}
-
-long
-vcd_data_sink_printf (VcdDataSink *obj, const char format[], ...)
-{
- char buf[4096] = { 0, };
- long retval;
- int len;
-
- va_list args;
- va_start (args, format);
-
- len = vsnprintf (buf, sizeof(buf), format, args);
-
- if (len < 0 || len > (sizeof (buf) - 1))
- vcd_error ("vsnprintf() returned %d", len);
-
- retval = vcd_data_sink_write (obj, buf, 1, len);
-
- va_end (args);
-
- return retval;
-}
-
-void
-vcd_data_sink_close(VcdDataSink* obj)
-{
- vcd_assert (obj != NULL);
-
- if (obj->is_open) {
- obj->op.close(obj->user_data);
- obj->is_open = 0;
- obj->position = 0;
- }
-}
-
-void
-vcd_data_sink_destroy(VcdDataSink* obj)
-{
- vcd_assert (obj != NULL);
-
- vcd_data_sink_close(obj);
-
- obj->op.free(obj->user_data);
-}
-
-/*
- * DataSource implementations
- */
-
-struct _VcdDataSource {
- void* user_data;
- vcd_data_source_io_functions op;
- int is_open;
- long position;
-};
-
-static void
-_vcd_data_source_open_if_necessary(VcdDataSource *obj)
-{
- vcd_assert (obj != NULL);
-
- if (!obj->is_open) {
- if ((obj->op.open) (obj->user_data))
- vcd_error ("could not opening input stream...");
- else {
-#ifdef STREAM_DEBUG
- vcd_debug ("opened source...");
-#endif
- obj->is_open = 1;
- obj->position = 0;
- }
- }
-}
-
-long
-vcd_data_source_seek(VcdDataSource* obj, long offset)
-{
- vcd_assert (obj != NULL);
-
- _vcd_data_source_open_if_necessary(obj);
-
- if (obj->position != offset) {
-#ifdef STREAM_DEBUG
- vcd_warn("had to reposition DataSource from %ld to %ld!", obj->position, offset);
-#endif
- obj->position = offset;
- return obj->op.seek(obj->user_data, offset);
- }
-
- return 0;
-}
-
-VcdDataSource*
-vcd_data_source_new(void *user_data, const vcd_data_source_io_functions *funcs)
-{
- VcdDataSource *new_obj;
-
- new_obj = _vcd_malloc (sizeof (VcdDataSource));
-
- new_obj->user_data = user_data;
- memcpy(&(new_obj->op), funcs, sizeof(vcd_data_source_io_functions));
-
- return new_obj;
-}
-
-long
-vcd_data_source_read(VcdDataSource* obj, void *ptr, long size, long nmemb)
-{
- long read_bytes;
-
- vcd_assert (obj != NULL);
-
- _vcd_data_source_open_if_necessary(obj);
-
- read_bytes = obj->op.read(obj->user_data, ptr, size*nmemb);
- obj->position += read_bytes;
-
- return read_bytes;
-}
-
-long
-vcd_data_source_stat(VcdDataSource* obj)
-{
- vcd_assert (obj != NULL);
-
- _vcd_data_source_open_if_necessary(obj);
-
- return obj->op.stat(obj->user_data);
-}
-
-void
-vcd_data_source_close(VcdDataSource* obj)
-{
- vcd_assert (obj != NULL);
-
- if (obj->is_open) {
-#ifdef STREAM_DEBUG
- vcd_debug ("closed source...");
-#endif
- obj->op.close(obj->user_data);
- obj->is_open = 0;
- obj->position = 0;
- }
-}
-
-void
-vcd_data_source_destroy(VcdDataSource* obj)
-{
- vcd_assert (obj != NULL);
-
- vcd_data_source_close(obj);
-
- obj->op.free(obj->user_data);
-}
-
-
-/*
- * Local variables:
- * c-file-style: "gnu"
- * tab-width: 8
- * indent-tabs-mode: nil
- * End:
- */