summaryrefslogtreecommitdiff
path: root/backends/oss4/oss4-device.c
diff options
context:
space:
mode:
authorMichal Ratajsky <[email protected]>2014-08-12 04:56:55 +0200
committerMichal Ratajsky <[email protected]>2014-08-12 04:56:55 +0200
commit6c6d4239ddc807e922df3874654f99eea291aadb (patch)
tree558f48fc965476344a946d93088680db3b5bac41 /backends/oss4/oss4-device.c
parent8436ec1641eee8868128755f6d1475230cea25e6 (diff)
downloadlibmatemixer-6c6d4239ddc807e922df3874654f99eea291aadb.tar.bz2
libmatemixer-6c6d4239ddc807e922df3874654f99eea291aadb.tar.xz
Add ALSA, improve OSS and remove OSS4
Diffstat (limited to 'backends/oss4/oss4-device.c')
-rw-r--r--backends/oss4/oss4-device.c328
1 files changed, 0 insertions, 328 deletions
diff --git a/backends/oss4/oss4-device.c b/backends/oss4/oss4-device.c
deleted file mode 100644
index b68648b..0000000
--- a/backends/oss4/oss4-device.c
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- * Copyright (C) 2014 Michal Ratajsky <[email protected]>
- *
- * 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 licence, 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, see <http://www.gnu.org/licenses/>.
- */
-
-#include <errno.h>
-#include <unistd.h>
-#include <glib.h>
-#include <glib/gi18n.h>
-#include <glib/gstdio.h>
-#include <glib-object.h>
-
-#include <libmatemixer/matemixer-device.h>
-#include <libmatemixer/matemixer-enums.h>
-#include <libmatemixer/matemixer-port.h>
-#include <libmatemixer/matemixer-port-private.h>
-#include <libmatemixer/matemixer-stream.h>
-#include <libmatemixer/matemixer-stream-control.h>
-
-#include "oss4-common.h"
-#include "oss4-device.h"
-
-#define OSS4_DEVICE_ICON "audio-card"
-
-struct _Oss4DevicePrivate
-{
- gint fd;
- gint index;
- gchar *name;
- gchar *description;
- gchar *icon;
- MateMixerStream *input;
- MateMixerStream *output;
-};
-
-enum {
- PROP_0,
- PROP_NAME,
- PROP_DESCRIPTION,
- PROP_ICON,
- PROP_ACTIVE_PROFILE,
- PROP_FD,
- PROP_INDEX
-};
-
-static void mate_mixer_device_interface_init (MateMixerDeviceInterface *iface);
-
-static void oss4_device_class_init (Oss4DeviceClass *klass);
-
-static void oss4_device_get_property (GObject *object,
- guint param_id,
- GValue *value,
- GParamSpec *pspec);
-static void oss4_device_set_property (GObject *object,
- guint param_id,
- const GValue *value,
- GParamSpec *pspec);
-
-static void oss4_device_init (Oss4Device *device);
-static void oss4_device_finalize (GObject *object);
-
-G_DEFINE_TYPE_WITH_CODE (Oss4Device, oss4_device, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (MATE_MIXER_TYPE_DEVICE,
- mate_mixer_device_interface_init))
-
-static const gchar *oss4_device_get_name (MateMixerDevice *device);
-static const gchar *oss4_device_get_description (MateMixerDevice *device);
-static const gchar *oss4_device_get_icon (MateMixerDevice *device);
-
-static gboolean read_mixer_devices (Oss4Device *device);
-
-static void
-mate_mixer_device_interface_init (MateMixerDeviceInterface *iface)
-{
- iface->get_name = oss4_device_get_name;
- iface->get_description = oss4_device_get_description;
- iface->get_icon = oss4_device_get_icon;
-}
-
-static void
-oss4_device_class_init (Oss4DeviceClass *klass)
-{
- GObjectClass *object_class;
-
- object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = oss4_device_finalize;
- object_class->get_property = oss4_device_get_property;
- object_class->set_property = oss4_device_set_property;
-
- g_object_class_install_property (object_class,
- PROP_FD,
- g_param_spec_int ("fd",
- "File descriptor",
- "File descriptor of the device",
- G_MININT,
- G_MAXINT,
- -1,
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property (object_class,
- PROP_INDEX,
- g_param_spec_int ("index",
- "Index",
- "Index of the device",
- G_MININT,
- G_MAXINT,
- 0,
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_override_property (object_class, PROP_NAME, "name");
- g_object_class_override_property (object_class, PROP_DESCRIPTION, "description");
- g_object_class_override_property (object_class, PROP_ICON, "icon");
- g_object_class_override_property (object_class, PROP_ACTIVE_PROFILE, "active-profile");
-
- g_type_class_add_private (object_class, sizeof (Oss4DevicePrivate));
-}
-
-static void
-oss4_device_get_property (GObject *object,
- guint param_id,
- GValue *value,
- GParamSpec *pspec)
-{
- Oss4Device *device;
-
- device = OSS4_DEVICE (object);
-
- switch (param_id) {
- case PROP_NAME:
- g_value_set_string (value, device->priv->name);
- break;
- case PROP_DESCRIPTION:
- g_value_set_string (value, device->priv->description);
- break;
- case PROP_ICON:
- g_value_set_string (value, OSS4_DEVICE_ICON);
- break;
- case PROP_ACTIVE_PROFILE:
- /* Not supported */
- g_value_set_object (value, NULL);
- break;
- case PROP_FD:
- g_value_set_int (value, device->priv->fd);
- break;
- case PROP_INDEX:
- g_value_set_int (value, device->priv->index);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
- break;
- }
-}
-
-static void
-oss4_device_set_property (GObject *object,
- guint param_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- Oss4Device *device;
-
- device = OSS4_DEVICE (object);
-
- switch (param_id) {
- case PROP_NAME:
- /* Construct-only string */
- device->priv->name = g_strdup (g_value_get_string (value));
- break;
- case PROP_DESCRIPTION:
- /* Construct-only string */
- device->priv->description = g_strdup (g_value_get_string (value));
- break;
- case PROP_ICON:
- /* Construct-only string */
- device->priv->icon = g_strdup (g_value_get_string (value));
- break;
- case PROP_FD:
- device->priv->fd = dup (g_value_get_int (value));
- break;
- case PROP_INDEX:
- device->priv->index = g_value_get_int (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
- break;
- }
-}
-
-static void
-oss4_device_init (Oss4Device *device)
-{
- device->priv = G_TYPE_INSTANCE_GET_PRIVATE (device,
- OSS4_TYPE_DEVICE,
- Oss4DevicePrivate);
-}
-
-static void
-oss4_device_finalize (GObject *object)
-{
- Oss4Device *device;
-
- device = OSS4_DEVICE (object);
-
- g_free (device->priv->name);
- g_free (device->priv->description);
-
- if (device->priv->fd != -1)
- g_close (device->priv->fd, NULL);
-
- G_OBJECT_CLASS (oss4_device_parent_class)->finalize (object);
-}
-
-Oss4Device *
-oss4_device_new (const gchar *name,
- const gchar *description,
- gint fd,
- gint index)
-{
- Oss4Device *device;
-
- device = g_object_new (OSS4_TYPE_DEVICE,
- "name", name,
- "description", description,
- "fd", fd,
- "index", index,
- NULL);
-
- return device;
-}
-
-gboolean
-oss4_device_read (Oss4Device *odevice)
-{
- gint exts;
- gint ret;
- gint i;
-
- ret = ioctl (odevice->priv->fd, SNDCTL_MIX_NREXT, &exts);
- if (ret == -1)
- return FALSE;
-
- for (i = 0; i < exts; i++) {
- oss_mixext ext;
-
- ext.dev = odevice->priv->index;
- ext.ctrl = i;
- ret = ioctl (odevice->priv->fd, SNDCTL_MIX_EXTINFO, &ext);
- if (ret == -1)
- continue;
-
- g_debug ("Mixer control %d type %d\n"
- " min %d max %d\n"
- " id %s\n"
- " extname %s",
- i,ext.type, ext.minvalue, ext.maxvalue, ext.id, ext.extname);
- }
-
- return TRUE;
-}
-
-gint
-oss4_device_get_index (Oss4Device *odevice)
-{
- g_return_val_if_fail (OSS4_IS_DEVICE (odevice), FALSE);
-
- return odevice->priv->index;
-}
-
-MateMixerStream *
-oss4_device_get_input_stream (Oss4Device *odevice)
-{
- g_return_val_if_fail (OSS4_IS_DEVICE (odevice), FALSE);
-
- return odevice->priv->input;
-}
-
-MateMixerStream *
-oss4_device_get_output_stream (Oss4Device *odevice)
-{
- g_return_val_if_fail (OSS4_IS_DEVICE (odevice), FALSE);
-
- return odevice->priv->output;
-}
-
-static gboolean
-read_mixer_devices (Oss4Device *device)
-{
-}
-
-static const gchar *
-oss4_device_get_name (MateMixerDevice *device)
-{
- g_return_val_if_fail (OSS4_IS_DEVICE (device), NULL);
-
- return OSS4_DEVICE (device)->priv->name;
-}
-
-static const gchar *
-oss4_device_get_description (MateMixerDevice *device)
-{
- g_return_val_if_fail (OSS4_IS_DEVICE (device), NULL);
-
- return OSS4_DEVICE (device)->priv->description;
-}
-
-static const gchar *
-oss4_device_get_icon (MateMixerDevice *device)
-{
- g_return_val_if_fail (OSS4_IS_DEVICE (device), NULL);
-
- return OSS4_DEVICE_ICON;
-}