xine-lib: xine-lib-1.2.13/include/xine/xine_module.h Source File

xine-lib 1.2.13-20230125hg15249

xine_module.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018 the xine project
3 *
4 * This file is part of xine, a free video player.
5 *
6 * xine is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * xine is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
19 */
20
21#ifndef XINE_MODULE_H
22#define XINE_MODULE_H
23
24#define XINE_MODULE_IFACE_VERSION 1
25
26 typedef struct xine_module_class_s xine_module_class_t;
27 typedef struct xine_module_s xine_module_t;
28
29 struct xine_module_class_s {
30
31 /*
32 * create a new instance of this plugin class
33 * - may return NULL
34 */
35 xine_module_t *(*get_instance)(xine_module_class_t *, const void *params);
36
40 const char *identifier;
41
47 const char *description;
48
52 const char *text_domain;
53
54 /*
55 * free all class-related resources
56 * - optional, may be NULL
57 */
58
59 void (*dispose)(xine_module_class_t *);
60};
61
62 struct xine_module_s {
63
70 struct plugin_node_s *node;
71
72 /*
73 * close down, free all resources
74 */
75 void (*dispose)(xine_module_t *);
76};
77
78#endif /* XINE_MODULE_H_ */
plugin_node_s
Definition plugin_catalog.h:44
xine_module_class_s
Definition xine_module.h:29
xine_module_class_s::description
const char * description
human readable (verbose = 1 line) description for this plugin class
Definition xine_module.h:47
xine_module_class_s::identifier
const char * identifier
short human readable identifier for this plugin class
Definition xine_module.h:40
xine_module_class_s::text_domain
const char * text_domain
Optional non-standard catalog to use with dgettext() for description.
Definition xine_module.h:52
xine_module_class_s::dispose
void(* dispose)(xine_module_class_t *)
Definition xine_module.h:59
xine_module_s
Definition xine_module.h:62
xine_module_s::dispose
void(* dispose)(xine_module_t *)
Definition xine_module.h:75
xine_module_s::node
struct plugin_node_s * node
Pointer to the loaded plugin node.
Definition xine_module.h:70