x86 might not work due to misconfiguration because I could not test it since acinerella is broken in x86 currenty. Gstreamer video support is yet to follow. Please report back any bugs you experience. To compile you will need Visual C++, I hope all files are included
103 lines
3.7 KiB
C
103 lines
3.7 KiB
C
/* GIO - GLib Input, Output and Streaming Library
|
|
*
|
|
* Copyright (C) 2010 Red Hat, Inc.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library 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
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General
|
|
* Public License along with this library; if not, write to the
|
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
|
|
#error "Only <gio/gio.h> can be included directly."
|
|
#endif
|
|
|
|
#ifndef __G_POLLABLE_INPUT_STREAM_H__
|
|
#define __G_POLLABLE_INPUT_STREAM_H__
|
|
|
|
#include <gio/gio.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define G_TYPE_POLLABLE_INPUT_STREAM (g_pollable_input_stream_get_type ())
|
|
#define G_POLLABLE_INPUT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_POLLABLE_INPUT_STREAM, GPollableInputStream))
|
|
#define G_IS_POLLABLE_INPUT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_POLLABLE_INPUT_STREAM))
|
|
#define G_POLLABLE_INPUT_STREAM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_POLLABLE_INPUT_STREAM, GPollableInputStreamInterface))
|
|
|
|
/**
|
|
* GPollableInputStream:
|
|
*
|
|
* An interface for a #GInputStream that can be polled for readability.
|
|
*
|
|
* Since: 2.28
|
|
*/
|
|
typedef struct _GPollableInputStreamInterface GPollableInputStreamInterface;
|
|
|
|
/**
|
|
* GPollableInputStreamInterface:
|
|
* @g_iface: The parent interface.
|
|
* @can_poll: Checks if the #GPollableInputStream instance is actually pollable
|
|
* @is_readable: Checks if the stream is readable
|
|
* @create_source: Creates a #GSource to poll the stream
|
|
* @read_nonblocking: Does a non-blocking read or returns
|
|
* %G_IO_ERROR_WOULD_BLOCK
|
|
*
|
|
* The interface for pollable input streams.
|
|
*
|
|
* The default implementation of @can_poll always returns %TRUE.
|
|
*
|
|
* The default implementation of @read_nonblocking calls
|
|
* g_pollable_input_stream_is_readable(), and then calls
|
|
* g_input_stream_read() if it returns %TRUE. This means you only need
|
|
* to override it if it is possible that your @is_readable
|
|
* implementation may return %TRUE when the stream is not actually
|
|
* readable.
|
|
*
|
|
* Since: 2.28
|
|
*/
|
|
struct _GPollableInputStreamInterface
|
|
{
|
|
GTypeInterface g_iface;
|
|
|
|
/* Virtual Table */
|
|
gboolean (*can_poll) (GPollableInputStream *stream);
|
|
|
|
gboolean (*is_readable) (GPollableInputStream *stream);
|
|
GSource * (*create_source) (GPollableInputStream *stream,
|
|
GCancellable *cancellable);
|
|
gssize (*read_nonblocking) (GPollableInputStream *stream,
|
|
void *buffer,
|
|
gsize count,
|
|
GError **error);
|
|
};
|
|
|
|
GType g_pollable_input_stream_get_type (void) G_GNUC_CONST;
|
|
|
|
gboolean g_pollable_input_stream_can_poll (GPollableInputStream *stream);
|
|
|
|
gboolean g_pollable_input_stream_is_readable (GPollableInputStream *stream);
|
|
GSource *g_pollable_input_stream_create_source (GPollableInputStream *stream,
|
|
GCancellable *cancellable);
|
|
|
|
gssize g_pollable_input_stream_read_nonblocking (GPollableInputStream *stream,
|
|
void *buffer,
|
|
gsize count,
|
|
GCancellable *cancellable,
|
|
GError **error);
|
|
|
|
G_END_DECLS
|
|
|
|
|
|
#endif /* __G_POLLABLE_INPUT_STREAM_H__ */
|
|
|