2 * irreco - Ir Remote Control
3 * Copyright (C) 2007 Arto Karppinen (arto.karppinen@iki.fi)
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 * @addtogroup IrrecoBackendManager
27 * Header file of @ref IrrecoBackendManager.
30 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
32 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
34 * Make sure that typedefs are available before we include anything elese.
36 * This makes sure that whatever other structures that depend on structures
37 * defined in this file will compile OK recardles of header inclusion order.
39 #ifndef __IRRECO_BACKEND_MANAGER_H_TYPEDEF__
40 #define __IRRECO_BACKEND_MANAGER_H_TYPEDEF__
41 typedef struct _IrrecoBackendManager IrrecoBackendManager
;
42 #endif /* __IRRECO_BACKEND_MANAGER_H_TYPEDEF__ */
46 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
48 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
49 #ifndef __IRRECO_BACKEND_MANAGER_H__
50 #define __IRRECO_BACKEND_MANAGER_H__
52 #include <irreco_string_table.h>
53 #include "irreco_backend_instance.h"
54 #include "irreco_backend_lib.h"
58 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
60 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
61 struct _IrrecoBackendManager
{
62 IrrecoData
*irreco_data
;
64 /* Contains all layouts. */
65 /* - Key is libarary filename. */
66 IrrecoStringTable
*lib_table
;
68 /* Contains all layouts. */
69 /* - Key is instance name. */
70 IrrecoStringTable
*instance_table
;
72 /* Maps config files to instances. */
73 /* - Key is configuration filename of the instance. */
74 IrrecoStringTable
*config_map
;
79 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
81 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
82 #define IRRECO_BACKEND_MANAGER_FOREACH_LIB(_manager, _lib_var_name) \
83 IRRECO_STRING_TABLE_FOREACH_DATA( \
84 (_manager)->lib_table, IrrecoBackendLib *, (_lib_var_name))
86 #define IRRECO_BACKEND_MANAGER_FOREACH_INSTANCE(_manager, _inst_var_name) \
87 IRRECO_STRING_TABLE_FOREACH_DATA( \
88 (_manager)->instance_table, IrrecoBackendInstance *, \
91 #define IRRECO_BACKEND_MANAGER_FOREACH_END IRRECO_STRING_TABLE_FOREACH_END
95 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
97 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
98 IrrecoBackendManager
* irreco_backend_manager_create();
99 void irreco_backend_manager_destroy(IrrecoBackendManager
* manager
);
100 void irreco_backend_manager_get_devcmd_lists(IrrecoBackendManager
* manager
);
101 void irreco_backend_manager_read_from_confs(IrrecoBackendManager
* manager
);
102 void irreco_backend_manager_print(IrrecoBackendManager
* manager
);
105 irreco_backend_manager_load_lib(IrrecoBackendManager
* manager
,
106 const gchar
* filepath
);
108 irreco_backend_manager_load_with_name(IrrecoBackendManager
* manager
,
109 const gchar
* filepath
,
110 const gchar
* filename
);
112 irreco_backend_manager_load_lib_dir(IrrecoBackendManager
* manager
,
114 gboolean
irreco_backend_manager_find_lib(IrrecoBackendManager
* manager
,
115 const gchar
* filename
,
116 IrrecoBackendLib
** lib
);
118 IrrecoBackendInstance
*
119 irreco_backend_manager_create_instance(IrrecoBackendManager
* manager
,
120 IrrecoBackendLib
* lib
,
122 const gchar
* config
);
124 irreco_backend_manager_destroy_instance(IrrecoBackendManager
* manager
,
125 IrrecoBackendInstance
* instance
);
126 gboolean
irreco_backend_manager_find_instance(
127 IrrecoBackendManager
* manager
,
129 IrrecoBackendInstance
** instance
);
131 irreco_backend_manager_set_instance_name(IrrecoBackendManager
* manager
,
132 IrrecoBackendInstance
* instance
,
135 irreco_backend_manager_assign_instance_name(IrrecoBackendManager
* manager
,
136 IrrecoBackendInstance
* instance
);
138 irreco_backend_manager_set_instance_config(IrrecoBackendManager
* manager
,
139 IrrecoBackendInstance
* instance
,
140 const gchar
* filename
);
142 irreco_backend_manager_assign_instance_config(IrrecoBackendManager
* manager
,
143 IrrecoBackendInstance
* instance
);
145 #endif /* __IRRECO_BACKEND_MANAGER_H__ */