1 /* 2 * * Copyright (C) 2009-2011 Ali <aliov@xfce.org> 3 * * Copyright (C) 2012-2017 Simon Steinbeiß <ochosi@xfce.org> 4 * * Copyright (C) 2012-2020 Sean Davis <bluesabre@xfce.org> 5 * 6 * Licensed under the GNU General Public License Version 2 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 */ 22 23 #if !defined (__PAROLE_H_INSIDE__) && !defined (PAROLE_COMPILATION) 24 #error "Only <parole.h> can be included directly." 25 #endif 26 27 #ifndef SRC_MISC_PAROLE_PROVIDER_PLUGIN_H_ 28 #define SRC_MISC_PAROLE_PROVIDER_PLUGIN_H_ 29 30 #include <gtk/gtk.h> 31 32 #include "src/misc/parole-stream.h" 33 #include "src/misc/parole-provider-player.h" 34 35 G_BEGIN_DECLS 36 37 #define PAROLE_TYPE_PROVIDER_PLUGIN (parole_provider_plugin_get_type ()) 38 #define PAROLE_PROVIDER_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PAROLE_TYPE_PROVIDER_PLUGIN, ParoleProviderPlugin)) 39 #define PAROLE_IS_PROVIDER_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PAROLE_TYPE_PROVIDER_PLUGIN)) 40 #define PAROLE_PROVIDER_PLUGIN_GET_INTERFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE((o), PAROLE_TYPE_PROVIDER_PLUGIN, ParoleProviderPluginIface)) 41 42 /** 43 * ParoleProviderPluginIface: 44 * 45 * Interface for #ParoleProviderPlugin 46 * 47 * Since: 0.2 48 */ 49 typedef struct _ParoleProviderPluginIface ParoleProviderPluginIface; 50 51 /** 52 * ParoleProviderPlugin: 53 * 54 * The methods of this interface should be overridden by the plugin, the Parole 55 * player calls these methods to determine if the plugin is configurable, to ask 56 * the plugin to open its configuration dialog or to set the 57 * #ParoleProviderPlayer that the plugin can use to get access to various 58 * functionalities of the player. 59 * 60 * Since: 0.2 61 */ 62 typedef struct _ParoleProviderPlugin ParoleProviderPlugin; 63 64 struct _ParoleProviderPluginIface { 65 GTypeInterface __parent__; 66 67 /*< public >*/ 68 gboolean (*get_is_configurable) (ParoleProviderPlugin *provider); 69 70 void (*configure) (ParoleProviderPlugin *provider, 71 GtkWidget *parent); 72 73 void (*set_player) (ParoleProviderPlugin *provider, 74 ParoleProviderPlayer *player); 75 }; 76 77 GType parole_provider_plugin_get_type (void) G_GNUC_CONST; 78 79 gboolean 80 parole_provider_plugin_get_is_configurable (ParoleProviderPlugin *provider); 81 82 void parole_provider_plugin_configure (ParoleProviderPlugin *provider, 83 GtkWidget *parent); 84 85 void parole_provider_plugin_set_player (ParoleProviderPlugin *provider, 86 ParoleProviderPlayer *player); 87 88 G_END_DECLS 89 90 #endif /* SRC_MISC_PAROLE_PROVIDER_PLUGIN_H_ */ 91