From d1d21600f86907f1dbd1fe4204be443eeda6cafc Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 23 Aug 2005 13:26:21 +0000 Subject: sys/oss/gstossmixer.*: Refactored to be more like alsamixer. Original commit message from CVS: 2005-08-23 Andy Wingo * sys/oss/gstossmixer.h: * sys/oss/gstossmixer.c: Refactored to be more like alsamixer. * sys/oss/gstossmixertrack.h: * sys/oss/gstossmixertrack.c: Split out from gstossmixer.[ch], like gstalsamixer. * sys/oss/gstosssrc.c: * sys/oss/gstosssink.c: Where before we used a gstosselement object as a helper library, now just call functions from gstosshelper. * sys/oss/gstosshelper.h: * sys/oss/gstosshelper.c: Made a real library. Removed propertyprobe for now, should add it back later. * sys/oss/gstosselement.h: * sys/oss/gstosselement.c: Removed, we don't have a shared base class. * sys/oss/gstosshelper.c (gst_oss_helper_probe_caps): Search higher-to-lower, makes 16 bit appear earlier in the caps, which makes it preferred. --- sys/oss/gstosshelper.h | 122 +++---------------------------------------------- 1 file changed, 7 insertions(+), 115 deletions(-) (limited to 'sys/oss/gstosshelper.h') diff --git a/sys/oss/gstosshelper.h b/sys/oss/gstosshelper.h index 9b7eebd5..1593fe39 100644 --- a/sys/oss/gstosshelper.h +++ b/sys/oss/gstosshelper.h @@ -2,11 +2,7 @@ * Copyright (C) 1999,2000 Erik Walthinsen * 2000 Wim Taymans * - * 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. + * gstosshelper.h: OSS helper routines. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -24,128 +20,24 @@ * Boston, MA 02111-1307, USA. */ + #ifndef __GST_OSS_HELPER_H__ #define __GST_OSS_HELPER_H__ + #include #include -/* 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; +#include "gstosshelper.h" - /* 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); +G_BEGIN_DECLS -/* - * 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); +GstCaps* gst_oss_helper_probe_caps (gint fd); -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__ */ -- cgit