00001 /* 00002 * $RCSfile: USB_DIO_Family.hpp,v $ 00003 * $Revision: 1.5 $ 00004 * $Date: 2009/12/23 22:39:10 $ 00005 * jEdit:tabSize=4:indentSize=4:collapseFolds=1: 00006 * 00007 * class USB_DIO_Family declarations 00008 */ 00009 00010 00011 #if ! defined( USB_DIO_Family_hpp ) 00012 #define USB_DIO_Family_hpp 00013 00014 // {{{ includes 00015 #include <USBDevice.hpp> 00016 #include <DigitalIOSubsystem.hpp> 00017 // }}} 00018 00019 namespace AIOUSB { 00020 00037 class USB_DIO_Family : public USBDevice { 00038 friend class USBDeviceManager; 00039 00040 // {{{ static members 00041 private: 00042 static IntArray supportedProductIDs; 00043 00044 static void initialize(); 00045 // }}} 00046 00047 // {{{ protected members 00048 protected: 00049 DigitalIOSubsystem digitalIOSubsystem; 00050 // }}} 00051 00052 // {{{ protected methods 00053 protected: 00054 USB_DIO_Family( int productID, int deviceIndex ); 00055 virtual ~USB_DIO_Family(); 00056 // }}} 00057 00058 // {{{ public methods 00059 public: 00060 00061 /* 00062 * properties 00063 */ 00064 00065 static StringArray getSupportedProductNames(); 00066 static IntArray getSupportedProductIDs(); 00067 static bool isSupportedProductID( int productID ); 00068 virtual std::ostream &print( std::ostream &out ); 00069 00070 /* 00071 * subsystems 00072 */ 00073 00079 DigitalIOSubsystem &dio() { 00080 return digitalIOSubsystem; 00081 } // dio() 00082 00083 // }}} 00084 00085 }; // class USB_DIO_Family 00086 00087 } // namespace AIOUSB 00088 00089 #endif 00090 00091 /* end of file */