diff options
author | Michal Ratajsky <[email protected]> | 2014-08-12 04:56:55 +0200 |
---|---|---|
committer | Michal Ratajsky <[email protected]> | 2014-08-12 04:56:55 +0200 |
commit | 6c6d4239ddc807e922df3874654f99eea291aadb (patch) | |
tree | 558f48fc965476344a946d93088680db3b5bac41 /backends/alsa/alsa-device.h | |
parent | 8436ec1641eee8868128755f6d1475230cea25e6 (diff) | |
download | libmatemixer-6c6d4239ddc807e922df3874654f99eea291aadb.tar.bz2 libmatemixer-6c6d4239ddc807e922df3874654f99eea291aadb.tar.xz |
Add ALSA, improve OSS and remove OSS4
Diffstat (limited to 'backends/alsa/alsa-device.h')
-rw-r--r-- | backends/alsa/alsa-device.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/backends/alsa/alsa-device.h b/backends/alsa/alsa-device.h new file mode 100644 index 0000000..3b3c970 --- /dev/null +++ b/backends/alsa/alsa-device.h @@ -0,0 +1,74 @@ +/* + * 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/>. + */ + +#ifndef ALSA_DEVICE_H +#define ALSA_DEVICE_H + +#include <glib.h> +#include <glib-object.h> + +#include "alsa-stream.h" + +G_BEGIN_DECLS + +#define ALSA_TYPE_DEVICE \ + (alsa_device_get_type ()) +#define ALSA_DEVICE(o) \ + (G_TYPE_CHECK_INSTANCE_CAST ((o), ALSA_TYPE_DEVICE, AlsaDevice)) +#define ALSA_IS_DEVICE(o) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((o), ALSA_TYPE_DEVICE)) +#define ALSA_DEVICE_CLASS(k) \ + (G_TYPE_CHECK_CLASS_CAST ((k), ALSA_TYPE_DEVICE, AlsaDeviceClass)) +#define ALSA_IS_DEVICE_CLASS(k) \ + (G_TYPE_CHECK_CLASS_TYPE ((k), ALSA_TYPE_DEVICE)) +#define ALSA_DEVICE_GET_CLASS(o) \ + (G_TYPE_INSTANCE_GET_CLASS ((o), ALSA_TYPE_DEVICE, AlsaDeviceClass)) + +typedef struct _AlsaDevice AlsaDevice; +typedef struct _AlsaDeviceClass AlsaDeviceClass; +typedef struct _AlsaDevicePrivate AlsaDevicePrivate; + +struct _AlsaDevice +{ + MateMixerDevice parent; + + /*< private >*/ + AlsaDevicePrivate *priv; +}; + +struct _AlsaDeviceClass +{ + MateMixerDeviceClass parent_class; + + /*< private >*/ + void (*closed) (AlsaDevice *device); +}; + +GType alsa_device_get_type (void) G_GNUC_CONST; + +AlsaDevice *alsa_device_new (const gchar *name, + const gchar *label); + +gboolean alsa_device_open (AlsaDevice *device); +void alsa_device_load (AlsaDevice *device); + +AlsaStream *alsa_device_get_input_stream (AlsaDevice *device); +AlsaStream *alsa_device_get_output_stream (AlsaDevice *device); + +G_END_DECLS + +#endif /* ALSA_DEVICE_H */ |