summaryrefslogtreecommitdiff
path: root/backends/null/null-backend.c
diff options
context:
space:
mode:
Diffstat (limited to 'backends/null/null-backend.c')
-rw-r--r--backends/null/null-backend.c96
1 files changed, 96 insertions, 0 deletions
diff --git a/backends/null/null-backend.c b/backends/null/null-backend.c
new file mode 100644
index 0000000..f8c22c8
--- /dev/null
+++ b/backends/null/null-backend.c
@@ -0,0 +1,96 @@
+/*
+ * 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-backend.h"
+
+#define BACKEND_NAME "Null"
+#define BACKEND_PRIORITY 0
+
+static void mate_mixer_backend_interface_init (MateMixerBackendInterface *iface);
+
+G_DEFINE_DYNAMIC_TYPE_EXTENDED (NullBackend, null_backend,
+ G_TYPE_OBJECT, 0,
+ G_IMPLEMENT_INTERFACE_DYNAMIC (MATE_MIXER_TYPE_BACKEND,
+ mate_mixer_backend_interface_init))
+
+static void null_backend_class_init (NullBackendClass *klass);
+static void null_backend_class_finalize (NullBackendClass *klass);
+static void null_backend_init (NullBackend *null);
+
+static gboolean backend_open (MateMixerBackend *backend);
+static MateMixerState backend_get_state (MateMixerBackend *backend);
+
+static MateMixerBackendInfo info;
+
+void
+backend_module_init (GTypeModule *module)
+{
+ null_backend_register_type (module);
+
+ info.name = BACKEND_NAME;
+ info.priority = BACKEND_PRIORITY;
+ info.g_type = NULL_TYPE_BACKEND;
+ info.backend_type = MATE_MIXER_BACKEND_NULL;
+}
+
+const MateMixerBackendInfo *
+backend_module_get_info (void)
+{
+ return &info;
+}
+
+static void
+mate_mixer_backend_interface_init (MateMixerBackendInterface *iface)
+{
+ iface->open = backend_open;
+ iface->get_state = backend_get_state;
+}
+
+static void
+null_backend_class_init (NullBackendClass *klass)
+{
+ // XXX is it needed to have this function? shouldn't it call parent method if empty?
+}
+
+/* Called in the code generated by G_DEFINE_DYNAMIC_TYPE_EXTENDED() */
+static void
+null_backend_class_finalize (NullBackendClass *klass)
+{
+}
+
+static void
+null_backend_init (NullBackend *null)
+{
+}
+
+static gboolean
+backend_open (MateMixerBackend *backend)
+{
+ return TRUE;
+}
+
+static MateMixerState
+backend_get_state (MateMixerBackend *backend)
+{
+ return MATE_MIXER_STATE_READY;
+}