VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDriverManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtDriverManager_H_
11 #define DtDriverManager_H_
12 
13 #include <vrvCore/vrvCore.h>
14 
16 #include <vrvUtil/signalslib.h>
17 
18 #include <vector>
19 
20 namespace makVrv
21 {
22  class DtDe;
23  class DtInputDriver;
24  class DtMessage;
25  class DtSceneDriver;
26  class DtDriver;
27  class DtDriverManager;
28  class DtDriverManagerSignaler;
29 
33  {
34  public:
35 
37  typedef std::vector<DtDriver*> Drivers;
38 
40  DtDriverManager(DtDe& de);
41 
43  ~DtDriverManager();
44 
47  void tick();
48 
53  void addDriver(DtDriver* driver);
54 
56  void startDriver(DtDriver* driver);
57 
59  void stopDriver(DtDriver* driver);
60 
63  void destroyDriver(DtDriver* driver);
64 
66  void renameDriver( DtDriver* driver, const std::string& newName);
67 
69  DtDriver* findDriver(const std::string& name);
70 
72  Drivers& drivers();
74  const Drivers& drivers() const;
76 
78  DtSceneDriver& sceneDriver();
79 
81  DtInputDriver& inputDriver();
82 
84  inline DtDe& de()
85  {
86  return myDe;
87  }
88 
89  //@name Signals
91  boost::signalslib::signal<void (DtDriver&)> signal_driverAdded;
92  boost::signalslib::signal<void (DtDriver&)> signal_driverToBeDestroyed;
93  boost::signalslib::signal<void (DtDriver&)> signal_driverStarted;
94  boost::signalslib::signal<void (DtDriver&)> signal_driverStopped;
95 
96  boost::signalslib::signal<void (const std::string&)> signal_autoDriverChanged;
97 
99 
101  void saveDriverToFile(const DtDriver& driver) const;
102 
104  void deleteDriverFile(const DtDriver& driver) const;
105 
107  std::string createDriverFileName(const DtDriver& driver) const;
108 
110  void saveAutoDriver();
111 
113  void loadAutoDriversFromFile(bool errorIfNotFound);
114 
116  void autoStartDrivers();
117 
119  void setAutoDriver(const std::string& driver, bool saveToFile);
120 
121  const std::string& autoDriver() const;
122 
124  void startDrivers( const std::vector<std::string>& drivers);
125 
127  void autoLoadDrivers();
128 
130  void saveDrivers();
131 
133  void loadDriver(const std::string& filename);
134 
135  protected:
136 
138  void startWindowDependendDrivers();
139 
141  void stopWindowDependentDrivers();
142 
145  void onViewCreated();
146  void onViewToBeDestroyed();
147 
148  protected:
149 
156  std::string myAutoDriver;
159 
160  };
161 
165  {
166  public:
168  static DtDriverManagerSignaler& instance(DtDe& anIG);
169 
171  virtual ~DtDriverManagerSignaler();
172 
173  protected:
175 
176  };
177 
178 }
179 
180 #endif
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtSceneDriver * mySceneDriver
Definition: DtDriverManager.h:153
void loadDriver(DtDe *de)
std::vector< DtDriver * > Drivers
A list of hosts.
Definition: DtDriverManager.h:37
A class which contains the signals used by the DtDriverManager classes.
Definition: DtDriverManager.h:164
std::string myAutoDriver
Definition: DtDriverManager.h:156
boost::signalslib::signal< void(DtDriver &)> signal_driverStopped
Definition: DtDriverManager.h:94
The DtDriverManager manages all the DtDriver&#39;s in the DtDe.
Definition: DtDriverManager.h:32
boost::signalslib::signal< void(DtDriver &)> signal_driverToBeDestroyed
Definition: DtDriverManager.h:92
DtDe & de()
Get the de.
Definition: DtDriverManager.h:84
bool myInvalidToAddFlag
Definition: DtDriverManager.h:158
bool myAutoStartDrivers
Definition: DtDriverManager.h:157
Drivers myActiveDrivers
Definition: DtDriverManager.h:152
boost::signalslib::signal< void(const std::string &)> signal_autoDriverChanged
Definition: DtDriverManager.h:96
Drivers myDrivers
Definition: DtDriverManager.h:151
Contains makVrv::DtVirtualBaseClass class.
The DtDriver is an abstract class. Developers derive from this to create logic that &quot;directs&quot; things ...
Definition: DtDriver.h:30
boost::signalslib::signal< void(DtDriver &)> signal_driverAdded
Definition: DtDriverManager.h:91
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtDriverManagerSignaler & mySignaler
Definition: DtDriverManager.h:155
This class&#39;s main responsibility is to handle keyboard and mouse events from OSG (Qt events are route...
Definition: DtInputDriver.h:43
The DtSceneDriver owns the scene.
Definition: DtSceneDriver.h:37
DtDe & myDe
Definition: DtDriverManager.h:150
DtInputDriver * myInputDriver
Definition: DtDriverManager.h:154
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
boost::signalslib::signal< void(DtDriver &)> signal_driverStarted
Definition: DtDriverManager.h:93
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)