2 #define IRRECO_DEBUG_PREFIX "DUMMY"
4 #include <glib/gprintf.h>
6 #include <irreco_backend_api.h>
9 * Arbitary values for testing pointer travelsal.
11 #define TEST_INSTANCE_CONTEX ((void *) 12345)
12 #define TEST_DEVICE_CONTEX2 ((void *) 12346)
13 #define TEST_DEVICE_CONTEX3 ((void *) 12347)
14 #define TEST_DEVICE_CONTEX ((void *) 54321)
15 #define TEST_COMMAND_CONTEX ((void *) 54345)
17 const char *dummy_backend_get_error_msg(void * instance_context
,
18 IrrecoBackendStatus code
)
21 case 1: return "Mad user error";
22 default: return "Unknown error";
26 void *dummy_backend_create()
28 g_printf("DUMMY: %s\n", __func__
);
29 return TEST_INSTANCE_CONTEX
;
32 void dummy_backend_destroy(void * instance_context
, gboolean permanently
)
34 g_printf("DUMMY: %s\n", __func__
);
35 g_assert(instance_context
== TEST_INSTANCE_CONTEX
);
38 IrrecoBackendStatus
dummy_backend_read_from_conf(void * instance_context
,
39 const char * config_file
)
41 g_printf("DUMMY: %s\n", __func__
);
42 g_assert(instance_context
== TEST_INSTANCE_CONTEX
);
43 return IRRECO_BACKEND_OK
;
46 IrrecoBackendStatus
dummy_backend_save_to_conf(void * instance_context
,
47 const char * config_file
)
49 g_printf("DUMMY: %s\n", __func__
);
50 g_assert(instance_context
== TEST_INSTANCE_CONTEX
);
51 return IRRECO_BACKEND_OK
;
55 IrrecoBackendStatus
dummy_backend_get_devices(void * instance_context
,
56 IrrecoGetDeviceCallback callback
)
58 g_printf("DUMMY: %s\n", __func__
);
59 g_assert(instance_context
== TEST_INSTANCE_CONTEX
);
60 callback("Device 1", TEST_DEVICE_CONTEX
);
61 callback("Device 2", TEST_DEVICE_CONTEX2
);
62 callback("Device 3", TEST_DEVICE_CONTEX3
);
63 callback("Device 4", TEST_DEVICE_CONTEX
);
65 return IRRECO_BACKEND_OK
;
68 IrrecoBackendStatus
dummy_backend_get_commands(void * instance_context
,
69 const char * device_name
,
71 IrrecoGetCommandCallback callback
)
74 g_printf("DUMMY: %s\n", __func__
);
75 g_assert(instance_context
== TEST_INSTANCE_CONTEX
);
76 g_assert(device_name
!= NULL
);
77 g_assert(device_contex
== TEST_DEVICE_CONTEX
78 || device_contex
== TEST_DEVICE_CONTEX2
79 || device_contex
== TEST_DEVICE_CONTEX3
);
82 callback("00", TEST_COMMAND_CONTEX
);
83 callback("01", TEST_COMMAND_CONTEX
);
84 callback("02", TEST_COMMAND_CONTEX
);
85 callback("03", TEST_COMMAND_CONTEX
);
86 callback("04", TEST_COMMAND_CONTEX
);
87 callback("05", TEST_COMMAND_CONTEX
);
88 callback("06", TEST_COMMAND_CONTEX
);
89 callback("07", TEST_COMMAND_CONTEX
);
90 callback("08", TEST_COMMAND_CONTEX
);
91 callback("09", TEST_COMMAND_CONTEX
);
92 callback("10", TEST_COMMAND_CONTEX
);
93 callback("12", TEST_COMMAND_CONTEX
);
94 callback("13", TEST_COMMAND_CONTEX
);
95 callback("14", TEST_COMMAND_CONTEX
);
96 callback("15", TEST_COMMAND_CONTEX
);
97 callback("16", TEST_COMMAND_CONTEX
);
98 callback("17", TEST_COMMAND_CONTEX
);
99 callback("18", TEST_COMMAND_CONTEX
);
100 callback("19", TEST_COMMAND_CONTEX
);
101 callback("20", TEST_COMMAND_CONTEX
);
105 callback("Command 1", TEST_COMMAND_CONTEX
);
106 callback("Command 2", TEST_COMMAND_CONTEX
);
107 callback("Command 3", TEST_COMMAND_CONTEX
);
108 callback("Command 4", TEST_COMMAND_CONTEX
);
110 return IRRECO_BACKEND_OK
;
113 IrrecoBackendStatus
dummy_backend_send_command(void * instance_context
,
114 const char * device_name
,
115 void * device_contex
,
116 const char * command_name
,
117 void * command_contex
)
119 g_printf("DUMMY: %s\n", __func__
);
120 g_assert(instance_context
== TEST_INSTANCE_CONTEX
);
121 g_assert(device_name
!= NULL
);
122 g_assert(device_contex
== TEST_DEVICE_CONTEX
123 || device_contex
== TEST_DEVICE_CONTEX2
124 || device_contex
== TEST_DEVICE_CONTEX3
);
125 g_assert(command_name
!= NULL
);
126 g_assert(command_contex
== TEST_COMMAND_CONTEX
);
127 g_printf("Send: %s, %s\n", device_name
, command_name
);
133 IrrecoBackendStatus
dummy_backend_configure(void * instance_context
,
137 g_printf("DUMMY: %s\n", __func__
);
138 g_assert(instance_context
== TEST_INSTANCE_CONTEX
);
140 dialog
= gtk_message_dialog_new(parent
,
141 GTK_DIALOG_DESTROY_WITH_PARENT
,
142 GTK_MESSAGE_INFO
, GTK_BUTTONS_OK
, "dummy_backend_configure()");
143 gtk_dialog_run(GTK_DIALOG(dialog
));
144 gtk_widget_destroy(dialog
);
146 return IRRECO_BACKEND_OK
;
149 gchar
*dummy_backend_get_description(gpointer instance_context
)
151 return g_strdup("Dummy description");
154 IrrecoBackendStatus
dummy_backend_create_device(gpointer instance_context
,
158 g_printf("DUMMY: %s\n", __func__
);
159 g_assert(instance_context
== TEST_INSTANCE_CONTEX
);
161 dialog
= gtk_message_dialog_new(parent
,
162 GTK_DIALOG_DESTROY_WITH_PARENT
,
163 GTK_MESSAGE_INFO
, GTK_BUTTONS_OK
,
164 "dummy_backend_create_device()");
165 gtk_dialog_run(GTK_DIALOG(dialog
));
166 gtk_widget_destroy(dialog
);
168 return IRRECO_BACKEND_OK
;
171 gboolean
dummy_backend_is_device_editable(gpointer instance_context
,
172 const gchar
* device_name
,
173 gpointer device_contex
)
175 g_printf("DUMMY: %s\n", __func__
);
176 g_assert(device_contex
== TEST_DEVICE_CONTEX
177 || device_contex
== TEST_DEVICE_CONTEX2
178 || device_contex
== TEST_DEVICE_CONTEX3
);
180 if (device_contex
== TEST_DEVICE_CONTEX2
181 || device_contex
== TEST_DEVICE_CONTEX3
) {
187 IrrecoBackendStatus
dummy_backend_edit_device(gpointer instance_context
,
188 const gchar
* device_name
,
189 gpointer device_contex
,
193 g_printf("DUMMY: %s\n", __func__
);
194 g_assert(instance_context
== TEST_INSTANCE_CONTEX
);
196 dialog
= gtk_message_dialog_new(parent
,
197 GTK_DIALOG_DESTROY_WITH_PARENT
,
198 GTK_MESSAGE_INFO
, GTK_BUTTONS_OK
,
199 "dummy_backend_edit_device()");
200 gtk_dialog_run(GTK_DIALOG(dialog
));
201 gtk_widget_destroy(dialog
);
203 return IRRECO_BACKEND_OK
;
206 IrrecoBackendStatus
dummy_backend_delete_device(gpointer instance_context
,
207 const gchar
* device_name
,
208 gpointer device_contex
,
212 g_printf("DUMMY: %s\n", __func__
);
213 g_assert(instance_context
== TEST_INSTANCE_CONTEX
);
215 dialog
= gtk_message_dialog_new(parent
,
216 GTK_DIALOG_DESTROY_WITH_PARENT
,
217 GTK_MESSAGE_INFO
, GTK_BUTTONS_OK
,
218 "dummy_backend_delete_device()");
219 gtk_dialog_run(GTK_DIALOG(dialog
));
220 gtk_widget_destroy(dialog
);
222 return IRRECO_BACKEND_OK
;
225 IrrecoBackendStatus
dummy_backend_export_conf(gpointer instance_context
,
226 const char * device_name
,
227 IrrecoBackendFileContainer
**file_container
)
229 g_printf("DUMMY: %s\n", __func__
);
231 *file_container
= irreco_backend_file_container_new();
233 irreco_backend_file_container_set(*file_container
,
241 return IRRECO_BACKEND_OK
;
244 IrrecoBackendStatus
dummy_backend_import_conf(gpointer instance_context
,
245 IrrecoBackendFileContainer
*file_container
)
247 g_printf("DUMMY: %s\n", __func__
);
249 g_printf("\nCategory: %s\n",file_container
->category
->str
);
250 g_printf("Manufacturer: %s\n",file_container
->manufacturer
->str
);
251 g_printf("Model: %s\n",file_container
->model
->str
);
252 g_printf("Hash: %s\n",file_container
->hash
->str
);
253 g_printf("Name: %s\n",file_container
->name
->str
);
254 g_printf("Data: %s\n",file_container
->data
->str
);
256 return IRRECO_BACKEND_OK
;
259 IrrecoBackendStatus
dummy_backend_check_conf(
260 gpointer instance_context
,
261 IrrecoBackendFileContainer
*file_container
,
262 gboolean
*configuration
)
264 *configuration
= TRUE
;
265 return IRRECO_BACKEND_OK
;
268 IrrecoBackendFunctionTable dummy_backend_function_table
= {
269 IRRECO_BACKEND_API_VERSION
, /* backend_api_version */
270 IRRECO_BACKEND_EDITABLE_DEVICES
|
271 IRRECO_BACKEND_CONFIGURATION_EXPORT
|
272 IRRECO_BACKEND_MULTI_DEVICE_SUPPORT
/* |
273 IRRECO_BACKEND_NEW_INST_ON_CONF_IMPORT*/,/* flags */
276 dummy_backend_get_error_msg
, /* get_error_msg */
277 dummy_backend_create
, /* create */
278 dummy_backend_destroy
, /* destroy */
279 dummy_backend_read_from_conf
, /* from_conf */
280 dummy_backend_save_to_conf
, /* to_conf */
281 dummy_backend_get_devices
, /* get_devices */
282 dummy_backend_get_commands
, /* get_commands */
283 dummy_backend_send_command
, /* send_command */
284 dummy_backend_configure
, /* configure */
286 dummy_backend_get_description
, /* get_description, optional */
287 dummy_backend_create_device
, /* create_device, optional */
288 dummy_backend_is_device_editable
,/*is_device_editable, optional */
289 dummy_backend_edit_device
, /* edit_device, optional */
290 dummy_backend_delete_device
, /* delete_device, optional */
292 dummy_backend_export_conf
, /*export_conf, optional */
293 dummy_backend_import_conf
, /*import_conf, optional */
294 dummy_backend_check_conf
, /*check_conf, optional */
297 IrrecoBackendFunctionTable
*get_irreco_backend_function_table()
299 g_printf("DUMMY: %s\n", __func__
);
300 dummy_backend_function_table
.name
= "Dummy backend";
301 return &dummy_backend_function_table
;