# irix-driver.pl # Functions for webmin print and smb drivers. # Very similar to the webmin driver, but with a different interface # program selector $webmin_windows_driver = 1; $webmin_print_driver = 1; # is_windows_driver(path) # Returns a driver structure if some path is a windows driver sub is_windows_driver { return &is_webmin_windows_driver(@_); } # is_driver(path) # Returns a structure containing the details of a driver sub is_driver { return &is_webmin_driver(@_); } # create_windows_driver(&printer, &driver) # Creates a new windows printer driver sub create_windows_driver { return &create_webmin_windows_driver(@_); } # create_driver(&printer, &driver) # Creates a new local printer driver and returns the path sub create_driver { return &create_webmin_driver(@_); } # delete_driver(name) sub delete_driver { &delete_webmin_driver(@_); } # driver_input(&printer, &driver) sub driver_input { local ($prn, $drv) = @_; printf " %s\n", $drv->{'mode'} == 0 ? "checked" : "", $text{'webmin_none'}; print "($text{'webmin_remotemsg'}) \n"; printf " %s\n", $drv->{'mode'} == 2 ? "checked" : "", $text{'webmin_model'}; print " \n"; if (&has_ghostscript()) { local $out = &backquote_command("$config{'gs_path'} -help 2>&1", 1); if ($out =~ /Available devices:\n((\s+.*\n)+)/) { print " \n"; printf "\n", $drv->{'mode'} == 1 ? "checked" : ""; print "$text{'webmin_driver'} "; foreach $d (split(/\s+/, $1)) { $drvsupp{$d}++; } print "  "; print " \n"; } else { print " ", &text('webmin_edrivers', "$config{'gs_path'}"), " \n"; } } else { print " ", &text('webmin_egs', "$config{'gs_path'}"), " \n"; } return undef; } # parse_driver() # Parse driver selection from %in and return a driver structure sub parse_driver { if ($in{'drv'} == 0) { return { 'mode' => 0 }; } elsif ($in{'drv'} == 2) { (-x $in{'iface'}) || &error("'$in{'iface'}' does not exist"); return { 'mode' => 2, 'program' => $in{'iface'} }; } elsif ($in{'drv'} == 1) { return { 'mode' => 1, 'type' => $in{'driver'}, 'dpi' => $in{'dpi'} }; } } 1;