summaryrefslogtreecommitdiff
path: root/backends/null
diff options
context:
space:
mode:
Diffstat (limited to 'backends/null')
-rw-r--r--backends/null/Makefile.am24
-rw-r--r--backends/null/null.c95
-rw-r--r--backends/null/null.h54
3 files changed, 173 insertions, 0 deletions
diff --git a/backends/null/Makefile.am b/backends/null/Makefile.am
new file mode 100644
index 0000000..b6d92c7
--- /dev/null
+++ b/backends/null/Makefile.am
@@ -0,0 +1,24 @@
+backenddir = $(libdir)/libmatemixer
+
+backend_LTLIBRARIES = libmatemixer-null.la
+
+AM_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -DG_LOG_DOMAIN=\"libmatemixer-null\"
+
+libmatemixer_null_la_CFLAGS = \
+ $(GLIB_CFLAGS)
+
+libmatemixer_null_la_SOURCES = \
+ null.c \
+ null.h
+
+libmatemixer_null_la_LIBADD = \
+ $(GLIB_LIBS)
+
+libmatemixer_null_la_LDFLAGS = \
+ -avoid-version \
+ -export-dynamic \
+ -module
+
+-include $(top_srcdir)/git.mk
diff --git a/backends/null/null.c b/backends/null/null.c
new file mode 100644
index 0000000..c049dcb
--- /dev/null
+++ b/backends/null/null.c
@@ -0,0 +1,95 @@
+/*
+ * 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 <glib.h>
+#include <glib-object.h>
+
+#include <libmatemixer/matemixer-backend.h>
+#include <libmatemixer/matemixer-backend-module.h>
+
+#include "null.h"
+
+#define BACKEND_NAME "Null"
+#define BACKEND_PRIORITY 999
+
+/* Support function for dynamic loading of the backend module */
+void backend_module_init (GTypeModule *module);
+void backend_module_free (void);
+
+const MateMixerBackendModuleInfo *backend_module_get_info (void);
+
+static void mate_mixer_backend_interface_init (MateMixerBackendInterface *iface);
+
+G_DEFINE_DYNAMIC_TYPE_EXTENDED (MateMixerNull, mate_mixer_null,
+ G_TYPE_OBJECT, 0,
+ G_IMPLEMENT_INTERFACE_DYNAMIC (MATE_MIXER_TYPE_BACKEND,
+ mate_mixer_backend_interface_init))
+
+static MateMixerBackendModuleInfo info;
+
+void
+backend_module_init (GTypeModule *module)
+{
+ mate_mixer_null_register_type (module);
+
+ info.name = BACKEND_NAME;
+ info.priority = BACKEND_PRIORITY;
+ info.g_type = MATE_MIXER_TYPE_NULL;
+ info.backend_type = MATE_MIXER_BACKEND_TYPE_NULL;
+}
+
+void
+backend_module_free (void)
+{
+}
+
+const MateMixerBackendModuleInfo *
+backend_module_get_info (void)
+{
+ return &info;
+}
+
+static void
+mate_mixer_backend_interface_init (MateMixerBackendInterface *iface)
+{
+}
+
+static void
+mate_mixer_null_init (MateMixerNull *null)
+{
+}
+
+static void
+mate_mixer_null_finalize (GObject *object)
+{
+ G_OBJECT_CLASS (mate_mixer_null_parent_class)->finalize (object);
+}
+
+static void
+mate_mixer_null_class_init (MateMixerNullClass *klass)
+{
+ GObjectClass *object_class;
+
+ object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = mate_mixer_null_finalize;
+}
+
+/* Called in the code generated by G_DEFINE_DYNAMIC_TYPE_EXTENDED() */
+static void
+mate_mixer_null_class_finalize (MateMixerNullClass *klass)
+{
+}
diff --git a/backends/null/null.h b/backends/null/null.h
new file mode 100644
index 0000000..ef5b779
--- /dev/null
+++ b/backends/null/null.h
@@ -0,0 +1,54 @@
+/*
+ * 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 MATEMIXER_NULL_H
+#define MATEMIXER_NULL_H
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <libmatemixer/matemixer-backend.h>
+
+#define MATE_MIXER_TYPE_NULL \
+ (mate_mixer_null_get_type ())
+#define MATE_MIXER_NULL(o) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((o), MATE_MIXER_TYPE_NULL, MateMixerNull))
+#define MATE_MIXER_IS_NULL(o) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((o), MATE_MIXER_TYPE_NULL))
+#define MATE_MIXER_NULL_CLASS(k) \
+ (G_TYPE_CHECK_CLASS_CAST ((k), MATE_MIXER_TYPE_NULL, MateMixerNullClass))
+#define MATE_MIXER_IS_NULL_CLASS(k) \
+ (G_TYPE_CLASS_CHECK_CLASS_TYPE ((k), MATE_MIXER_TYPE_NULL))
+#define MATE_MIXER_NULL_GET_CLASS(o) \
+ (G_TYPE_INSTANCE_GET_CLASS ((o), MATE_MIXER_TYPE_NULL, MateMixerNullClass))
+
+typedef struct _MateMixerNull MateMixerNull;
+typedef struct _MateMixerNullClass MateMixerNullClass;
+
+struct _MateMixerNull
+{
+ GObject parent;
+};
+
+struct _MateMixerNullClass
+{
+ GObjectClass parent;
+};
+
+GType mate_mixer_null_get_type (void) G_GNUC_CONST;
+
+#endif /* MATEMIXER_NULL_H */