| 1 | # -*- coding: iso-8859-1 -*- |
|---|
| 2 | |
|---|
| 3 | """ Panohead remote control. |
|---|
| 4 | |
|---|
| 5 | License |
|---|
| 6 | ======= |
|---|
| 7 | |
|---|
| 8 | - B{papywizard} (U{http://trac.gbiloba.org/papywizard}) is Copyright: |
|---|
| 9 | - (C) 2007-2008 Frédéric Mantegazza |
|---|
| 10 | |
|---|
| 11 | This software is governed by the B{CeCILL} license under French law and |
|---|
| 12 | abiding by the rules of distribution of free software. You can use, |
|---|
| 13 | modify and/or redistribute the software under the terms of the CeCILL |
|---|
| 14 | license as circulated by CEA, CNRS and INRIA at the following URL |
|---|
| 15 | U{http://www.cecill.info}. |
|---|
| 16 | |
|---|
| 17 | As a counterpart to the access to the source code and rights to copy, |
|---|
| 18 | modify and redistribute granted by the license, users are provided only |
|---|
| 19 | with a limited warranty and the software's author, the holder of the |
|---|
| 20 | economic rights, and the successive licensors have only limited |
|---|
| 21 | liability. |
|---|
| 22 | |
|---|
| 23 | In this respect, the user's attention is drawn to the risks associated |
|---|
| 24 | with loading, using, modifying and/or developing or reproducing the |
|---|
| 25 | software by the user in light of its specific status of free software, |
|---|
| 26 | that may mean that it is complicated to manipulate, and that also |
|---|
| 27 | therefore means that it is reserved for developers and experienced |
|---|
| 28 | professionals having in-depth computer knowledge. Users are therefore |
|---|
| 29 | encouraged to load and test the software's suitability as regards their |
|---|
| 30 | requirements in conditions enabling the security of their systems and/or |
|---|
| 31 | data to be ensured and, more generally, to use and operate it in the |
|---|
| 32 | same conditions as regards security. |
|---|
| 33 | |
|---|
| 34 | The fact that you are presently reading this means that you have had |
|---|
| 35 | knowledge of the CeCILL license and that you accept its terms. |
|---|
| 36 | |
|---|
| 37 | Module purpose |
|---|
| 38 | ============== |
|---|
| 39 | |
|---|
| 40 | Hardware driver |
|---|
| 41 | |
|---|
| 42 | Implements |
|---|
| 43 | ========== |
|---|
| 44 | |
|---|
| 45 | - DriverFactory |
|---|
| 46 | |
|---|
| 47 | @author: Frédéric Mantegazza |
|---|
| 48 | @copyright: (C) 2007-2008 Frédéric Mantegazza |
|---|
| 49 | @license: CeCILL |
|---|
| 50 | """ |
|---|
| 51 | |
|---|
| 52 | __revision__ = "$Id$" |
|---|
| 53 | |
|---|
| 54 | from papywizard.common.exception import HardwareError |
|---|
| 55 | |
|---|
| 56 | |
|---|
| 57 | class DriverFactory(object): |
|---|
| 58 | """ Class for creating hardware driver. |
|---|
| 59 | """ |
|---|
| 60 | def create(self, type_): |
|---|
| 61 | """ create a hardware driver object. |
|---|
| 62 | |
|---|
| 63 | @param type_: type of hardware object |
|---|
| 64 | @type type_: str |
|---|
| 65 | |
|---|
| 66 | @raise HardwareError: unknown type |
|---|
| 67 | """ |
|---|
| 68 | if type_ == "bluetooth": |
|---|
| 69 | from bluetoothDriver import BluetoothDriver |
|---|
| 70 | return BluetoothDriver() |
|---|
| 71 | elif type_ == "serial": |
|---|
| 72 | from serialDriver import SerialDriver |
|---|
| 73 | return SerialDriver() |
|---|
| 74 | elif type_ == "usb": |
|---|
| 75 | from usbDriver import USBDriver |
|---|
| 76 | return USBDriver() |
|---|
| 77 | |
|---|
| 78 | else: |
|---|
| 79 | raise HardwareError("Unknow '%s' driver type" % type_) |
|---|