1 /* 2 * Copyright (C) 2014 Michal Ratajsky <michal.ratajsky@gmail.com> 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the licence, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef PULSE_BACKEND_H 19 #define PULSE_BACKEND_H 20 21 #include <glib.h> 22 #include <glib-object.h> 23 #include <libmatemixer/matemixer.h> 24 #include <libmatemixer/matemixer-private.h> 25 26 #include "pulse-types.h" 27 28 #define PULSE_TYPE_BACKEND \ 29 (pulse_backend_get_type ()) 30 #define PULSE_BACKEND(o) \ 31 (G_TYPE_CHECK_INSTANCE_CAST ((o), PULSE_TYPE_BACKEND, PulseBackend)) 32 #define PULSE_IS_BACKEND(o) \ 33 (G_TYPE_CHECK_INSTANCE_TYPE ((o), PULSE_TYPE_BACKEND)) 34 #define PULSE_BACKEND_CLASS(k) \ 35 (G_TYPE_CHECK_CLASS_CAST ((k), PULSE_TYPE_BACKEND, PulseBackendClass)) 36 #define PULSE_IS_BACKEND_CLASS(k) \ 37 (G_TYPE_CHECK_CLASS_TYPE ((k), PULSE_TYPE_BACKEND)) 38 #define PULSE_BACKEND_GET_CLASS(o) \ 39 (G_TYPE_INSTANCE_GET_CLASS ((o), PULSE_TYPE_BACKEND, PulseBackendClass)) 40 41 typedef struct _PulseBackendClass PulseBackendClass; 42 typedef struct _PulseBackendPrivate PulseBackendPrivate; 43 44 struct _PulseBackend 45 { 46 MateMixerBackend parent; 47 48 /*< private >*/ 49 PulseBackendPrivate *priv; 50 }; 51 52 struct _PulseBackendClass 53 { 54 MateMixerBackendClass parent_class; 55 }; 56 57 GType pulse_backend_get_type (void) G_GNUC_CONST; 58 59 /* Support function for dynamic loading of the backend module */ 60 void backend_module_init (GTypeModule *module); 61 const MateMixerBackendInfo *backend_module_get_info (void); 62 63 #endif /* PULSE_BACKEND_H */ 64