00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef OIS_Object_H
00024 #define OIS_Object_H
00025
00026 #include "OISPrereqs.h"
00027 #include "OISInterface.h"
00028
00029 namespace OIS
00030 {
00032 class _OISExport Object
00033 {
00034 public:
00035 virtual ~Object() {}
00036
00038 Type type() const { return mType; }
00039
00041 const std::string& vendor() const { return mVendor; }
00042
00044 virtual bool buffered() const { return mBuffered; }
00045
00047 InputManager* getCreator() { return mCreator; }
00048
00050 virtual void setBuffered(bool buffered) = 0;
00051
00053 virtual void capture() = 0;
00054
00056 virtual int getID() const {return mDevID;}
00057
00065 virtual Interface* queryInterface(Interface::IType type) = 0;
00066
00068 virtual void _initialize() = 0;
00069
00070 protected:
00071 Object() : mType(OISUnknown), mBuffered(false), mDevID(-1), mCreator(0) {}
00072
00074 std::string mVendor;
00075
00077 Type mType;
00078
00080 bool mBuffered;
00081
00083 int mDevID;
00084
00086 InputManager* mCreator;
00087 };
00088 }
00089 #endif