1/*
2 * Copyright 2003-2004, Waldemar Kornewald <wkornew@gmx.net>
3 * Distributed under the terms of the MIT License.
4 */
5
6#ifndef _SETTINGS_TOOLS__H
7#define _SETTINGS_TOOLS__H
8
9#include <driver_settings.h>
10
11
12// TODO: remove this as soon as we get the extended driver_settings API
13extern driver_settings *dup_driver_settings(const driver_settings *settings);
14extern void free_driver_settings(driver_settings *settings);
15extern void free_driver_parameter(driver_parameter *parameter);
16extern void free_driver_parameter_fields(driver_parameter *parameter);
17
18extern driver_settings *new_driver_settings();
19extern driver_parameter *new_driver_parameter(const char *name);
20extern bool copy_driver_parameter(const driver_parameter *from, driver_parameter *to);
21extern bool set_driver_parameter_name(const char *name, driver_parameter *parameter);
22extern bool add_driver_parameter_value(const char *value, driver_parameter *to);
23extern bool add_driver_parameter(driver_parameter *add, driver_settings *to);
24
25extern bool equal_driver_settings(const driver_settings *lhs,
26	const driver_settings *rhs);
27extern bool equal_driver_parameters(const driver_parameter *lhs,
28	const driver_parameter *rhs);
29extern bool equal_interface_settings(const driver_settings *lhs,
30	const driver_settings *rhs);
31	// this compares only the relevant parts of the interface settings
32
33extern ppp_side get_side_string_value(const char *sideString, ppp_side unknownValue);
34extern bool get_boolean_value(const char *string, bool unknownValue);
35extern const driver_parameter *get_parameter_with_name(const char *name,
36	const driver_settings *settings);
37extern const char *get_settings_value(const char *name,
38	const driver_settings *settings);
39
40
41inline
42bool
43add_driver_parameter(driver_parameter *add, driver_parameter *to)
44{
45	if(!to)
46		return false;
47
48	return add_driver_parameter(add, (driver_settings*) &to->parameter_count);
49}
50
51
52inline
53const driver_parameter*
54get_parameter_with_name(const char *name, const driver_parameter *parameters)
55{
56	if(!parameters)
57		return NULL;
58
59	return get_parameter_with_name(name,
60		(driver_settings*) &parameters->parameter_count);
61}
62
63
64inline
65const char*
66get_parameter_value(const char *name, const driver_parameter *parameters)
67{
68	if(!parameters)
69		return NULL;
70
71	return get_settings_value(name, (driver_settings*) &parameters->parameter_count);
72}
73
74
75#endif
76