. if (!defined('EG')) die('Direct access not allowed!'); class Hardware { public static $controllers = array('notebooks','wifi','videocards','printers','scanners','threegcards','soundcards','webcams'); //used by UsersController::login() //classId => controller public static $deviceClasses = array( '0403' => 'soundcards', '0280' => 'wifi', '0300' => 'videocards', ); public static $icons = array( 'notebook' => 'H2O/computer-laptop_22.png', 'wifi' => 'H2O/network-wireless_22.png', 'videocard' => 'Crystal/1282042976_hardware.png', 'printer' => 'H2O/printer_22.png', 'scanner' => 'H2O/scanner_22.png', '3G-card' => 'Crystal/usb_22.png', 'soundcard' => 'H2O/audio-card_22.png', 'webcam' => 'H2O/camera-web_22.png', ); public static $typeToController = array( 'notebook' => 'notebooks', 'wifi' => 'wifi', 'videocard' => 'videocards', 'printer' => 'printers', 'scanner' => 'scanners', '3G-card' => 'threegcards', 'soundcard' => 'soundcards', 'webcam' => 'webcams', ); public static function getControllerFromType($type) { if (array_key_exists($type,self::$typeToController)) { return self::$typeToController[$type]; } return null; } //get the type from the controller public static function getTypeFromController($controller) { $temp = array_flip(self::$typeToController); if (array_key_exists($controller,$temp)) { return $temp[$controller]; } return null; } public static function getTypeFromClass($class) { if (array_key_exists($class,self::$deviceClasses)) { return self::getTypeFromController(self::$deviceClasses[$class]); } return null; } public static function getIconFromType($type) { if (array_key_exists($type,self::$icons)) { return "http://".DOMAIN_NAME."/Public/Img/".self::$icons[$type]; } return null; } public static function getIconFromController($controller) { if ($type = self::getTypeFromController($controller)) { return self::getIconFromType($type); } return null; } public static function getIconFromClass($class) { if (array_key_exists($class,self::$deviceClasses)) { return self::getIconFromController(self::$deviceClasses[$class]); } return null; } public static $commYear = 'not-specified,2010,2009,2008,2007,2006,2005,2004,2003,2002,2001,2000,1999,1998,1997,1996,1995,1994,1993,1992'; } class Printer extends Hardware { public static $vendors = array( "brother" => "brother", "Canon" => "Canon", "EPSON" => "EPSON", "Lexmark" => "Lexmark", "KONICA-MINOLTA" => "KONICA-MINOLTA", "Hewlett-Packard" => "Hewlett-Packard", "Panasonic" => "Panasonic", "RICOH" => "RICOH", "SAMSUNG" => "SAMSUNG", "SHARP" => "SHARP", "TOSHIBA" => "TOSHIBA", "XEROX" => "XEROX", ); public static $compatibility = array( "A Full" => "A-Full", "B Partial" => "B-Partial", "C None" => "C-None", ); public static $interface = "not-specified,USB,Serial,Parallel,Firewire,SCSI,Ethernet"; public static $subtype = "not-specified,laser,inkjet,other"; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } public static function compatibilityList() { return implode(',',array_values(self::$compatibility)); } } class Wifi extends Hardware { public static $vendors = array( "A-LINK" => "A-LINK", "Acer" => "Acer", "Airlink101" => "Airlink101", "ALFA NETWORK Inc" => "ALFA-NETWORK-Inc", "Amigo Technology Inc" => "Amigo-Technology-Inc", "amit Inc" => "amit-Inc", "Atheros" => "Atheros", "Atlantis S.p.A." => "Atlantis_S-p-A", "Belkin" => "Belkin", "Broadcom" => "Broadcom", "Buffalo Technology, Ltd" => "Buffalo-Technology-Ltd", "CANYON" => "CANYON", "Compex Systems Pte Ltd" => "Compex-Systems-Pte-Ltd", "Conceptronic" => "Conceptronic", "D-Link" => "D-Link", "Digitus" => "Digitus", "E-Tech" => "E-Tech", "Eminent" => "Eminent", "Encore Electronics Inc" => "Encore-Electronics-Inc", "Fiberline" => "Fiberline", "Gigabyte" => "Gigabyte", "Hawking" => "Hawking", "iNexQ" => "iNexQ", "JAHT Technologies Corp" => "JAHT-Technologies-Corp", "Intel" => "Intel", "LevelOne" => "LevelOne", "Linksys" => "Linksys", "NEC" => "NEC", "Netgear" => "Netgear", "Micronet Communications, Inc" => "Micronet-Communications-Inc", "Micro Star International" => "Micro-Star-International", "Minitar Corporation" => "Minitar-Corporation", "MSI" => "MSI", "OvisLink Technologies Corp" => "OvisLink-Technologies-Corp", "PheeNet" => "PheeNet", "PRO-NETS Technology Corp" => "PRO-NETS_Technology_Corp", "Ralink" => "Ralink", "Realtek" => "Realtek", "Roline" => "Roline", "Sitecom" => "Sitecom", "Sparklan comunications, Inc" => "Sparklan-comunications-Inc", "Surecom" => "Surecom", "Sweex" => "Sweex", "TOSHIBA" => "TOSHIBA", "TP-LINK" => "TP-LINK", "Unex Technology Corp" => "Unex-Technology-Corp", "VIA Technologies, Inc" => "VIA-Technologies-Inc", "Zinwell" => "Zinwell", "Zonet" => "Zonet", ); public static $interface = array( "not-specified" => "not-specified", "USB" => "USB", "PCI" => "PCI", "PCI-E" => "PCI-E", "mini-PCI" => "mini-PCI", "mini-PCI-E" => "mini-PCI-E", "ExpressCard" => "ExpressCard", "PCMCIA/PC-Card" => "PC-Card", ); public static $interfaceReverse = array( "not-specified" => "not-specified", "USB" => "USB", "PCI" => "PCI", "PCI-E" => "PCI-E", "mini-PCI" => "mini-PCI", "mini-PCI-E" => "mini-PCI-E", "ExpressCard" => "ExpressCard", "PC-Card" => "PCMCIA/PC-Card", ); public static $wifiSelect = 'yes,no'; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } public static function interfaceList() { return implode(',',array_values(self::$interface)); } } class Videocard extends Hardware { public static $vendors = array( "ATI" => "ATI", "NVIDIA" => "NVIDIA", "Intel" => "Intel", "SiS" => "SiS", ); public static $videoSelect = array( "works with 3D acceleration" => "works_with_3D", "works, but without 3D acceleration" => "works_without_3D", "it does not work" => "does_not_work", ); public static $videoReverse = array( "works_with_3D" => "works with 3D acceleration", "works_without_3D" => "works, but without 3D acceleration", "does_not_work" => "it does not work", ); public static $interface = "not-specified,PCI,AGP,PCI-E,ISA,MCA,VLB"; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } public static function videoList() { return implode(',',array_values(self::$videoSelect)); } } class Notebooks extends Hardware { public static $vendors = array( "Acer" => "Acer", "Apple" => "Apple", "Asus" => "Asus", "Compal Electronics" => "Compal-Electronics", "COMPAQ" => "COMPAQ", "Dell" => "Dell", "emachines" => "emachines", "FUJITSU" => "FUJITSU", "Gateway" => "Gateway", "Hewlett Packard" => "Hewlett-Packard", "IBM" => "IBM", "Lemote" => "Lemote", "Lenovo" => "Lenovo", "LG" => "LG", "msi" => "msi", "Philco" => "Philco", "Philips" => "Philips", "Panasonic" => "Panasonic", "Sony" => "Sony", "SAMSUNG" => "SAMSUNG", "Thomson" => "Thomson", "TOSHIBA" => "TOSHIBA", "ZaReason, Inc" => "ZaReason-Inc", ); public static $compatibility = array( "A Platinum" => "A-platinum", "B Gold" => "B-gold", "C Silver" => "C-silver", "D Bronze" => "D-bronze", "E Garbage" => "E-garbage" ); public static $subtypeSelect = 'notebook,netbook,not-specified'; public static $biosSelect = 'not-specified,no,yes'; public static $videoSelect = array( "not specified" => 'not-specified', "yes, with 3D acceleration" => "yes_with_3D", "yes, but without 3D acceleration" => "yes_without_3D", "it does not work" => "no", ); public static $videoReverse = array( "yes_with_3D" => "works with 3D acceleration", "yes_without_3D" => "works but without 3D acceleration", "no" => "it does not work", 'not-specified' => "not specified how it works", "" => "" ); public static $wifiSelect = array( "not specified" => 'not-specified', 'yes' => 'yes', 'no' => 'no', 'there is no wifi card' => 'no-wifi-card', ); public static $wifiReverse = array( "yes" => "it works", "no" => "it does not work", 'not-specified' => "not specified how it works", 'no-wifi-card' => 'there is no wifi card', "" => "" ); public static $webcamSelect = array( 'not specified' => 'not-specified', 'it works' => 'yes', 'it does not work' => 'no', 'there is no webcam' => 'there-is-no-webcam', ); public static $webcamReverse = array( "yes" => "it works", "no" => "it does not work", 'not-specified' => "not specified how it works", 'there-is-no-webcam' => 'there is no webcam', ); public static function videoList() { return implode(',',array_values(self::$videoSelect)); } public static function wifiList() { return implode(',',array_values(self::$wifiSelect)); } public static function webcamList() { return implode(',',array_values(self::$webcamSelect)); } public static function vendorsList() { return implode(',',array_values(self::$vendors)); } public static function compatibilityList() { return implode(',',array_values(self::$compatibility)); } } class ThreeGcards extends Wifi { public static $vendors = array( "AT&T" => "AT-T", "BandRich" => "BandRich", "Franklin Wireless Corporation" => "Franklin-Wireless-Corporation", "Huawei" => "Huawei", "Novatel Wireless" => "Novatel-Wireless", "Option" => "Option", "Sierra Wireless" => "Sierra-Wireless", "T-Mobile" => "T-Mobile", "UTStarcom" => "UTStarcom", "verizon" => "verizon", "Vodafone" => "Vodafone", "ZTE" => "ZTE", ); public static $select = 'yes,no'; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } } class Soundcards extends Hardware { public static $vendors = array( "ALi Corporation" => "ALi-Corporation", "Advanced Micro Devices (AMD)" => "Advanced-Micro-Devices", "Analog Devices" => "Analog-Devices", "ATI Technologies Inc" => "ATI-Technologies-Inc", "Aureal Semiconductor" => "Aureal-Semiconductor", "Avance Logic Inc (ALI)" => "Avance-Logic-Inc", "Aztech System Ltd" => "Aztech-System-Ltd", "Brooktree Corporation" => "Brooktree-Corporation", "C-Media Electronics Inc" => "C-Media-Electronics-Inc", "Cirrus Logic" => "Cirrus-Logic", "Creative Labs" => "Creative-Labs", "Ensoniq" => "Ensoniq", "ESI" => "ESI", "ESS Technology" => "ESS-Technology", "ForteMedia Inc" => "ForteMedia-Inc", "Intel Corporation" => "Intel-Corporation", "Motorola" => "Motorola", "National Semiconductor Corporation" => "National-Semiconductor-Corporation", "Neomagic Corp" => "Neomagic-Corp", "nVidia Corporation" => "nVidia-Corporation", "Realtek" => "Realtek", "RME" => "RME", "S3 Inc" => "S3-Inc", "Silicon Integrated Systems (SiS)" => "Silicon-Integrated-Systems", "Trident Microsystems" => "Trident-Microsystems", "VIA Technologies Inc" => "VIA-Technologies-Inc", "Xilinx Corporation" => "Xilinx-Corporation", "Yamaha Corporation" => "Yamaha-Corporation", ); public static $audioSelect = 'yes,no'; public static $interface = "not-specified,PCI,ISA,USB,Firewire,Parallel,PCI-E,PCMCIA"; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } } class Webcams extends Hardware { public static $vendors = array( "Acer" => "Acer", "Active Pixel" => "Active-Pixel", "ADOMAX technology" => "ADOMAX-technology", "Aiptek Inc" => "Aiptek-Inc", "Arkmicro Technologies Inc" => "Arkmicro-Technologies-Inc", "Askey Computer Corporation" => "Askey-Computer-Corporation", "Astak Inc" => "Astak-Inc", "Chicony Electronics CO" => "Chicony-Electronics-CO", "Cisco" => "Cisco", "Conexant Systems, Inc" => "Conexant-Systems-Inc", "Creative Technology, Ltd" => "Creative-Technology-Ltd", "D-Link" => "D-Link", "Divio" => "Divio", "Dynex" => "Dynex", "eMPIA Technology, Inc" => "eMPIA-Technology-Inc", "Encore Electronics Inc" => "Encore-Electronics-Inc", "Gembird" => "Gembird", "Genesys Logic, Inc" => "Genesys-Logic-Inc", "Hama Trading Co" => "Hama-Trading-Co", "Hamlet" => "Hamlet", "Hewlett Packard" => "Hewlett-Packard", "IMC Networks" => "IMC-Networks", "iMicro Electronics" => "iMicro-Electronics", "Importek" => "Importek", "iPassion Technology Inc" => "iPassion-Technology-Inc", "KYE Systems Corp" => "KYE-Systems-Corp", "Kinstone" => "Kinstone", "Lenovo" => "Lenovo", "LG Electronics" => "LG-Electronics", "Logitech" => "Logitech", "LOREX Technology Inc" => "LOREX-Technology-Inc", "Linksys" => "Linksys", "Mediacom" => "Mediacom", "Microdia Ltd" => "Microdia-Ltd", "Micron" => "Micron", "Microsoft" => "Microsoft", "mijuki" => "mijuki", "Omega Technology Corp" => "Omega-Technology-Corp", "OmniVision Technologies, Inc" => "OmniVision-Technologies-Inc", "Panasonic" => "Panasonic", "Philips" => "Philips", "PixArt Imaging Inc" => "PixArt-Imaging-Inc", "Primax Electronics Ltd" => "Primax-Electronics-Ltd", "Quanta Computer Inc." => "Quanta-Computer-Inc", "Revoltec" => "Revoltec", "Ricoh Company, Ltd" => "Ricoh-Company-Ltd", "Shenzhen Vigor Electronic" => "Shenzhen-Vigor-Electronic", "Sony Corporation" => "Sony-Corporation", "STMicroelectronics" => "STMicroelectronics", "Syntek Semiconductor Ltd" => "Syntek-Semiconductor-Ltd", "Sunplus Technology Co" => "Sunplus-Technology-Co", "Suyin" => "Suyin", "Tekom Technologies, Inc" => "Tekom-Technologies-Inc", "Trust International" => "Trust-International", "USRobotics" => "USRobotics", "ViewQuest Technologies, Inc" => "ViewQuest-Technologies-Inc", "Vimicro Corp" => "Vimicro-Corp", "Vista Imaging, Inc" => "Vista-Imaging-Inc", "Xirlink" => "Xirlink", "Z-Star Microelectronics Corporation" => "Z-Star-Microelectronics-Corporation", "Zonet" => "Zonet", ); public static $select = 'yes,no'; public static $interface = "not-specified,USB,Firewire,Parallel,Wifi,Serial"; public static function vendorsList() { return implode(',',array_values(self::$vendors)); } }