www-apps/phpSANE-0.8.0
[anomen-overlay.git] / www-apps / phpSANE / dev / incl / functions.php
blob510fda19301aed767f739486d42d2a4877c617df
1 <?php
3 // ---------------------------------------------------------------------
4 function add_page_size($page_name, $page_x, $page_y) {
5 global $PREVIEW_WIDTH_MM, $PREVIEW_HEIGHT_MM;
6 global $PAGE_SIZE_LIST;
8 if (($page_x <= $PREVIEW_WIDTH_MM) && ($page_y <= $PREVIEW_HEIGHT_MM)) {
9 $PAGE_SIZE_LIST[] = array(0 => $page_name, $page_x, $page_y);
12 // ---------------------------------------------------------------------
15 // ---------------------------------------------------------------------
16 // Scanner configuration file functions
17 // ---------------------------------------------------------------------
19 function sanitize_path($url) {
20 // everything to lower and no spaces begin or end
21 $url = strtolower(trim($url));
23 // adding - for spaces and union characters
24 $find = array(' ', '&', '\r\n', '\n', '+',',');
25 $url = str_replace ($find, '-', $url);
27 //delete and replace rest of special chars
28 $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
29 $repl = array('', '-', '');
30 return preg_replace ($find, $repl, $url);
33 function get_config_path($scanner_name) {
34 global $scanner_dir;
35 return $scanner_dir.(sanitize_path($scanner_name)).".ini";
38 function scanner_known($scanner_name) {
39 return file_exists(get_config_path($scanner_name));
42 function get_config_option_array($scanner_name, $config_key, $index = 0) {
43 $config_options = explode('|', get_config_option($scanner_name, $config_key));
44 $config_option_string = $config_options[$index];
45 return explode(';', $config_option_string);
48 function get_config_option($scanner_name, $config_key) {
49 $config_option = '';
50 if(scanner_known($scanner_name)) {
51 $scanner_config = file(get_config_path($scanner_name));
53 $config_option_line = preg_grep("/".$config_key.":/", $scanner_config);
54 $config_option_line = trim(end($config_option_line));
56 $start = strpos($config_option_line, ":") + 1;
57 $length = strlen($config_option_line) - $start;
58 $config_option = "" . substr($config_option_line, $start, $length) . "";
60 return $config_option;
63 function get_scanner_resolution_options($scanner_name) {
64 return get_config_option_array($scanner_name, "resolution");
66 function get_scanner_resolution_default($scanner_name) {
67 $mode_info = explode('|', get_config_option($scanner_name, "resolution"));
68 return $mode_info[1];
71 function get_scanner_mode_options($scanner_name) {
72 return get_config_option_array($scanner_name, "mode");
74 function get_scanner_mode_default($scanner_name) {
75 $mode_info = explode('|', get_config_option($scanner_name, "mode"));
76 return $mode_info[1];
79 function get_scanner_brightness_supported($scanner_name) {
80 $brightness_info = explode('|', get_config_option($scanner_name, "brightness"));
81 return $brightness_info[0];
83 function get_scanner_brightness_default($scanner_name) {
84 $brightness_info = explode('|', get_config_option($scanner_name, "brightness"));
85 return $brightness_info[1];
87 function get_scanner_brightness_minimum($scanner_name) {
88 $brightness_info = explode('|', get_config_option($scanner_name, "brightness"));
89 return $brightness_info[2];
91 function get_scanner_brightness_maximum($scanner_name) {
92 $brightness_info = explode('|', get_config_option($scanner_name, "brightness"));
93 return $brightness_info[3];
96 function get_scanner_contrast_supported($scanner_name) {
97 $contrast_info = explode('|', get_config_option($scanner_name, "contrast"));
98 return $contrast_info[0];
100 function get_scanner_contrast_default($scanner_name) {
101 $contrast_info = explode('|', get_config_option($scanner_name, "contrast"));
102 return $contrast_info[1];
104 function get_scanner_contrast_minimum($scanner_name) {
105 $contrast_info = explode('|', get_config_option($scanner_name, "contrast"));
106 return $contrast_info[2];
108 function get_scanner_contrast_maximum($scanner_name) {
109 $contrast_info = explode('|', get_config_option($scanner_name, "contrast"));
110 return $contrast_info[3];
113 function save_scanner_config($scanner_name,
114 $mode_list, $mode_default,
115 $resolution_list, $resolution_default,
116 $brightness_supported, $brightness_default, $brightness_minimum, $brightness_maximum,
117 $contrast_supported, $contrast_default, $contrast_minimum, $contrast_maximum) {
118 $file_path = get_config_path($scanner_name);
119 file_put_contents($file_path, "mode:".implode(';', $mode_list)."|{$mode_default}\r\n");
120 file_put_contents($file_path, "resolution:".implode(';', $resolution_list)."|{$resolution_default}|\r\n", FILE_APPEND);
121 file_put_contents($file_path, "brightness:".($brightness_supported ? 'true' : 'false')."|{$brightness_default}|{$brightness_minimum}|{$brightness_maximum}\r\n", FILE_APPEND);
122 file_put_contents($file_path, "contrast:".($contrast_supported ? 'true' : 'false')."|{$contrast_default}|{$contrast_minimum}|{$contrast_maximum}\r\n", FILE_APPEND);
125 // ---------------------------------------------------------------------
126 // ---------------------------------------------------------------------
130 * generates html select dropdown list with options
131 * if values is two dimensional then adds optgroup too
133 * @param string $name selectbox name and id
134 * @param array $values options
135 * @param mixed $selected selected option
136 * @param array $attributes additonal attributes
138 * @return string html source with selectbox
141 function html_selectbox($name, $values, $selected=NULL, $attributes=array()) {
142 $attr_html = '';
143 if(is_array($attributes) && !empty($attributes))
145 foreach ($attributes as $k=>$v)
147 $attr_html .= ' '.$k.'="'.$v.'"';
151 $output = '<select name="'.$name.'" id="'.$name.'"'.$attr_html.'>'."\n";
152 if(is_array($values) && !empty($values))
154 foreach($values as $key=>$value)
156 if(is_array($value))
158 $output .= '<optgroup label="'.$key.'">'."\n";
159 foreach($value as $k=>$v)
161 $sel = $selected==$v ? ' selected="selected"' : '';
162 $output .= '<option value="'.$k.'"'.$sel.'>'.$v.'</option>'."\n";
164 $output .= '</optgroup>'."\n";
166 else
168 $sel = $selected==$value ? ' selected' : '';
169 $output .= '<option'.$sel.' value="'.$value.'">'.$value.'</option>'."\n";
174 $output .= "</select>\n";
176 return $output;
178 // ---------------------------------------------------------------------