diff options
author | Andy Wingo <wingo@pobox.com> | 2005-07-08 13:19:16 +0000 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2005-07-08 13:19:16 +0000 |
commit | 81dae26a233429bf822f8a07b53fe8e238573d29 (patch) | |
tree | b4aac6e933640267243a0f0f5d42272b6cee8366 /sys/oss/gstosshelper.h | |
parent | 6fc2023e8fec8c86ba1008edfd68e8998729318b (diff) |
add missing filez
Original commit message from CVS:
add missing filez
Diffstat (limited to 'sys/oss/gstosshelper.h')
-rw-r--r-- | sys/oss/gstosshelper.h | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/sys/oss/gstosshelper.h b/sys/oss/gstosshelper.h new file mode 100644 index 00000000..9b7eebd5 --- /dev/null +++ b/sys/oss/gstosshelper.h @@ -0,0 +1,151 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> + * 2000 Wim Taymans <wim.taymans@chello.be> + * + * gstosshelper.h: helper functions for OSS Device handling. This + * set of functions takes care of device setting/getting, + * opening/closing devices, parsing caps to OSS formats/settings + * or the other way around, device probing, supported format + * probing and mixer integration. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library 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. + */ + +#ifndef __GST_OSS_HELPER_H__ +#define __GST_OSS_HELPER_H__ + +#include <gst/gst.h> +#include <sys/types.h> + +/* debugging category */ +GST_DEBUG_CATEGORY_EXTERN (oss_debug); +#define GST_CAT_DEFAULT oss_debug + +G_BEGIN_DECLS + +enum { + ARG_0, + OSS_ARG_DEVICE, + OSS_ARG_MIXER_DEVICE, + OSS_ARG_DEVICE_NAME, + OSS_ARG_0 +}; + +typedef enum { + GST_OSS_MODE_READ, + GST_OSS_MODE_WRITE, + GST_OSS_MODE_VOLUME, + GST_OSS_MODE_MIXER +} GstOssOpenMode; + +/* + * Embed those two in whatever object you're creating. + */ + +typedef struct _GstOssDeviceCombination { + gchar *dsp, *mixer; + dev_t dev; +} GstOssDeviceCombination; + +typedef struct _GstOssDevice { + /* device state */ + int fd; + int caps; /* the capabilities */ + gint format; + gint fragment; + guint64 fragment_time; + gint fragment_size; + GstOssOpenMode mode; + GstCaps *probed_caps; + + /* stats bytes per *second* */ + guint bps; + + /* sample width in bytes */ + guint sample_width; + + /* parameters */ + gint law; + gint endianness; + gboolean sign; + gint width; + gint depth; + gint channels; + gint rate; + + /* mixer stuff */ + GList *tracklist; + guint32 stereomask, + recdevs, + recmask, + mixcaps; + gint mixer_fd; + gchar *device_name; +} GstOssDevice; + +/* + * class/type/interface handling for mixer/device handling. + */ +void gst_oss_add_mixer_type (GType type); +void gst_oss_add_device_properties (GstElementClass * klass); +void gst_oss_set_device_property (GstElement * element, + GstOssDeviceCombination * c, + GstOssDevice * dev, + guint prop_id, + GParamSpec * pspec, + const GValue * value); +void gst_oss_get_device_property (GstElement * element, + GstOssDeviceCombination * c, + GstOssDevice * d, + guint prop_id, + GParamSpec * pspec, + GValue * value); + +/* + * device open/close. + */ +void gst_oss_init (GObject * obj, + GstOssDeviceCombination * c, + GstOssDevice * dev, + GstOssOpenMode mode); +void gst_oss_dispose (GstOssDeviceCombination * c, + GstOssDevice * dev); +gboolean gst_oss_open (GstElement * element, + GstOssDeviceCombination * c, + GstOssDevice * dev); +void gst_oss_close (GstOssDevice * dev); + +/* + * caps parsing/probing. + */ +gboolean gst_oss_parse_caps (GstOssDevice * dev, + const GstCaps * caps); +gboolean gst_oss_merge_fixed_caps (GstOssDevice * dev, + GstCaps * caps); + +gboolean gst_oss_sync_parms (GstOssDevice * dev); +void gst_oss_reset (GstOssDevice * dev); + +gboolean gst_oss_convert (GstOssDevice * dev, + GstFormat src_format, + gint64 src_value, + GstFormat * dest_format, + gint64 * dest_value); +void gst_oss_probe_caps (GstOssDevice * dev); + +G_END_DECLS + +#endif /* __GST_OSS_HELPER_H__ */ |