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*) ¶meters->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*) ¶meters->parameter_count); 72} 73 74 75#endif 76