CHapticDeviceHandler.h
Go to the documentation of this file.
1 //==============================================================================
2 /*
3  Software License Agreement (BSD License)
4  Copyright (c) 2003-2016, CHAI3D.
5  (www.chai3d.org)
6 
7  All rights reserved.
8 
9  Redistribution and use in source and binary forms, with or without
10  modification, are permitted provided that the following conditions
11  are met:
12 
13  * Redistributions of source code must retain the above copyright
14  notice, this list of conditions and the following disclaimer.
15 
16  * Redistributions in binary form must reproduce the above
17  copyright notice, this list of conditions and the following
18  disclaimer in the documentation and/or other materials provided
19  with the distribution.
20 
21  * Neither the name of CHAI3D nor the names of its contributors may
22  be used to endorse or promote products derived from this software
23  without specific prior written permission.
24 
25  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
28  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
29  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
30  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
31  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
32  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
33  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
35  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36  POSSIBILITY OF SUCH DAMAGE.
37 
38  \author <http://www.chai3d.org>
39  \author Francois Conti
40  \version 3.2.0 $Rev: 1869 $
41 */
42 //==============================================================================
43 
44 //------------------------------------------------------------------------------
45 #ifndef CHapticDeviceHandlerH
46 #define CHapticDeviceHandlerH
47 //------------------------------------------------------------------------------
49 //------------------------------------------------------------------------------
50 namespace chai3d {
51 //------------------------------------------------------------------------------
52 
53 //==============================================================================
60 //==============================================================================
61 
62 //------------------------------------------------------------------------------
64 const unsigned int C_MAX_HAPTIC_DEVICES = 16;
65 //------------------------------------------------------------------------------
66 
67 //==============================================================================
79 //==============================================================================
81 {
82  //--------------------------------------------------------------------------
83  // CONSTRUCTOR & DESTRUCTOR:
84  //--------------------------------------------------------------------------
85 
86 public:
87 
90 
92  virtual ~cHapticDeviceHandler();
93 
94 
95  //--------------------------------------------------------------------------
96  // PUBLIC METHODS:
97  //--------------------------------------------------------------------------
98 
99 public:
100 
102  unsigned int getNumDevices() { return (m_numDevices); }
103 
105  void update();
106 
108  bool getDeviceSpecifications(cHapticDeviceInfo& a_deviceSpecifications,
109  unsigned int a_index = 0);
110 
113  unsigned int a_index = 0);
114 
115 
116  //--------------------------------------------------------------------------
117  // PRIVATE MEMBERS:
118  //--------------------------------------------------------------------------
119 
120 private:
121 
123  unsigned int m_numDevices;
124 
127 
129  cGenericHapticDevicePtr m_nullHapticDevice;
130 };
131 
132 //------------------------------------------------------------------------------
133 } // namespace chai3d
134 //------------------------------------------------------------------------------
135 
136 //------------------------------------------------------------------------------
137 #endif
138 //------------------------------------------------------------------------------
bool getDeviceSpecifications(cHapticDeviceInfo &a_deviceSpecifications, unsigned int a_index=0)
This method returns the specifications of the i-th device.
Definition: CHapticDeviceHandler.cpp:250
void update()
This method updates information about the devices that are currently connected to the computer...
Definition: CHapticDeviceHandler.cpp:128
const unsigned int C_MAX_HAPTIC_DEVICES
Maximum number of devices that can be connected at the same time.
Definition: CHapticDeviceHandler.h:64
virtual ~cHapticDeviceHandler()
Destructor of cHapticDeviceHandler.
Definition: CHapticDeviceHandler.cpp:113
bool getDevice(cGenericHapticDevicePtr &, unsigned int a_index=0)
This method returns a handle to the i-th device, if available.
Definition: CHapticDeviceHandler.cpp:275
This class implements a universal haptic device handler.
Definition: CHapticDeviceHandler.h:80
Implements a base class for haptic devices.
std::shared_ptr< cGenericHapticDevice > cGenericHapticDevicePtr
Definition: CGenericHapticDevice.h:264
This structure stores all technical specifications of a haptic device.
Definition: CGenericHapticDevice.h:194
unsigned int getNumDevices()
This method returns the number of devices currently connected to the computer.
Definition: CHapticDeviceHandler.h:102
cHapticDeviceHandler()
Constructor of cHapticDeviceHandler.
Definition: CHapticDeviceHandler.cpp:85
Definition: CAudioBuffer.cpp:56