diff --git a/_circular_buffer_8h_source.html b/_circular_buffer_8h_source.html index 48ea088..43c3550 100644 --- a/_circular_buffer_8h_source.html +++ b/_circular_buffer_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CircularBuffer.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,151 +26,159 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
CircularBuffer.h
+
CircularBuffer.h
-
1 // FILE: CircularBuffer.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Generic implementation of the circular buffer
-
7 //
-
8 // COPYRIGHT: University of California, San Francisco, 2007,
-
9 // 100X Imaging Inc, 2008
-
10 //
-
11 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
12 // License text is included with the source distribution.
-
13 //
-
14 // This file is distributed in the hope that it will be useful,
-
15 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
16 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
17 //
-
18 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
19 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
20 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
21 //
-
22 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 01/05/2007
-
23 //
-
24 
-
25 #pragma once
-
26 
-
27 #include "Error.h"
-
28 #include "ErrorCodes.h"
-
29 #include "FrameBuffer.h"
-
30 
-
31 #include "../MMDevice/DeviceThreads.h"
-
32 #include "../MMDevice/MMDevice.h"
-
33 
-
34 #include <chrono>
-
35 #include <memory>
-
36 #include <vector>
-
37 
-
38 #ifdef _MSC_VER
-
39 #pragma warning(push)
-
40 #pragma warning(disable: 4290) // 'C++ exception specification ignored'
-
41 #endif
-
42 
-
43 #if defined(__GNUC__) && !defined(__clang__)
-
44 #pragma GCC diagnostic push
-
45 // 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]'
-
46 #pragma GCC diagnostic ignored "-Wdeprecated"
-
47 #endif
-
48 
-
49 class ThreadPool;
-
50 class TaskSet_CopyMemory;
-
51 
- -
53 {
-
54 public:
-
55  CircularBuffer(unsigned int memorySizeMB);
-
56  ~CircularBuffer();
-
57 
-
58  unsigned GetMemorySizeMB() const { return memorySizeMB_; }
-
59 
-
60  bool Initialize(unsigned channels, unsigned int xSize, unsigned int ySize, unsigned int pixDepth);
-
61  unsigned long GetSize() const;
-
62  unsigned long GetFreeSize() const;
-
63  unsigned long GetRemainingImageCount() const;
-
64 
-
65  unsigned int Width() const {MMThreadGuard guard(g_bufferLock); return width_;}
-
66  unsigned int Height() const {MMThreadGuard guard(g_bufferLock); return height_;}
-
67  unsigned int Depth() const {MMThreadGuard guard(g_bufferLock); return pixDepth_;}
-
68 
-
69  bool InsertImage(const unsigned char* pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata* pMd) throw (CMMError);
-
70  bool InsertMultiChannel(const unsigned char* pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata* pMd) throw (CMMError);
-
71  bool InsertImage(const unsigned char* pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, unsigned int nComponents, const Metadata* pMd) throw (CMMError);
-
72  bool InsertMultiChannel(const unsigned char* pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, unsigned int nComponents, const Metadata* pMd) throw (CMMError);
-
73  const unsigned char* GetTopImage() const;
-
74  const unsigned char* GetNextImage();
-
75  const mm::ImgBuffer* GetTopImageBuffer(unsigned channel) const;
-
76  const mm::ImgBuffer* GetNthFromTopImageBuffer(unsigned long n) const;
-
77  const mm::ImgBuffer* GetNthFromTopImageBuffer(long n, unsigned channel) const;
-
78  const mm::ImgBuffer* GetNextImageBuffer(unsigned channel);
-
79  void Clear();
-
80 
-
81  bool Overflow() {MMThreadGuard guard(g_bufferLock); return overflow_;}
-
82 
-
83  mutable MMThreadLock g_bufferLock;
-
84  mutable MMThreadLock g_insertLock;
-
85 
-
86 private:
-
87  unsigned int width_;
-
88  unsigned int height_;
-
89  unsigned int pixDepth_;
-
90  long imageCounter_;
-
91  std::chrono::time_point<std::chrono::steady_clock> startTime_;
-
92  std::map<std::string, long> imageNumbers_;
-
93 
-
94  // Invariants:
-
95  // 0 <= saveIndex_ <= insertIndex_
-
96  // insertIndex_ - saveIndex_ <= frameArray_.size()
-
97  long insertIndex_;
-
98  long saveIndex_;
-
99 
-
100  unsigned long memorySizeMB_;
-
101  unsigned int numChannels_;
-
102  bool overflow_;
-
103  std::vector<mm::FrameBuffer> frameArray_;
-
104 
-
105  std::shared_ptr<ThreadPool> threadPool_;
-
106  std::shared_ptr<TaskSet_CopyMemory> tasksMemCopy_;
-
107 };
-
108 
-
109 #if defined(__GNUC__) && !defined(__clang__)
-
110 #pragma GCC diagnostic pop
-
111 #endif
-
112 
-
113 #ifdef _MSC_VER
-
114 #pragma warning(pop)
-
115 #endif
-
Core error class. Exceptions thrown by the Core public API are of this type.
Definition: Error.h:58
-
Definition: CircularBuffer.h:53
-
bool InsertImage(const unsigned char *pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd)
Definition: CircularBuffer.cpp:197
-
bool InsertMultiChannel(const unsigned char *pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd)
Definition: CircularBuffer.cpp:205
-
Definition: TaskSet_CopyMemory.h:29
-
Definition: ThreadPool.h:37
-
Definition: FrameBuffer.h:30
+
1
+
2// FILE: CircularBuffer.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Generic implementation of the circular buffer
+
7//
+
8// COPYRIGHT: University of California, San Francisco, 2007,
+
9// 100X Imaging Inc, 2008
+
10//
+
11// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
12// License text is included with the source distribution.
+
13//
+
14// This file is distributed in the hope that it will be useful,
+
15// but WITHOUT ANY WARRANTY; without even the implied warranty
+
16// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
17//
+
18// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
19// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
20// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
21//
+
22// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 01/05/2007
+
23//
+
24
+
25#pragma once
+
26
+
27#include "Error.h"
+
28#include "ErrorCodes.h"
+
29#include "FrameBuffer.h"
+
30
+
31#include "../MMDevice/DeviceThreads.h"
+
32#include "../MMDevice/MMDevice.h"
+
33
+
34#include <chrono>
+
35#include <memory>
+
36#include <vector>
+
37
+
38#ifdef _MSC_VER
+
39#pragma warning(push)
+
40#pragma warning(disable: 4290) // 'C++ exception specification ignored'
+
41#endif
+
42
+
43#if defined(__GNUC__) && !defined(__clang__)
+
44#pragma GCC diagnostic push
+
45// 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]'
+
46#pragma GCC diagnostic ignored "-Wdeprecated"
+
47#endif
+
48
+
49class ThreadPool;
+ +
51
+
+ +
53{
+
54public:
+
55 CircularBuffer(unsigned int memorySizeMB);
+ +
57
+
58 unsigned GetMemorySizeMB() const { return memorySizeMB_; }
+
59
+
60 bool Initialize(unsigned channels, unsigned int xSize, unsigned int ySize, unsigned int pixDepth);
+
61 unsigned long GetSize() const;
+
62 unsigned long GetFreeSize() const;
+
63 unsigned long GetRemainingImageCount() const;
+
64
+
65 unsigned int Width() const {MMThreadGuard guard(g_bufferLock); return width_;}
+
66 unsigned int Height() const {MMThreadGuard guard(g_bufferLock); return height_;}
+
67 unsigned int Depth() const {MMThreadGuard guard(g_bufferLock); return pixDepth_;}
+
68
+
69 bool InsertImage(const unsigned char* pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata* pMd) throw (CMMError);
+
70 bool InsertMultiChannel(const unsigned char* pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata* pMd) throw (CMMError);
+
71 bool InsertImage(const unsigned char* pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, unsigned int nComponents, const Metadata* pMd) throw (CMMError);
+
72 bool InsertMultiChannel(const unsigned char* pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, unsigned int nComponents, const Metadata* pMd) throw (CMMError);
+
73 const unsigned char* GetTopImage() const;
+
74 const unsigned char* GetNextImage();
+
75 const mm::ImgBuffer* GetTopImageBuffer(unsigned channel) const;
+
76 const mm::ImgBuffer* GetNthFromTopImageBuffer(unsigned long n) const;
+
77 const mm::ImgBuffer* GetNthFromTopImageBuffer(long n, unsigned channel) const;
+
78 const mm::ImgBuffer* GetNextImageBuffer(unsigned channel);
+
79 void Clear();
+
80
+
81 bool Overflow() {MMThreadGuard guard(g_bufferLock); return overflow_;}
+
82
+
83 mutable MMThreadLock g_bufferLock;
+
84 mutable MMThreadLock g_insertLock;
+
85
+
86private:
+
87 unsigned int width_;
+
88 unsigned int height_;
+
89 unsigned int pixDepth_;
+
90 long imageCounter_;
+
91 std::chrono::time_point<std::chrono::steady_clock> startTime_;
+
92 std::map<std::string, long> imageNumbers_;
+
93
+
94 // Invariants:
+
95 // 0 <= saveIndex_ <= insertIndex_
+
96 // insertIndex_ - saveIndex_ <= frameArray_.size()
+
97 long insertIndex_;
+
98 long saveIndex_;
+
99
+
100 unsigned long memorySizeMB_;
+
101 unsigned int numChannels_;
+
102 bool overflow_;
+
103 std::vector<mm::FrameBuffer> frameArray_;
+
104
+
105 std::shared_ptr<ThreadPool> threadPool_;
+
106 std::shared_ptr<TaskSet_CopyMemory> tasksMemCopy_;
+
107};
+
+
108
+
109#if defined(__GNUC__) && !defined(__clang__)
+
110#pragma GCC diagnostic pop
+
111#endif
+
112
+
113#ifdef _MSC_VER
+
114#pragma warning(pop)
+
115#endif
+
Core error class. Exceptions thrown by the Core public API are of this type.
Definition Error.h:58
+
Definition CircularBuffer.h:53
+
bool InsertImage(const unsigned char *pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd)
Definition CircularBuffer.cpp:197
+
bool InsertMultiChannel(const unsigned char *pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd)
Definition CircularBuffer.cpp:205
+
Definition TaskSet_CopyMemory.h:29
+
Definition ThreadPool.h:37
+
Definition FrameBuffer.h:30
diff --git a/_config_group_8h_source.html b/_config_group_8h_source.html index 038cb99..4c80d68 100644 --- a/_config_group_8h_source.html +++ b/_config_group_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: ConfigGroup.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,438 +26,494 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
ConfigGroup.h
+
ConfigGroup.h
-
1 // FILE: ConfigGroup.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Groups of configurations and container for the groups
-
7 //
-
8 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 23/01/2006
-
9 //
-
10 // COPYRIGHT: University of California, San Francisco, 2006
-
11 //
-
12 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
13 // License text is included with the source distribution.
-
14 //
-
15 // This file is distributed in the hope that it will be useful,
-
16 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
17 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
18 //
-
19 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
20 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
21 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
22 
-
23 #pragma once
-
24 
-
25 #ifdef _MSC_VER
-
26 #pragma warning(push)
-
27 #pragma warning(disable: 4290) // 'C++ exception specification ignored'
-
28 #endif
-
29 
-
30 #if defined(__GNUC__) && !defined(__clang__)
-
31 #pragma GCC diagnostic push
-
32 // 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]'
-
33 #pragma GCC diagnostic ignored "-Wdeprecated"
-
34 #endif
-
35 
-
36 #include "Configuration.h"
-
37 #include "Error.h"
-
38 #include <string>
-
39 #include <vector>
-
40 
-
44 template <class T>
- -
46 
-
47 public:
-
48 
-
52  void Define(const char* configName)
-
53  {
-
54  configs_[configName];
-
55  }
-
56 
-
60  void Define(const char* configName, const char* deviceLabel, const char* propName, const char* value)
-
61  {
-
62  PropertySetting setting(deviceLabel, propName, value);
-
63  configs_[configName].addSetting(setting);
-
64  }
-
65 
-
69  T* Find(const char* configName)
-
70  {
-
71  typename std::map<std::string,T>::iterator it = configs_.find(configName);
-
72  if (it == configs_.end())
-
73  return 0;
-
74  else
-
75  return &(it->second);
-
76  }
-
77 
-
81  bool Rename(const char* oldConfigName, const char* newConfigName)
-
82  {
-
83  // tolerate empty configuration names
-
84  if (strlen(oldConfigName) == 0)
-
85  return true;
-
86 
-
87  typename std::map<std::string, T>::const_iterator it = configs_.find(oldConfigName);
-
88  if (it == configs_.end())
-
89  return false;
-
90 
-
91  configs_[newConfigName] = it->second;
-
92  configs_.erase(it->first);
-
93  return true;
-
94  }
-
95 
-
99  bool Delete(const char* configName)
-
100  {
-
101  // tolerate empty configuration names
-
102  if (strlen(configName) == 0)
-
103  return true;
-
104 
-
105  typename std::map<std::string, T>::const_iterator it = configs_.find(configName);
-
106  if (it == configs_.end())
-
107  return false;
-
108  configs_.erase(configName);
-
109  return true;
-
110  }
-
111 
-
115  bool Delete(const char* configName, const char* deviceLabel, const char* propName)
-
116  {
-
117  // tolerate empty configuration names
-
118  if (strlen(configName) == 0)
-
119  return true;
-
120 
-
121  // Check if configuration with configName exists:
-
122  typename std::map<std::string, T>::const_iterator it = configs_.find(configName);
-
123  if (it == configs_.end())
-
124  return false;
-
125 
-
126  // Delete the specified property
-
127  configs_[configName].deleteSetting(deviceLabel,propName);
-
128  return true;
-
129  }
-
130 
-
134  std::vector<std::string> GetAvailable() const
-
135  {
-
136  std::vector<std::string> configList;
-
137  typename std::map<std::string, T>::const_iterator it = configs_.begin();
-
138  while(it != configs_.end())
-
139  configList.push_back(it++->first);
-
140 
-
141  return configList;
-
142  }
-
143 
-
144  bool IsEmpty()
-
145  {
-
146  return configs_.size() == 0;
-
147  }
-
148 
-
149 protected:
-
150  ConfigGroupBase() {}
-
151  virtual ~ConfigGroupBase() {}
-
152 
-
153  std::map<std::string, T> configs_;
-
154 };
-
155 
-
156 
-
160 class ConfigGroup : public ConfigGroupBase<Configuration>
-
161 {
-
162 };
-
163 
- -
168 public:
- - -
171 
-
175  void Define(const char* groupName, const char* configName)
-
176  {
-
177  groups_[groupName].Define(configName);
-
178  }
-
179 
-
183  void Define(const char* groupName, const char* configName, const char* deviceLabel, const char* propName, const char* value)
-
184  {
-
185  groups_[groupName].Define(configName, deviceLabel, propName, value);
-
186  }
-
187 
-
191  bool Define(const char* groupName)
-
192  {
-
193  std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
-
194  if (it == groups_.end())
-
195  {
-
196  groups_[groupName]; // effectively inserts an empty group
-
197  return true;
-
198  }
-
199  else
-
200  return false; // group name already in use
-
201  }
-
202 
-
206  Configuration* Find(const char* groupName, const char* configName)
-
207  {
-
208  std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
-
209  if (it == groups_.end())
-
210  return 0;
-
211  else
-
212  return it->second.Find(configName);
-
213  }
-
214 
-
218  bool isDefined(const char* groupName)
-
219  {
-
220  std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
-
221  if (it == groups_.end())
-
222  return false;
-
223  else
-
224  return true;
-
225  }
-
226 
-
230  bool RenameConfig(const char* groupName, const char* oldConfigName, const char* newConfigName)
-
231  {
-
232  if (0 != strcmp(oldConfigName, newConfigName))
-
233  {
-
234  // tolerate empty group names
-
235  if (strlen(groupName) == 0)
-
236  return true;
-
237 
-
238  std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
-
239  if (it == groups_.end())
-
240  return false; // group not found
-
241  if (it->second.Rename(oldConfigName, newConfigName))
-
242  {
-
243  // NOTE: changed to not remove empty groups, N.A. 1.31.2006
-
244  // check if the config group is empty, and if so remove it
-
245  //if (it->second.IsEmpty())
-
246  //groups_.erase(it->first);
-
247  return true;
-
248  }
-
249  else
-
250  return false; // config not found within a group
-
251  } else {
-
252  return true;
-
253  }
-
254  }
-
255 
-
259  bool Delete(const char* groupName, const char* configName, const char* deviceLabel, const char* propName)
-
260  {
-
261  // tolerate empty group names
-
262  if (strlen(groupName) == 0)
-
263  return true;
-
264 
-
265  std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
-
266  if (it == groups_.end())
-
267  return false; // group not found
-
268  if (it->second.Delete(configName, deviceLabel, propName))
-
269  {
-
270  return true;
-
271  }
-
272  else
-
273  return false; // config not found within a group
-
274  }
-
275 
-
276 
-
280  bool Delete(const char* groupName, const char* configName)
-
281  {
-
282  // tolerate empty group names
-
283  if (strlen(groupName) == 0)
-
284  return true;
-
285 
-
286  std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
-
287  if (it == groups_.end())
-
288  return false; // group not found
-
289  if (it->second.Delete(configName))
-
290  {
-
291  // NOTE: changed to not remove empty groups, N.A. 1.31.2006
-
292  // check if the config group is empty, and if so remove it
-
293  //if (it->second.IsEmpty())
-
294  //groups_.erase(it->first);
-
295  return true;
-
296  }
-
297  else
-
298  return false; // config not found within a group
-
299  }
-
300 
-
304  bool Delete(const char* groupName)
-
305  {
-
306  // tolerate empty group names
-
307  if (strlen(groupName) == 0)
-
308  return true;
-
309 
-
310  std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
-
311  if (it != groups_.end())
-
312  {
-
313  groups_.erase(it->first);
-
314  return true;
-
315  }
-
316  return false; //not found
-
317  }
-
318 
-
322  bool RenameGroup(const char* oldGroupName, const char* newGroupName)
-
323  {
-
324  if (0 != strcmp(oldGroupName, newGroupName))
-
325  {
-
326  // tolerate empty group names
-
327  if (strlen(oldGroupName) == 0 || strlen(newGroupName)==0)
-
328  return true;
-
329 
-
330  std::map<std::string, ConfigGroup>::iterator it = groups_.find(oldGroupName);
-
331  if (it != groups_.end())
-
332  {
-
333  groups_[newGroupName] = it->second;
-
334  groups_.erase(it->first);
-
335  return true;
-
336  }
-
337  return false; //not found
-
338  }
-
339  else
-
340  {
-
341  return true;
-
342  }
-
343  }
-
344 
-
348  std::vector<std::string> GetAvailableGroups() const
-
349  {
-
350  std::vector<std::string> groupList;
-
351  groupList.clear();
-
352  std::map<std::string, ConfigGroup>::const_iterator it = groups_.begin();
-
353  while(it != groups_.end())
-
354  groupList.push_back(it++->first);
-
355 
-
356  return groupList;
-
357  }
-
358 
-
362  std::vector<std::string> GetAvailableConfigs(const char* groupName) const
-
363  {
-
364  std::vector<std::string> confList;
-
365  confList.clear();
-
366  std::map<std::string, ConfigGroup>::const_iterator it = groups_.find(groupName);
-
367  if (it != groups_.end())
-
368  {
-
369  confList = it->second.GetAvailable();
-
370  }
-
371  return confList;
-
372  }
-
373 
-
374  void Clear()
-
375  {
-
376  groups_.clear();
-
377  }
-
378 
-
379 
-
380 private:
-
381  std::map<std::string, ConfigGroup> groups_;
-
382 };
-
383 
- -
389 {
-
390 public:
-
391  PixelSizeConfiguration() : pixelSizeUm_(0.0)
-
392  {
-
393  affineMatrix_.push_back(1.0);
-
394  affineMatrix_.push_back(0.0);
-
395  affineMatrix_.push_back(0.0);
-
396  affineMatrix_.push_back(0.0);
-
397  affineMatrix_.push_back(1.0);
-
398  affineMatrix_.push_back(0.0);
-
399  }
- -
401 
-
402  void setPixelSizeUm(double pixSize) {pixelSizeUm_ = pixSize;}
-
403  double getPixelSizeUm() const {return pixelSizeUm_;}
-
404  void setPixelConfigAffineMatrix(std::vector<double> &affineMatrix) throw (CMMError)
-
405  {
-
406  if (affineMatrix.size() != 6)
-
407  {
-
408  throw CMMError("PixelConfig affineMatrix must have 6 elements");
-
409  }
-
410  for (unsigned int i=0; i < affineMatrix.size(); i++)
-
411  {
-
412  affineMatrix_.at(i) = affineMatrix.at(i);
-
413  }
-
414  }
-
415 
-
416  std::vector<double> getPixelConfigAffineMatrix() {return affineMatrix_;}
-
417 
-
418 private:
-
419  double pixelSizeUm_;
-
420  std::vector<double> affineMatrix_;
-
421 };
-
422 
-
426 class PixelSizeConfigGroup : public ConfigGroupBase<PixelSizeConfiguration>
-
427 {
-
428 public:
-
432  bool DefinePixelSize(const char* resolutionID, const char* deviceLabel, const char* propName, const char* value, double pixSizeUm)
-
433  {
-
434  PropertySetting setting(deviceLabel, propName, value);
-
435  configs_[resolutionID].addSetting(setting);
-
436  if (configs_[resolutionID].getPixelSizeUm() == 0.0)
-
437  {
-
438  // this is the first setting, so it is OK to set pixel size
-
439  configs_[resolutionID].setPixelSizeUm(pixSizeUm);
-
440  return true;
-
441  }
-
442  else
-
443  {
-
444  // pixel size already set and we won't allow the change
-
445  // - this signifies a conflict in the configuration
-
446  return false;
-
447  }
-
448  }
-
449 };
-
450 
-
451 #if defined(__GNUC__) && !defined(__clang__)
-
452 #pragma GCC diagnostic pop
-
453 #endif
-
454 
-
455 #ifdef _MSC_VER
-
456 #pragma warning(pop)
-
457 #endif
-
Core error class. Exceptions thrown by the Core public API are of this type.
Definition: Error.h:58
-
Definition: ConfigGroup.h:45
-
void Define(const char *configName, const char *deviceLabel, const char *propName, const char *value)
Definition: ConfigGroup.h:60
-
void Define(const char *configName)
Definition: ConfigGroup.h:52
-
T * Find(const char *configName)
Definition: ConfigGroup.h:69
-
std::vector< std::string > GetAvailable() const
Definition: ConfigGroup.h:134
-
bool Rename(const char *oldConfigName, const char *newConfigName)
Definition: ConfigGroup.h:81
-
bool Delete(const char *configName, const char *deviceLabel, const char *propName)
Definition: ConfigGroup.h:115
-
bool Delete(const char *configName)
Definition: ConfigGroup.h:99
-
Definition: ConfigGroup.h:167
-
bool Delete(const char *groupName, const char *configName)
Definition: ConfigGroup.h:280
-
Configuration * Find(const char *groupName, const char *configName)
Definition: ConfigGroup.h:206
-
std::vector< std::string > GetAvailableConfigs(const char *groupName) const
Definition: ConfigGroup.h:362
-
bool RenameConfig(const char *groupName, const char *oldConfigName, const char *newConfigName)
Definition: ConfigGroup.h:230
-
bool Define(const char *groupName)
Definition: ConfigGroup.h:191
-
bool Delete(const char *groupName)
Definition: ConfigGroup.h:304
-
void Define(const char *groupName, const char *configName)
Definition: ConfigGroup.h:175
-
std::vector< std::string > GetAvailableGroups() const
Definition: ConfigGroup.h:348
-
bool Delete(const char *groupName, const char *configName, const char *deviceLabel, const char *propName)
Definition: ConfigGroup.h:259
-
bool RenameGroup(const char *oldGroupName, const char *newGroupName)
Definition: ConfigGroup.h:322
-
bool isDefined(const char *groupName)
Definition: ConfigGroup.h:218
-
void Define(const char *groupName, const char *configName, const char *deviceLabel, const char *propName, const char *value)
Definition: ConfigGroup.h:183
-
Definition: ConfigGroup.h:161
-
Definition: Configuration.h:98
-
Definition: ConfigGroup.h:427
-
bool DefinePixelSize(const char *resolutionID, const char *deviceLabel, const char *propName, const char *value, double pixSizeUm)
Definition: ConfigGroup.h:432
-
Definition: ConfigGroup.h:389
-
Definition: Configuration.h:45
+
1
+
2// FILE: ConfigGroup.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Groups of configurations and container for the groups
+
7//
+
8// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 23/01/2006
+
9//
+
10// COPYRIGHT: University of California, San Francisco, 2006
+
11//
+
12// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
13// License text is included with the source distribution.
+
14//
+
15// This file is distributed in the hope that it will be useful,
+
16// but WITHOUT ANY WARRANTY; without even the implied warranty
+
17// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
18//
+
19// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
20// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
21// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
22
+
23#pragma once
+
24
+
25#ifdef _MSC_VER
+
26#pragma warning(push)
+
27#pragma warning(disable: 4290) // 'C++ exception specification ignored'
+
28#endif
+
29
+
30#if defined(__GNUC__) && !defined(__clang__)
+
31#pragma GCC diagnostic push
+
32// 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]'
+
33#pragma GCC diagnostic ignored "-Wdeprecated"
+
34#endif
+
35
+
36#include "Configuration.h"
+
37#include "Error.h"
+
38#include <string>
+
39#include <vector>
+
40
+
44template <class T>
+
+ +
46
+
47public:
+
48
+
+
52 void Define(const char* configName)
+
53 {
+
54 configs_[configName];
+
55 }
+
+
56
+
+
60 void Define(const char* configName, const char* deviceLabel, const char* propName, const char* value)
+
61 {
+
62 PropertySetting setting(deviceLabel, propName, value);
+
63 configs_[configName].addSetting(setting);
+
64 }
+
+
65
+
+
69 T* Find(const char* configName)
+
70 {
+
71 typename std::map<std::string,T>::iterator it = configs_.find(configName);
+
72 if (it == configs_.end())
+
73 return 0;
+
74 else
+
75 return &(it->second);
+
76 }
+
+
77
+
+
81 bool Rename(const char* oldConfigName, const char* newConfigName)
+
82 {
+
83 // tolerate empty configuration names
+
84 if (strlen(oldConfigName) == 0)
+
85 return true;
+
86
+
87 typename std::map<std::string, T>::const_iterator it = configs_.find(oldConfigName);
+
88 if (it == configs_.end())
+
89 return false;
+
90
+
91 configs_[newConfigName] = it->second;
+
92 configs_.erase(it->first);
+
93 return true;
+
94 }
+
+
95
+
+
99 bool Delete(const char* configName)
+
100 {
+
101 // tolerate empty configuration names
+
102 if (strlen(configName) == 0)
+
103 return true;
+
104
+
105 typename std::map<std::string, T>::const_iterator it = configs_.find(configName);
+
106 if (it == configs_.end())
+
107 return false;
+
108 configs_.erase(configName);
+
109 return true;
+
110 }
+
+
111
+
+
115 bool Delete(const char* configName, const char* deviceLabel, const char* propName)
+
116 {
+
117 // tolerate empty configuration names
+
118 if (strlen(configName) == 0)
+
119 return true;
+
120
+
121 // Check if configuration with configName exists:
+
122 typename std::map<std::string, T>::const_iterator it = configs_.find(configName);
+
123 if (it == configs_.end())
+
124 return false;
+
125
+
126 // Delete the specified property
+
127 configs_[configName].deleteSetting(deviceLabel,propName);
+
128 return true;
+
129 }
+
+
130
+
+
134 std::vector<std::string> GetAvailable() const
+
135 {
+
136 std::vector<std::string> configList;
+
137 typename std::map<std::string, T>::const_iterator it = configs_.begin();
+
138 while(it != configs_.end())
+
139 configList.push_back(it++->first);
+
140
+
141 return configList;
+
142 }
+
+
143
+
144 bool IsEmpty()
+
145 {
+
146 return configs_.size() == 0;
+
147 }
+
148
+
149protected:
+
150 ConfigGroupBase() {}
+
151 virtual ~ConfigGroupBase() {}
+
152
+
153 std::map<std::string, T> configs_;
+
154};
+
+
155
+
156
+
+
160class ConfigGroup : public ConfigGroupBase<Configuration>
+
161{
+
162};
+
+
163
+
+ +
168public:
+ + +
171
+
+
175 void Define(const char* groupName, const char* configName)
+
176 {
+
177 groups_[groupName].Define(configName);
+
178 }
+
+
179
+
+
183 void Define(const char* groupName, const char* configName, const char* deviceLabel, const char* propName, const char* value)
+
184 {
+
185 groups_[groupName].Define(configName, deviceLabel, propName, value);
+
186 }
+
+
187
+
+
191 bool Define(const char* groupName)
+
192 {
+
193 std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
+
194 if (it == groups_.end())
+
195 {
+
196 groups_[groupName]; // effectively inserts an empty group
+
197 return true;
+
198 }
+
199 else
+
200 return false; // group name already in use
+
201 }
+
+
202
+
+
206 Configuration* Find(const char* groupName, const char* configName)
+
207 {
+
208 std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
+
209 if (it == groups_.end())
+
210 return 0;
+
211 else
+
212 return it->second.Find(configName);
+
213 }
+
+
214
+
+
218 bool isDefined(const char* groupName)
+
219 {
+
220 std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
+
221 if (it == groups_.end())
+
222 return false;
+
223 else
+
224 return true;
+
225 }
+
+
226
+
+
230 bool RenameConfig(const char* groupName, const char* oldConfigName, const char* newConfigName)
+
231 {
+
232 if (0 != strcmp(oldConfigName, newConfigName))
+
233 {
+
234 // tolerate empty group names
+
235 if (strlen(groupName) == 0)
+
236 return true;
+
237
+
238 std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
+
239 if (it == groups_.end())
+
240 return false; // group not found
+
241 if (it->second.Rename(oldConfigName, newConfigName))
+
242 {
+
243 // NOTE: changed to not remove empty groups, N.A. 1.31.2006
+
244 // check if the config group is empty, and if so remove it
+
245 //if (it->second.IsEmpty())
+
246 //groups_.erase(it->first);
+
247 return true;
+
248 }
+
249 else
+
250 return false; // config not found within a group
+
251 } else {
+
252 return true;
+
253 }
+
254 }
+
+
255
+
+
259 bool Delete(const char* groupName, const char* configName, const char* deviceLabel, const char* propName)
+
260 {
+
261 // tolerate empty group names
+
262 if (strlen(groupName) == 0)
+
263 return true;
+
264
+
265 std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
+
266 if (it == groups_.end())
+
267 return false; // group not found
+
268 if (it->second.Delete(configName, deviceLabel, propName))
+
269 {
+
270 return true;
+
271 }
+
272 else
+
273 return false; // config not found within a group
+
274 }
+
+
275
+
276
+
+
280 bool Delete(const char* groupName, const char* configName)
+
281 {
+
282 // tolerate empty group names
+
283 if (strlen(groupName) == 0)
+
284 return true;
+
285
+
286 std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
+
287 if (it == groups_.end())
+
288 return false; // group not found
+
289 if (it->second.Delete(configName))
+
290 {
+
291 // NOTE: changed to not remove empty groups, N.A. 1.31.2006
+
292 // check if the config group is empty, and if so remove it
+
293 //if (it->second.IsEmpty())
+
294 //groups_.erase(it->first);
+
295 return true;
+
296 }
+
297 else
+
298 return false; // config not found within a group
+
299 }
+
+
300
+
+
304 bool Delete(const char* groupName)
+
305 {
+
306 // tolerate empty group names
+
307 if (strlen(groupName) == 0)
+
308 return true;
+
309
+
310 std::map<std::string, ConfigGroup>::iterator it = groups_.find(groupName);
+
311 if (it != groups_.end())
+
312 {
+
313 groups_.erase(it->first);
+
314 return true;
+
315 }
+
316 return false; //not found
+
317 }
+
+
318
+
+
322 bool RenameGroup(const char* oldGroupName, const char* newGroupName)
+
323 {
+
324 if (0 != strcmp(oldGroupName, newGroupName))
+
325 {
+
326 // tolerate empty group names
+
327 if (strlen(oldGroupName) == 0 || strlen(newGroupName)==0)
+
328 return true;
+
329
+
330 std::map<std::string, ConfigGroup>::iterator it = groups_.find(oldGroupName);
+
331 if (it != groups_.end())
+
332 {
+
333 groups_[newGroupName] = it->second;
+
334 groups_.erase(it->first);
+
335 return true;
+
336 }
+
337 return false; //not found
+
338 }
+
339 else
+
340 {
+
341 return true;
+
342 }
+
343 }
+
+
344
+
+
348 std::vector<std::string> GetAvailableGroups() const
+
349 {
+
350 std::vector<std::string> groupList;
+
351 groupList.clear();
+
352 std::map<std::string, ConfigGroup>::const_iterator it = groups_.begin();
+
353 while(it != groups_.end())
+
354 groupList.push_back(it++->first);
+
355
+
356 return groupList;
+
357 }
+
+
358
+
+
362 std::vector<std::string> GetAvailableConfigs(const char* groupName) const
+
363 {
+
364 std::vector<std::string> confList;
+
365 confList.clear();
+
366 std::map<std::string, ConfigGroup>::const_iterator it = groups_.find(groupName);
+
367 if (it != groups_.end())
+
368 {
+
369 confList = it->second.GetAvailable();
+
370 }
+
371 return confList;
+
372 }
+
+
373
+
374 void Clear()
+
375 {
+
376 groups_.clear();
+
377 }
+
378
+
379
+
380private:
+
381 std::map<std::string, ConfigGroup> groups_;
+
382};
+
+
383
+
+ +
389{
+
390public:
+
391 PixelSizeConfiguration() : pixelSizeUm_(0.0)
+
392 {
+
393 affineMatrix_.push_back(1.0);
+
394 affineMatrix_.push_back(0.0);
+
395 affineMatrix_.push_back(0.0);
+
396 affineMatrix_.push_back(0.0);
+
397 affineMatrix_.push_back(1.0);
+
398 affineMatrix_.push_back(0.0);
+
399 }
+ +
401
+
402 void setPixelSizeUm(double pixSize) {pixelSizeUm_ = pixSize;}
+
403 double getPixelSizeUm() const {return pixelSizeUm_;}
+
404 void setPixelConfigAffineMatrix(std::vector<double> &affineMatrix) throw (CMMError)
+
405 {
+
406 if (affineMatrix.size() != 6)
+
407 {
+
408 throw CMMError("PixelConfig affineMatrix must have 6 elements");
+
409 }
+
410 for (unsigned int i=0; i < affineMatrix.size(); i++)
+
411 {
+
412 affineMatrix_.at(i) = affineMatrix.at(i);
+
413 }
+
414 }
+
415
+
416 std::vector<double> getPixelConfigAffineMatrix() {return affineMatrix_;}
+
417
+
418private:
+
419 double pixelSizeUm_;
+
420 std::vector<double> affineMatrix_;
+
421};
+
+
422
+
+
426class PixelSizeConfigGroup : public ConfigGroupBase<PixelSizeConfiguration>
+
427{
+
428public:
+
+
432 bool DefinePixelSize(const char* resolutionID, const char* deviceLabel, const char* propName, const char* value, double pixSizeUm)
+
433 {
+
434 PropertySetting setting(deviceLabel, propName, value);
+
435 configs_[resolutionID].addSetting(setting);
+
436 if (configs_[resolutionID].getPixelSizeUm() == 0.0)
+
437 {
+
438 // this is the first setting, so it is OK to set pixel size
+
439 configs_[resolutionID].setPixelSizeUm(pixSizeUm);
+
440 return true;
+
441 }
+
442 else
+
443 {
+
444 // pixel size already set and we won't allow the change
+
445 // - this signifies a conflict in the configuration
+
446 return false;
+
447 }
+
448 }
+
+
449};
+
+
450
+
451#if defined(__GNUC__) && !defined(__clang__)
+
452#pragma GCC diagnostic pop
+
453#endif
+
454
+
455#ifdef _MSC_VER
+
456#pragma warning(pop)
+
457#endif
+
Core error class. Exceptions thrown by the Core public API are of this type.
Definition Error.h:58
+
Definition ConfigGroup.h:45
+
T * Find(const char *configName)
Definition ConfigGroup.h:69
+
void Define(const char *configName, const char *deviceLabel, const char *propName, const char *value)
Definition ConfigGroup.h:60
+
void Define(const char *configName)
Definition ConfigGroup.h:52
+
bool Rename(const char *oldConfigName, const char *newConfigName)
Definition ConfigGroup.h:81
+
bool Delete(const char *configName, const char *deviceLabel, const char *propName)
Definition ConfigGroup.h:115
+
bool Delete(const char *configName)
Definition ConfigGroup.h:99
+
std::vector< std::string > GetAvailable() const
Definition ConfigGroup.h:134
+
Definition ConfigGroup.h:167
+
bool Delete(const char *groupName, const char *configName)
Definition ConfigGroup.h:280
+
std::vector< std::string > GetAvailableConfigs(const char *groupName) const
Definition ConfigGroup.h:362
+
bool RenameConfig(const char *groupName, const char *oldConfigName, const char *newConfigName)
Definition ConfigGroup.h:230
+
bool Define(const char *groupName)
Definition ConfigGroup.h:191
+
bool Delete(const char *groupName)
Definition ConfigGroup.h:304
+
void Define(const char *groupName, const char *configName)
Definition ConfigGroup.h:175
+
bool Delete(const char *groupName, const char *configName, const char *deviceLabel, const char *propName)
Definition ConfigGroup.h:259
+
std::vector< std::string > GetAvailableGroups() const
Definition ConfigGroup.h:348
+
Configuration * Find(const char *groupName, const char *configName)
Definition ConfigGroup.h:206
+
bool RenameGroup(const char *oldGroupName, const char *newGroupName)
Definition ConfigGroup.h:322
+
bool isDefined(const char *groupName)
Definition ConfigGroup.h:218
+
void Define(const char *groupName, const char *configName, const char *deviceLabel, const char *propName, const char *value)
Definition ConfigGroup.h:183
+
Definition ConfigGroup.h:161
+
Definition Configuration.h:98
+
Definition ConfigGroup.h:427
+
bool DefinePixelSize(const char *resolutionID, const char *deviceLabel, const char *propName, const char *value, double pixSizeUm)
Definition ConfigGroup.h:432
+
Definition ConfigGroup.h:389
+
Definition Configuration.h:45
diff --git a/_configuration_8h_source.html b/_configuration_8h_source.html index 652395b..284e337 100644 --- a/_configuration_8h_source.html +++ b/_configuration_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Configuration.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,148 +26,160 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
Configuration.h
+
Configuration.h
-
1 // FILE: Configuration.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Set of properties defined as a high level command
-
7 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 09/08/2005
-
8 // COPYRIGHT: University of California, San Francisco, 2006
-
9 //
-
10 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
11 // License text is included with the source distribution.
-
12 //
-
13 // This file is distributed in the hope that it will be useful,
-
14 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
15 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
16 //
-
17 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
18 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
19 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
20 
-
21 #pragma once
-
22 
-
23 #ifdef _MSC_VER
-
24 #pragma warning(push)
-
25 #pragma warning(disable: 4290) // 'C++ exception specification ignored'
-
26 #endif
-
27 
-
28 #if defined(__GNUC__) && !defined(__clang__)
-
29 #pragma GCC diagnostic push
-
30 // 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]'
-
31 #pragma GCC diagnostic ignored "-Wdeprecated"
-
32 #endif
-
33 
-
34 #include <string>
-
35 #include <vector>
-
36 #include <map>
-
37 #include "Error.h"
-
38 
-
39 
- -
45 {
-
52  PropertySetting(const char* deviceLabel, const char* prop, const char* value, bool readOnly = false) :
-
53  deviceLabel_(deviceLabel), propertyName_(prop), value_(value), readOnly_(readOnly)
-
54  {
-
55  key_ = generateKey(deviceLabel, prop);
-
56  }
-
57 
-
58  PropertySetting() : readOnly_(false) {}
-
59  ~PropertySetting() {}
-
60 
-
64  std::string getDeviceLabel() const {return deviceLabel_;}
-
68  std::string getPropertyName() const {return propertyName_;}
-
72  bool getReadOnly() const {return readOnly_;}
-
76  std::string getPropertyValue() const {return value_;}
-
77 
-
78  std::string getKey() const {return key_;}
-
79 
-
80  static std::string generateKey(const char* device, const char* prop);
-
81 
-
82  std::string getVerbose() const;
-
83  bool isEqualTo(const PropertySetting& ps);
-
84 
-
85 private:
-
86  std::string deviceLabel_;
-
87  std::string propertyName_;
-
88  std::string value_;
-
89  std::string key_;
-
90  bool readOnly_;
-
91 };
-
92 
- -
98 {
-
99 public:
-
100 
-
101  Configuration() {}
-
102  ~Configuration() {}
-
103 
-
107  void addSetting(const PropertySetting& setting);
-
108  void deleteSetting(const char* device, const char* prop);
-
109 
-
110  bool isPropertyIncluded(const char* device, const char* property);
-
111  bool isSettingIncluded(const PropertySetting& ps);
-
112  bool isConfigurationIncluded(const Configuration& cfg);
-
113 
-
114  PropertySetting getSetting(size_t index) const throw (CMMError);
-
115  PropertySetting getSetting(const char* device, const char* prop);
-
116 
-
120  size_t size() const {return settings_.size();}
-
121  std::string getVerbose() const;
-
122 
-
123 private:
-
124  std::vector<PropertySetting> settings_;
-
125  std::map<std::string, int> index_;
-
126 };
-
127 
-
128 #if defined(__GNUC__) && !defined(__clang__)
-
129 #pragma GCC diagnostic pop
-
130 #endif
-
131 
-
132 #ifdef _MSC_VER
-
133 #pragma warning(pop)
-
134 #endif
-
Core error class. Exceptions thrown by the Core public API are of this type.
Definition: Error.h:58
-
Definition: Configuration.h:98
-
bool isPropertyIncluded(const char *device, const char *property)
Definition: Configuration.cpp:101
-
std::string getVerbose() const
Definition: Configuration.cpp:71
-
size_t size() const
Definition: Configuration.h:120
-
PropertySetting getSetting(size_t index) const
Definition: Configuration.cpp:86
-
bool isSettingIncluded(const PropertySetting &ps)
Definition: Configuration.cpp:136
-
bool isConfigurationIncluded(const Configuration &cfg)
Definition: Configuration.cpp:151
-
void deleteSetting(const char *device, const char *prop)
Definition: Configuration.cpp:183
-
void addSetting(const PropertySetting &setting)
Definition: Configuration.cpp:164
-
Definition: Configuration.h:45
-
bool getReadOnly() const
Definition: Configuration.h:72
-
std::string getPropertyValue() const
Definition: Configuration.h:76
-
std::string getDeviceLabel() const
Definition: Configuration.h:64
-
PropertySetting(const char *deviceLabel, const char *prop, const char *value, bool readOnly=false)
Definition: Configuration.h:52
-
std::string getPropertyName() const
Definition: Configuration.h:68
-
std::string getVerbose() const
Definition: Configuration.cpp:50
+
1
+
2// FILE: Configuration.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Set of properties defined as a high level command
+
7// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 09/08/2005
+
8// COPYRIGHT: University of California, San Francisco, 2006
+
9//
+
10// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
11// License text is included with the source distribution.
+
12//
+
13// This file is distributed in the hope that it will be useful,
+
14// but WITHOUT ANY WARRANTY; without even the implied warranty
+
15// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
16//
+
17// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
18// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
19// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
20
+
21#pragma once
+
22
+
23#ifdef _MSC_VER
+
24#pragma warning(push)
+
25#pragma warning(disable: 4290) // 'C++ exception specification ignored'
+
26#endif
+
27
+
28#if defined(__GNUC__) && !defined(__clang__)
+
29#pragma GCC diagnostic push
+
30// 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]'
+
31#pragma GCC diagnostic ignored "-Wdeprecated"
+
32#endif
+
33
+
34#include <string>
+
35#include <vector>
+
36#include <map>
+
37#include "Error.h"
+
38
+
39
+
+ +
45{
+
+
52 PropertySetting(const char* deviceLabel, const char* prop, const char* value, bool readOnly = false) :
+
53 deviceLabel_(deviceLabel), propertyName_(prop), value_(value), readOnly_(readOnly)
+
54 {
+
55 key_ = generateKey(deviceLabel, prop);
+
56 }
+
+
57
+
58 PropertySetting() : readOnly_(false) {}
+ +
60
+
64 std::string getDeviceLabel() const {return deviceLabel_;}
+
68 std::string getPropertyName() const {return propertyName_;}
+
72 bool getReadOnly() const {return readOnly_;}
+
76 std::string getPropertyValue() const {return value_;}
+
77
+
78 std::string getKey() const {return key_;}
+
79
+
80 static std::string generateKey(const char* device, const char* prop);
+
81
+
82 std::string getVerbose() const;
+
83 bool isEqualTo(const PropertySetting& ps);
+
84
+
85private:
+
86 std::string deviceLabel_;
+
87 std::string propertyName_;
+
88 std::string value_;
+
89 std::string key_;
+
90 bool readOnly_;
+
91};
+
+
92
+
+ +
98{
+
99public:
+
100
+
101 Configuration() {}
+
102 ~Configuration() {}
+
103
+
107 void addSetting(const PropertySetting& setting);
+
108 void deleteSetting(const char* device, const char* prop);
+
109
+
110 bool isPropertyIncluded(const char* device, const char* property);
+
111 bool isSettingIncluded(const PropertySetting& ps);
+
112 bool isConfigurationIncluded(const Configuration& cfg);
+
113
+
114 PropertySetting getSetting(size_t index) const throw (CMMError);
+
115 PropertySetting getSetting(const char* device, const char* prop);
+
116
+
120 size_t size() const {return settings_.size();}
+
121 std::string getVerbose() const;
+
122
+
123private:
+
124 std::vector<PropertySetting> settings_;
+
125 std::map<std::string, int> index_;
+
126};
+
+
127
+
128#if defined(__GNUC__) && !defined(__clang__)
+
129#pragma GCC diagnostic pop
+
130#endif
+
131
+
132#ifdef _MSC_VER
+
133#pragma warning(pop)
+
134#endif
+
Core error class. Exceptions thrown by the Core public API are of this type.
Definition Error.h:58
+
Definition Configuration.h:98
+
bool isPropertyIncluded(const char *device, const char *property)
Definition Configuration.cpp:101
+
std::string getVerbose() const
Definition Configuration.cpp:71
+
size_t size() const
Definition Configuration.h:120
+
PropertySetting getSetting(size_t index) const
Definition Configuration.cpp:86
+
bool isSettingIncluded(const PropertySetting &ps)
Definition Configuration.cpp:136
+
bool isConfigurationIncluded(const Configuration &cfg)
Definition Configuration.cpp:151
+
void deleteSetting(const char *device, const char *prop)
Definition Configuration.cpp:183
+
void addSetting(const PropertySetting &setting)
Definition Configuration.cpp:164
+
Definition Configuration.h:45
+
bool getReadOnly() const
Definition Configuration.h:72
+
std::string getPropertyValue() const
Definition Configuration.h:76
+
std::string getDeviceLabel() const
Definition Configuration.h:64
+
PropertySetting(const char *deviceLabel, const char *prop, const char *value, bool readOnly=false)
Definition Configuration.h:52
+
std::string getPropertyName() const
Definition Configuration.h:68
+
std::string getVerbose() const
Definition Configuration.cpp:50
diff --git a/_core_callback_8h_source.html b/_core_callback_8h_source.html index 2642586..7566f70 100644 --- a/_core_callback_8h_source.html +++ b/_core_callback_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CoreCallback.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,187 +26,195 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
CoreCallback.h
+
CoreCallback.h
-
1 // FILE: CoreCallback.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Callback object for MMCore device interface. Encapsulates
-
7 // (bottom) internal API for calls going from devices to the
-
8 // core.
-
9 //
-
10 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 01/23/2006
-
11 
-
12 // COPYRIGHT: University of California, San Francisco, 2006-2014
-
13 //
-
14 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
15 // License text is included with the source distribution.
-
16 //
-
17 // This file is distributed in the hope that it will be useful,
-
18 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
19 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
20 //
-
21 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
22 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
23 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
24 
-
25 #pragma once
-
26 
-
27 #include "Devices/DeviceInstances.h"
-
28 #include "CoreUtils.h"
-
29 #include "MMCore.h"
-
30 #include "MMEventCallback.h"
-
31 #include "../MMDevice/DeviceUtils.h"
-
32 
-
33 namespace mm
-
34 {
-
35  class DeviceManager;
-
36 }
-
37 
-
38 
-
40 // CoreCallback class
-
41 // ------------------
-
42 
-
43 class CoreCallback : public MM::Core
-
44 {
-
45 public:
- -
47  ~CoreCallback();
-
48 
-
49  int GetDeviceProperty(const char* deviceName, const char* propName, char* value);
-
50  int SetDeviceProperty(const char* deviceName, const char* propName, const char* value);
-
51 
-
55  int LogMessage(const MM::Device* caller, const char* msg,
-
56  bool debugOnly) const;
-
57 
-
61  MM::Device* GetDevice(const MM::Device* caller, const char* label);
-
62 
-
63  MM::PortType GetSerialPortType(const char* portName) const;
-
64 
-
65  int SetSerialProperties(const char* portName,
-
66  const char* answerTimeout,
-
67  const char* baudRate,
-
68  const char* delayBetweenCharsMs,
-
69  const char* handshaking,
-
70  const char* parity,
-
71  const char* stopBits);
-
72 
-
73  int WriteToSerial(const MM::Device* caller, const char* portName, const unsigned char* buf, unsigned long length);
-
74  int ReadFromSerial(const MM::Device* caller, const char* portName, unsigned char* buf, unsigned long bufLength, unsigned long &bytesRead);
-
75  int PurgeSerial(const MM::Device* caller, const char* portName);
-
76  int SetSerialCommand(const MM::Device*, const char* portName, const char* command, const char* term);
-
77  int GetSerialAnswer(const MM::Device*, const char* portName, unsigned long ansLength, char* answerTxt, const char* term);
-
78 
-
79  /*Deprecated*/ unsigned long GetClockTicksUs(const MM::Device* caller);
-
80 
-
81  MM::MMTime GetCurrentMMTime();
-
82 
-
83  void Sleep(const MM::Device* caller, double intervalMs);
-
84 
-
85  // continuous acquisition support
-
86  int InsertImage(const MM::Device* caller, const ImgBuffer& imgBuf); // Note: _not_ mm::ImgBuffer
-
87  int InsertImage(const MM::Device* caller, const unsigned char* buf, unsigned width, unsigned height, unsigned byteDepth, const char* serializedMetadata, const bool doProcess = true);
-
88  int InsertImage(const MM::Device* caller, const unsigned char* buf, unsigned width, unsigned height, unsigned byteDepth, unsigned nComponents, const char* serializedMetadata, const bool doProcess = true);
-
89 
-
90  /*Deprecated*/ int InsertImage(const MM::Device* caller, const unsigned char* buf, unsigned width, unsigned height, unsigned byteDepth, const Metadata* pMd = 0, const bool doProcess = true);
-
91  /*Deprecated*/ int InsertImage(const MM::Device* caller, const unsigned char* buf, unsigned width, unsigned height, unsigned byteDepth, unsigned nComponents, const Metadata* pMd = 0, const bool doProcess = true);
-
92 
-
93  /*Deprecated*/ int InsertMultiChannel(const MM::Device* caller, const unsigned char* buf, unsigned numChannels, unsigned width, unsigned height, unsigned byteDepth, Metadata* pMd = 0);
-
94  void ClearImageBuffer(const MM::Device* caller);
-
95  bool InitializeImageBuffer(unsigned channels, unsigned slices, unsigned int w, unsigned int h, unsigned int pixDepth);
-
96 
-
97  int AcqFinished(const MM::Device* caller, int statusCode);
-
98  int PrepareForAcq(const MM::Device* caller);
-
99 
-
100  // autofocus support
-
101  const char* GetImage();
-
102  int GetImageDimensions(int& width, int& height, int& depth);
-
103  int GetFocusPosition(double& pos);
-
104  int SetFocusPosition(double pos);
-
105  int MoveFocus(double v);
-
106  int SetXYPosition(double x, double y);
-
107  int GetXYPosition(double& x, double& y);
-
108  int MoveXYStage(double vX, double vY);
-
109  int SetExposure(double expMs);
-
110  int GetExposure(double& expMs);
-
111  int SetConfig(const char* group, const char* name);
-
112  int GetCurrentConfig(const char* group, int bufLen, char* name);
-
113  int GetChannelConfig(char* channelConfigName, const unsigned int channelConfigIterator);
-
114 
-
115  // notification handlers
-
116  int OnPropertiesChanged(const MM::Device* caller);
-
117  int OnPropertyChanged(const MM::Device* device, const char* propName, const char* value);
-
118  int OnStagePositionChanged(const MM::Device* device, double pos);
-
119  int OnXYStagePositionChanged(const MM::Device* device, double xpos, double ypos);
-
120  int OnExposureChanged(const MM::Device* device, double newExposure);
-
121  int OnSLMExposureChanged(const MM::Device* device, double newExposure);
-
122  int OnMagnifierChanged(const MM::Device* device);
-
123 
-
124 
-
125  void NextPostedError(int& errorCode, char* pMessage, int maxlen, int& messageLength);
-
126  void PostError(const int errorCode, const char* pMessage);
-
127  void ClearPostedErrors();
-
128 
-
129 
-
130  MM::ImageProcessor* GetImageProcessor(const MM::Device* caller);
-
131  MM::State* GetStateDevice(const MM::Device* caller, const char* label);
-
132  MM::SignalIO* GetSignalIODevice(const MM::Device* caller,
-
133  const char* label);
-
134  MM::AutoFocus* GetAutoFocus(const MM::Device* caller);
-
135  MM::Hub* GetParentHub(const MM::Device* caller) const;
-
136  void GetLoadedDeviceOfType(const MM::Device* caller, MM::DeviceType devType,
-
137  char* deviceName, const unsigned int deviceIterator);
-
138 
-
139 private:
-
140  CMMCore* core_;
-
141  MMThreadLock* pValueChangeLock_;
-
142 
-
143  Metadata AddCameraMetadata(const MM::Device* caller, const Metadata* pMd);
-
144 
-
145  int OnConfigGroupChanged(const char* groupName, const char* newConfigName);
-
146  int OnPixelSizeChanged(double newPixelSizeUm);
-
147  int OnPixelSizeAffineChanged(std::vector<double> newPixelSizeAffine);
-
148 };
-
The Micro-Manager Core.
Definition: MMCore.h:135
-
Definition: CoreCallback.h:44
-
int GetSerialAnswer(const MM::Device *, const char *portName, unsigned long ansLength, char *answerTxt, const char *term)
Definition: CoreCallback.cpp:784
-
int WriteToSerial(const MM::Device *caller, const char *portName, const unsigned char *buf, unsigned long length)
Definition: CoreCallback.cpp:688
-
int LogMessage(const MM::Device *caller, const char *msg, bool debugOnly) const
Definition: CoreCallback.cpp:58
-
int OnPropertiesChanged(const MM::Device *caller)
Definition: CoreCallback.cpp:451
-
unsigned long GetClockTicksUs(const MM::Device *caller)
Definition: CoreCallback.cpp:1071
-
int OnMagnifierChanged(const MM::Device *device)
Definition: CoreCallback.cpp:643
-
int OnSLMExposureChanged(const MM::Device *device, double newExposure)
Definition: CoreCallback.cpp:628
-
int OnStagePositionChanged(const MM::Device *device, double pos)
Definition: CoreCallback.cpp:585
-
int SetSerialCommand(const MM::Device *, const char *portName, const char *command, const char *term)
Definition: CoreCallback.cpp:766
-
int OnPropertyChanged(const MM::Device *device, const char *propName, const char *value)
Definition: CoreCallback.cpp:465
-
MM::Device * GetDevice(const MM::Device *caller, const char *label)
Definition: CoreCallback.cpp:77
-
int PurgeSerial(const MM::Device *caller, const char *portName)
Definition: CoreCallback.cpp:740
-
int OnXYStagePositionChanged(const MM::Device *device, double xpos, double ypos)
Definition: CoreCallback.cpp:599
-
int ReadFromSerial(const MM::Device *caller, const char *portName, unsigned char *buf, unsigned long bufLength, unsigned long &bytesRead)
Definition: CoreCallback.cpp:714
-
int OnExposureChanged(const MM::Device *device, double newExposure)
Definition: CoreCallback.cpp:614
+
1
+
2// FILE: CoreCallback.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Callback object for MMCore device interface. Encapsulates
+
7// (bottom) internal API for calls going from devices to the
+
8// core.
+
9//
+
10// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 01/23/2006
+
11
+
12// COPYRIGHT: University of California, San Francisco, 2006-2014
+
13//
+
14// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
15// License text is included with the source distribution.
+
16//
+
17// This file is distributed in the hope that it will be useful,
+
18// but WITHOUT ANY WARRANTY; without even the implied warranty
+
19// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
20//
+
21// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
22// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
23// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
24
+
25#pragma once
+
26
+
27#include "Devices/DeviceInstances.h"
+
28#include "CoreUtils.h"
+
29#include "MMCore.h"
+
30#include "MMEventCallback.h"
+
31#include "../MMDevice/DeviceUtils.h"
+
32
+
33namespace mm
+
34{
+
35 class DeviceManager;
+
36}
+
37
+
38
+
40// CoreCallback class
+
41// ------------------
+
42
+
+
43class CoreCallback : public MM::Core
+
44{
+
45public:
+ + +
48
+
49 int GetDeviceProperty(const char* deviceName, const char* propName, char* value);
+
50 int SetDeviceProperty(const char* deviceName, const char* propName, const char* value);
+
51
+
55 int LogMessage(const MM::Device* caller, const char* msg,
+
56 bool debugOnly) const;
+
57
+
61 MM::Device* GetDevice(const MM::Device* caller, const char* label);
+
62
+
63 MM::PortType GetSerialPortType(const char* portName) const;
+
64
+
65 int SetSerialProperties(const char* portName,
+
66 const char* answerTimeout,
+
67 const char* baudRate,
+
68 const char* delayBetweenCharsMs,
+
69 const char* handshaking,
+
70 const char* parity,
+
71 const char* stopBits);
+
72
+
73 int WriteToSerial(const MM::Device* caller, const char* portName, const unsigned char* buf, unsigned long length);
+
74 int ReadFromSerial(const MM::Device* caller, const char* portName, unsigned char* buf, unsigned long bufLength, unsigned long &bytesRead);
+
75 int PurgeSerial(const MM::Device* caller, const char* portName);
+
76 int SetSerialCommand(const MM::Device*, const char* portName, const char* command, const char* term);
+
77 int GetSerialAnswer(const MM::Device*, const char* portName, unsigned long ansLength, char* answerTxt, const char* term);
+
78
+
79 /*Deprecated*/ unsigned long GetClockTicksUs(const MM::Device* caller);
+
80
+
81 MM::MMTime GetCurrentMMTime();
+
82
+
83 void Sleep(const MM::Device* caller, double intervalMs);
+
84
+
85 // continuous acquisition support
+
86 int InsertImage(const MM::Device* caller, const ImgBuffer& imgBuf); // Note: _not_ mm::ImgBuffer
+
87 int InsertImage(const MM::Device* caller, const unsigned char* buf, unsigned width, unsigned height, unsigned byteDepth, const char* serializedMetadata, const bool doProcess = true);
+
88 int InsertImage(const MM::Device* caller, const unsigned char* buf, unsigned width, unsigned height, unsigned byteDepth, unsigned nComponents, const char* serializedMetadata, const bool doProcess = true);
+
89
+
90 /*Deprecated*/ int InsertImage(const MM::Device* caller, const unsigned char* buf, unsigned width, unsigned height, unsigned byteDepth, const Metadata* pMd = 0, const bool doProcess = true);
+
91 /*Deprecated*/ int InsertImage(const MM::Device* caller, const unsigned char* buf, unsigned width, unsigned height, unsigned byteDepth, unsigned nComponents, const Metadata* pMd = 0, const bool doProcess = true);
+
92
+
93 /*Deprecated*/ int InsertMultiChannel(const MM::Device* caller, const unsigned char* buf, unsigned numChannels, unsigned width, unsigned height, unsigned byteDepth, Metadata* pMd = 0);
+
94 void ClearImageBuffer(const MM::Device* caller);
+
95 bool InitializeImageBuffer(unsigned channels, unsigned slices, unsigned int w, unsigned int h, unsigned int pixDepth);
+
96
+
97 int AcqFinished(const MM::Device* caller, int statusCode);
+
98 int PrepareForAcq(const MM::Device* caller);
+
99
+
100 // autofocus support
+
101 const char* GetImage();
+
102 int GetImageDimensions(int& width, int& height, int& depth);
+
103 int GetFocusPosition(double& pos);
+
104 int SetFocusPosition(double pos);
+
105 int MoveFocus(double v);
+
106 int SetXYPosition(double x, double y);
+
107 int GetXYPosition(double& x, double& y);
+
108 int MoveXYStage(double vX, double vY);
+
109 int SetExposure(double expMs);
+
110 int GetExposure(double& expMs);
+
111 int SetConfig(const char* group, const char* name);
+
112 int GetCurrentConfig(const char* group, int bufLen, char* name);
+
113 int GetChannelConfig(char* channelConfigName, const unsigned int channelConfigIterator);
+
114
+
115 // notification handlers
+
116 int OnPropertiesChanged(const MM::Device* caller);
+
117 int OnPropertyChanged(const MM::Device* device, const char* propName, const char* value);
+
118 int OnStagePositionChanged(const MM::Device* device, double pos);
+
119 int OnXYStagePositionChanged(const MM::Device* device, double xpos, double ypos);
+
120 int OnExposureChanged(const MM::Device* device, double newExposure);
+
121 int OnSLMExposureChanged(const MM::Device* device, double newExposure);
+
122 int OnMagnifierChanged(const MM::Device* device);
+
123
+
124
+
125 void NextPostedError(int& errorCode, char* pMessage, int maxlen, int& messageLength);
+
126 void PostError(const int errorCode, const char* pMessage);
+
127 void ClearPostedErrors();
+
128
+
129
+
130 MM::ImageProcessor* GetImageProcessor(const MM::Device* caller);
+
131 MM::State* GetStateDevice(const MM::Device* caller, const char* label);
+
132 MM::SignalIO* GetSignalIODevice(const MM::Device* caller,
+
133 const char* label);
+
134 MM::AutoFocus* GetAutoFocus(const MM::Device* caller);
+
135 MM::Hub* GetParentHub(const MM::Device* caller) const;
+
136 void GetLoadedDeviceOfType(const MM::Device* caller, MM::DeviceType devType,
+
137 char* deviceName, const unsigned int deviceIterator);
+
138
+
139private:
+
140 CMMCore* core_;
+
141 MMThreadLock* pValueChangeLock_;
+
142
+
143 Metadata AddCameraMetadata(const MM::Device* caller, const Metadata* pMd);
+
144
+
145 int OnConfigGroupChanged(const char* groupName, const char* newConfigName);
+
146 int OnPixelSizeChanged(double newPixelSizeUm);
+
147 int OnPixelSizeAffineChanged(std::vector<double> newPixelSizeAffine);
+
148};
+
+
The Micro-Manager Core.
Definition MMCore.h:135
+
Definition CoreCallback.h:44
+
int GetSerialAnswer(const MM::Device *, const char *portName, unsigned long ansLength, char *answerTxt, const char *term)
Definition CoreCallback.cpp:784
+
int WriteToSerial(const MM::Device *caller, const char *portName, const unsigned char *buf, unsigned long length)
Definition CoreCallback.cpp:688
+
int LogMessage(const MM::Device *caller, const char *msg, bool debugOnly) const
Definition CoreCallback.cpp:58
+
int OnPropertiesChanged(const MM::Device *caller)
Definition CoreCallback.cpp:451
+
unsigned long GetClockTicksUs(const MM::Device *caller)
Definition CoreCallback.cpp:1071
+
int OnMagnifierChanged(const MM::Device *device)
Definition CoreCallback.cpp:643
+
int OnSLMExposureChanged(const MM::Device *device, double newExposure)
Definition CoreCallback.cpp:628
+
int OnStagePositionChanged(const MM::Device *device, double pos)
Definition CoreCallback.cpp:585
+
int SetSerialCommand(const MM::Device *, const char *portName, const char *command, const char *term)
Definition CoreCallback.cpp:766
+
int OnPropertyChanged(const MM::Device *device, const char *propName, const char *value)
Definition CoreCallback.cpp:465
+
MM::Device * GetDevice(const MM::Device *caller, const char *label)
Definition CoreCallback.cpp:77
+
int PurgeSerial(const MM::Device *caller, const char *portName)
Definition CoreCallback.cpp:740
+
int OnXYStagePositionChanged(const MM::Device *device, double xpos, double ypos)
Definition CoreCallback.cpp:599
+
int ReadFromSerial(const MM::Device *caller, const char *portName, unsigned char *buf, unsigned long bufLength, unsigned long &bytesRead)
Definition CoreCallback.cpp:714
+
int OnExposureChanged(const MM::Device *device, double newExposure)
Definition CoreCallback.cpp:614
diff --git a/_core_features_8h_source.html b/_core_features_8h_source.html index 885ecea..6b37f1f 100644 --- a/_core_features_8h_source.html +++ b/_core_features_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CoreFeatures.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,76 +26,83 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
CoreFeatures.h
+
CoreFeatures.h
-
1 // PROJECT: Micro-Manager
-
2 // SUBSYSTEM: MMCore
-
3 //
-
4 // COPYRIGHT: 2023, Board of Regents of the University of Wisconsin System
-
5 // All Rights reserved
-
6 //
-
7 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
8 // License text is included with the source distribution.
-
9 //
-
10 // This file is distributed in the hope that it will be useful,
-
11 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
12 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
13 //
-
14 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
15 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
16 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
17 //
-
18 // AUTHOR: Mark Tsuchida
-
19 
-
20 #pragma once
-
21 
-
22 #include <string>
-
23 
-
24 namespace mm {
-
25 namespace features {
-
26 
-
27 struct Flags {
-
28  bool strictInitializationChecks = false;
-
29  bool ParallelDeviceInitialization = true;
-
30  // How to add a new Core feature: see the comment in the .cpp file.
-
31 };
-
32 
-
33 namespace internal {
-
34 
-
35 extern Flags g_flags;
-
36 
-
37 }
-
38 
-
39 inline const Flags& flags() { return internal::g_flags; }
-
40 
-
41 void enableFeature(const std::string& name, bool enable);
-
42 bool isFeatureEnabled(const std::string& name);
-
43 
-
44 } // namespace features
-
45 } // namespace mm
-
Definition: CoreFeatures.h:27
+
1// PROJECT: Micro-Manager
+
2// SUBSYSTEM: MMCore
+
3//
+
4// COPYRIGHT: 2023, Board of Regents of the University of Wisconsin System
+
5// All Rights reserved
+
6//
+
7// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
8// License text is included with the source distribution.
+
9//
+
10// This file is distributed in the hope that it will be useful,
+
11// but WITHOUT ANY WARRANTY; without even the implied warranty
+
12// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
13//
+
14// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
15// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
16// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
17//
+
18// AUTHOR: Mark Tsuchida
+
19
+
20#pragma once
+
21
+
22#include <string>
+
23
+
24namespace mm {
+
25namespace features {
+
26
+
+
27struct Flags {
+
28 bool strictInitializationChecks = false;
+
29 bool ParallelDeviceInitialization = true;
+
30 // How to add a new Core feature: see the comment in the .cpp file.
+
31};
+
+
32
+
33namespace internal {
+
34
+
35extern Flags g_flags;
+
36
+
37}
+
38
+
39inline const Flags& flags() { return internal::g_flags; }
+
40
+
41void enableFeature(const std::string& name, bool enable);
+
42bool isFeatureEnabled(const std::string& name);
+
43
+
44} // namespace features
+
45} // namespace mm
+
Definition CoreFeatures.h:27
diff --git a/_core_property_8h_source.html b/_core_property_8h_source.html index 27f468b..917f1a0 100644 --- a/_core_property_8h_source.html +++ b/_core_property_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CoreProperty.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,116 +26,126 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
CoreProperty.h
+
CoreProperty.h
-
1 // FILE: CoreProperty.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Implements the "core property" mechanism. The MMCore exposes
-
7 // some of its own settings as a virtual device.
-
8 //
-
9 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 10/23/2005
-
10 //
-
11 // COPYRIGHT: University of California, San Francisco, 2006
-
12 //
-
13 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
14 // License text is included with the source distribution.
-
15 //
-
16 // This file is distributed in the hope that it will be useful,
-
17 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
18 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
19 //
-
20 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
21 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
22 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
23 //
-
24 
-
25 #pragma once
-
26 
-
27 #include <string>
-
28 #include <set>
-
29 #include <vector>
-
30 #include <map>
-
31 #include "MMEventCallback.h"
-
32 
-
33 class CMMCore;
-
34 class MMEventCallback;
-
35 
- -
37 {
-
38 public:
-
39  CoreProperty() : value_("Undefined"), readOnly_(false) {}
-
40  CoreProperty(const char* v, bool ro) : value_(v), readOnly_(ro) {}
-
41  ~CoreProperty(){}
-
42 
-
43  bool IsReadOnly()const {return readOnly_;}
-
44 
-
45  bool Set(const char* value);
-
46  std::string Get() const;
-
47 
-
48  // discrete set of allowed values
-
49  std::vector<std::string> GetAllowedValues() const;
-
50  void AddAllowedValue(const char* value);
-
51  void AddAllowedValue(const char* value, long data);
-
52  bool IsAllowed(const char* value) const;
-
53  void ClearAllowedValues() {values_.clear();}
-
54 
-
55 protected:
-
56  std::string value_;
-
57  bool readOnly_;
-
58  std::set<std::string> values_; // allowed values
-
59 };
-
60 
- -
62 {
-
63 public:
-
64  CorePropertyCollection(CMMCore* core) : core_(core) {}
- -
66 
-
67  std::string Get(const char* PropName) const;
-
68  bool Has(const char* name) const;
-
69  std::vector<std::string> GetAllowedValues(const char* propName) const;
-
70  void ClearAllowedValues(const char* propName);
-
71  void AddAllowedValue(const char* propName, const char* value);
-
72  bool IsReadOnly(const char* propName) const;
-
73  std::vector<std::string> GetNames() const;
-
74  void Add(const char* name, CoreProperty& p) {properties_[name] = p;}
-
75  void Refresh();
-
76  void Execute(const char* PropName, const char* Value);
-
77  void Set(const char* PropName, const char* Value);
-
78  void Clear() {properties_.clear();}
-
79 
-
80 private:
-
81  CMMCore* core_;
-
82  std::map<std::string, CoreProperty> properties_;
-
83 };
-
The Micro-Manager Core.
Definition: MMCore.h:135
-
Definition: CoreProperty.h:62
-
Definition: CoreProperty.h:37
-
Definition: MMEventCallback.h:28
+
1
+
2// FILE: CoreProperty.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Implements the "core property" mechanism. The MMCore exposes
+
7// some of its own settings as a virtual device.
+
8//
+
9// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 10/23/2005
+
10//
+
11// COPYRIGHT: University of California, San Francisco, 2006
+
12//
+
13// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
14// License text is included with the source distribution.
+
15//
+
16// This file is distributed in the hope that it will be useful,
+
17// but WITHOUT ANY WARRANTY; without even the implied warranty
+
18// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
19//
+
20// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
21// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
22// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
23//
+
24
+
25#pragma once
+
26
+
27#include <string>
+
28#include <set>
+
29#include <vector>
+
30#include <map>
+
31#include "MMEventCallback.h"
+
32
+
33class CMMCore;
+
34class MMEventCallback;
+
35
+
+ +
37{
+
38public:
+
39 CoreProperty() : value_("Undefined"), readOnly_(false) {}
+
40 CoreProperty(const char* v, bool ro) : value_(v), readOnly_(ro) {}
+ +
42
+
43 bool IsReadOnly()const {return readOnly_;}
+
44
+
45 bool Set(const char* value);
+
46 std::string Get() const;
+
47
+
48 // discrete set of allowed values
+
49 std::vector<std::string> GetAllowedValues() const;
+
50 void AddAllowedValue(const char* value);
+
51 void AddAllowedValue(const char* value, long data);
+
52 bool IsAllowed(const char* value) const;
+
53 void ClearAllowedValues() {values_.clear();}
+
54
+
55protected:
+
56 std::string value_;
+
57 bool readOnly_;
+
58 std::set<std::string> values_; // allowed values
+
59};
+
+
60
+
+ +
62{
+
63public:
+
64 CorePropertyCollection(CMMCore* core) : core_(core) {}
+ +
66
+
67 std::string Get(const char* PropName) const;
+
68 bool Has(const char* name) const;
+
69 std::vector<std::string> GetAllowedValues(const char* propName) const;
+
70 void ClearAllowedValues(const char* propName);
+
71 void AddAllowedValue(const char* propName, const char* value);
+
72 bool IsReadOnly(const char* propName) const;
+
73 std::vector<std::string> GetNames() const;
+
74 void Add(const char* name, CoreProperty& p) {properties_[name] = p;}
+
75 void Refresh();
+
76 void Execute(const char* PropName, const char* Value);
+
77 void Set(const char* PropName, const char* Value);
+
78 void Clear() {properties_.clear();}
+
79
+
80private:
+
81 CMMCore* core_;
+
82 std::map<std::string, CoreProperty> properties_;
+
83};
+
+
The Micro-Manager Core.
Definition MMCore.h:135
+
Definition CoreProperty.h:62
+
Definition CoreProperty.h:37
+
Definition MMEventCallback.h:28
diff --git a/_core_utils_8h_source.html b/_core_utils_8h_source.html index 2005bc8..85bc085 100644 --- a/_core_utils_8h_source.html +++ b/_core_utils_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CoreUtils.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,118 +26,124 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
CoreUtils.h
+
CoreUtils.h
-
1 // FILE: CoreUtils.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Utility classes and functions for use in MMCore
-
7 //
-
8 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 09/27/2005
-
9 //
-
10 // COPYRIGHT: University of California, San Francisco, 2006
-
11 //
-
12 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
13 // License text is included with the source distribution.
-
14 //
-
15 // This file is distributed in the hope that it will be useful,
-
16 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
17 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
18 //
-
19 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
20 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
21 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
22 //
-
23 // CVS: $Id: CoreUtils.h 16845 2018-11-30 02:19:11Z nico $
-
24 //
-
25 
-
26 #pragma once
-
27 
-
28 #include "../MMDevice/MMDevice.h"
-
29 
-
30 #include <string>
-
31 
-
32 
-
33 inline std::string ToString(int d) { return std::to_string(d); }
-
34 inline std::string ToString(long d) { return std::to_string(d); }
-
35 inline std::string ToString(long long d) { return std::to_string(d); }
-
36 inline std::string ToString(unsigned d) { return std::to_string(d); }
-
37 inline std::string ToString(unsigned long d) { return std::to_string(d); }
-
38 inline std::string ToString(unsigned long long d) { return std::to_string(d); }
-
39 inline std::string ToString(float d) { return std::to_string(d); }
-
40 inline std::string ToString(double d) { return std::to_string(d); }
-
41 inline std::string ToString(long double d) { return std::to_string(d); }
-
42 
-
43 inline std::string ToString(const std::string& d) { return d; }
-
44 
-
45 inline std::string ToString(const char* d)
-
46 {
-
47  if (!d)
-
48  return "(null)";
-
49  return d;
-
50 }
-
51 
-
52 inline std::string ToString(const MM::DeviceType d)
-
53 {
-
54  // TODO Any good way to ensure this doesn't get out of sync with the enum
-
55  // definition?
-
56  switch (d)
-
57  {
-
58  case MM::UnknownType: return "Unknown";
-
59  case MM::AnyType: return "Any";
-
60  case MM::CameraDevice: return "Camera";
-
61  case MM::ShutterDevice: return "Shutter";
-
62  case MM::StateDevice: return "State";
-
63  case MM::StageDevice: return "Stage";
-
64  case MM::XYStageDevice: return "XYStageDevice";
-
65  case MM::SerialDevice: return "Serial";
-
66  case MM::GenericDevice: return "Generic";
-
67  case MM::AutoFocusDevice: return "Autofocus";
-
68  case MM::CoreDevice: return "Core";
-
69  case MM::ImageProcessorDevice: return "ImageProcessor";
-
70  case MM::SignalIODevice: return "SignalIO";
-
71  case MM::MagnifierDevice: return "Magnifier";
-
72  case MM::SLMDevice: return "SLM";
-
73  case MM::HubDevice: return "Hub";
-
74  case MM::GalvoDevice: return "Galvo";
-
75  }
-
76  return "Invalid";
-
77 }
-
78 
-
79 template <typename T>
-
80 inline std::string ToQuotedString(const T& d)
-
81 { return "\"" + ToString(d) + "\""; }
-
82 
-
83 template <>
-
84 inline std::string ToQuotedString<const char*>(char const* const& d)
-
85 {
-
86  if (!d) // Don't quote if null
-
87  return ToString(d);
-
88  return "\"" + ToString(d) + "\"";
-
89 }
+
1
+
2// FILE: CoreUtils.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Utility classes and functions for use in MMCore
+
7//
+
8// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 09/27/2005
+
9//
+
10// COPYRIGHT: University of California, San Francisco, 2006
+
11//
+
12// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
13// License text is included with the source distribution.
+
14//
+
15// This file is distributed in the hope that it will be useful,
+
16// but WITHOUT ANY WARRANTY; without even the implied warranty
+
17// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
18//
+
19// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
20// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
21// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
22//
+
23// CVS: $Id: CoreUtils.h 16845 2018-11-30 02:19:11Z nico $
+
24//
+
25
+
26#pragma once
+
27
+
28#include "../MMDevice/MMDevice.h"
+
29
+
30#include <string>
+
31
+
32
+
33inline std::string ToString(int d) { return std::to_string(d); }
+
34inline std::string ToString(long d) { return std::to_string(d); }
+
35inline std::string ToString(long long d) { return std::to_string(d); }
+
36inline std::string ToString(unsigned d) { return std::to_string(d); }
+
37inline std::string ToString(unsigned long d) { return std::to_string(d); }
+
38inline std::string ToString(unsigned long long d) { return std::to_string(d); }
+
39inline std::string ToString(float d) { return std::to_string(d); }
+
40inline std::string ToString(double d) { return std::to_string(d); }
+
41inline std::string ToString(long double d) { return std::to_string(d); }
+
42
+
43inline std::string ToString(const std::string& d) { return d; }
+
44
+
45inline std::string ToString(const char* d)
+
46{
+
47 if (!d)
+
48 return "(null)";
+
49 return d;
+
50}
+
51
+
52inline std::string ToString(const MM::DeviceType d)
+
53{
+
54 // TODO Any good way to ensure this doesn't get out of sync with the enum
+
55 // definition?
+
56 switch (d)
+
57 {
+
58 case MM::UnknownType: return "Unknown";
+
59 case MM::AnyType: return "Any";
+
60 case MM::CameraDevice: return "Camera";
+
61 case MM::ShutterDevice: return "Shutter";
+
62 case MM::StateDevice: return "State";
+
63 case MM::StageDevice: return "Stage";
+
64 case MM::XYStageDevice: return "XYStageDevice";
+
65 case MM::SerialDevice: return "Serial";
+
66 case MM::GenericDevice: return "Generic";
+
67 case MM::AutoFocusDevice: return "Autofocus";
+
68 case MM::CoreDevice: return "Core";
+
69 case MM::ImageProcessorDevice: return "ImageProcessor";
+
70 case MM::SignalIODevice: return "SignalIO";
+
71 case MM::MagnifierDevice: return "Magnifier";
+
72 case MM::SLMDevice: return "SLM";
+
73 case MM::HubDevice: return "Hub";
+
74 case MM::GalvoDevice: return "Galvo";
+
75 }
+
76 return "Invalid";
+
77}
+
78
+
79template <typename T>
+
80inline std::string ToQuotedString(const T& d)
+
81{ return "\"" + ToString(d) + "\""; }
+
82
+
83template <>
+
84inline std::string ToQuotedString<const char*>(char const* const& d)
+
85{
+
86 if (!d) // Don't quote if null
+
87 return ToString(d);
+
88 return "\"" + ToString(d) + "\"";
+
89}
diff --git a/_device_manager_8h_source.html b/_device_manager_8h_source.html index 8dbf7be..d8f45cf 100644 --- a/_device_manager_8h_source.html +++ b/_device_manager_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: DeviceManager.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,151 +26,162 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
DeviceManager.h
+
DeviceManager.h
-
1 // DESCRIPTION: Loading/unloading and bookkeeping of device instances
-
2 //
-
3 // COPYRIGHT: University of California, San Francisco, 2006-2014
-
4 //
-
5 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
6 // License text is included with the source distribution.
-
7 //
-
8 // This file is distributed in the hope that it will be useful,
-
9 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
10 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
11 //
-
12 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
13 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
14 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
15 //
-
16 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 08/10/2005
-
17 
-
18 #pragma once
-
19 
-
20 #include "../MMDevice/MMDevice.h"
-
21 #include "../MMDevice/DeviceThreads.h"
-
22 #include "CoreUtils.h"
-
23 #include "Devices/DeviceInstance.h"
-
24 #include "Error.h"
-
25 #include "Logging/Logger.h"
-
26 
-
27 #include <map>
-
28 #include <memory>
-
29 #include <string>
-
30 #include <vector>
-
31 
-
32 class CMMCore;
-
33 class HubInstance;
-
34 class LoadedDeviceAdapter;
-
35 
-
36 
-
37 namespace mm
-
38 {
-
39 
-
40 class DeviceManager /* final */
-
41 {
-
42  // Store devices in an ordered container. We could use a map or hash map to
-
43  // retrieve by name, but the number of devices is so small that it is not
-
44  // known to be worth it.
-
45  std::vector< std::pair<std::string, std::shared_ptr<DeviceInstance> > > devices_;
-
46  typedef std::vector< std::pair<std::string, std::shared_ptr<DeviceInstance> > >::const_iterator
-
47  DeviceConstIterator;
-
48  typedef std::vector< std::pair<std::string, std::shared_ptr<DeviceInstance> > >::iterator
-
49  DeviceIterator;
-
50 
-
51  // Map raw device pointers to DeviceInstance objects, for those few places
-
52  // where we need to retrieve device information from raw pointers.
-
53  std::map< const MM::Device*, std::weak_ptr<DeviceInstance> > deviceRawPtrIndex_;
-
54 
-
55 public:
-
56  ~DeviceManager();
-
57 
-
61  std::shared_ptr<DeviceInstance>
-
62  LoadDevice(std::shared_ptr<LoadedDeviceAdapter> module,
-
63  const std::string& deviceName, const std::string& label, CMMCore* core,
-
64  mm::logging::Logger deviceLogger,
-
65  mm::logging::Logger coreLogger);
-
66 
-
70  void UnloadDevice(std::shared_ptr<DeviceInstance> device);
-
71 
-
75  void UnloadAllDevices();
-
76 
-
81  std::shared_ptr<DeviceInstance> GetDevice(const std::string& label) const;
-
82  std::shared_ptr<DeviceInstance> GetDevice(const char* label) const;
-
84 
-
89  template <class TDeviceInstance>
-
90  std::shared_ptr<TDeviceInstance>
-
91  GetDeviceOfType(std::shared_ptr<DeviceInstance> device) const
-
92  {
-
93  if (device->GetType() != TDeviceInstance::RawDeviceClass::Type)
-
94  throw CMMError("Device " + ToQuotedString(device->GetLabel()) +
-
95  " is of the wrong type for the requested operation");
-
96  return std::static_pointer_cast<TDeviceInstance>(device);
-
97  }
-
98 
-
99  template <class TDeviceInstance>
-
100  std::shared_ptr<TDeviceInstance> GetDeviceOfType(const std::string& label) const
-
101  { return GetDeviceOfType<TDeviceInstance>(GetDevice(label)); }
-
102 
-
103  template <class TDeviceInstance>
-
104  std::shared_ptr<TDeviceInstance> GetDeviceOfType(const char* label) const
-
105  { return GetDeviceOfType<TDeviceInstance>(GetDevice(label)); }
-
107 
-
111  std::shared_ptr<DeviceInstance> GetDevice(const MM::Device* rawPtr) const;
-
112 
-
116  std::vector<std::string> GetDeviceList(MM::DeviceType t = MM::AnyType) const;
-
117 
-
121  std::vector<std::string> GetLoadedPeripherals(const char* hubLabel) const;
-
122  // TODO GetLoadedPeripherals() should be a HubInstance method.
-
123 
-
130  std::shared_ptr<HubInstance> GetParentDevice(std::shared_ptr<DeviceInstance> device) const;
-
131  // TODO GetParentDevice() should be a DeviceInstance method.
-
132 };
-
133 
-
134 
-
135 // Scoped acquisition of a device's module's lock
- -
137 {
-
138  MMThreadGuard g_;
-
139 public:
-
140  explicit DeviceModuleLockGuard(std::shared_ptr<DeviceInstance> device);
-
141 };
-
142 
-
143 } // namespace mm
-
The Micro-Manager Core.
Definition: MMCore.h:135
-
Core error class. Exceptions thrown by the Core public API are of this type.
Definition: Error.h:58
-
Definition: DeviceManager.h:41
-
std::vector< std::string > GetLoadedPeripherals(const char *hubLabel) const
Get the labels of all loaded peripherals of a hub device.
Definition: DeviceManager.cpp:224
-
void UnloadDevice(std::shared_ptr< DeviceInstance > device)
Unload a device.
Definition: DeviceManager.cpp:82
-
std::shared_ptr< DeviceInstance > GetDevice(const std::string &label) const
Get a device by label.
Definition: DeviceManager.cpp:173
-
void UnloadAllDevices()
Unload all devices.
Definition: DeviceManager.cpp:101
-
std::shared_ptr< DeviceInstance > LoadDevice(std::shared_ptr< LoadedDeviceAdapter > module, const std::string &deviceName, const std::string &label, CMMCore *core, mm::logging::Logger deviceLogger, mm::logging::Logger coreLogger)
Load the specified device and assign a device label.
Definition: DeviceManager.cpp:39
-
std::shared_ptr< TDeviceInstance > GetDeviceOfType(std::shared_ptr< DeviceInstance > device) const
Get a device by label, requiring a specific type.
Definition: DeviceManager.h:91
-
std::shared_ptr< HubInstance > GetParentDevice(std::shared_ptr< DeviceInstance > device) const
Get the parent hub device of a peripheral.
Definition: DeviceManager.cpp:255
-
std::vector< std::string > GetDeviceList(MM::DeviceType t=MM::AnyType) const
Get the labels of all loaded devices of a given type.
Definition: DeviceManager.cpp:209
-
Definition: DeviceManager.h:137
+
1// DESCRIPTION: Loading/unloading and bookkeeping of device instances
+
2//
+
3// COPYRIGHT: University of California, San Francisco, 2006-2014
+
4//
+
5// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
6// License text is included with the source distribution.
+
7//
+
8// This file is distributed in the hope that it will be useful,
+
9// but WITHOUT ANY WARRANTY; without even the implied warranty
+
10// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
11//
+
12// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
13// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
14// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
15//
+
16// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 08/10/2005
+
17
+
18#pragma once
+
19
+
20#include "../MMDevice/MMDevice.h"
+
21#include "../MMDevice/DeviceThreads.h"
+
22#include "CoreUtils.h"
+
23#include "Devices/DeviceInstance.h"
+
24#include "Error.h"
+
25#include "Logging/Logger.h"
+
26
+
27#include <map>
+
28#include <memory>
+
29#include <string>
+
30#include <vector>
+
31
+
32class CMMCore;
+
33class HubInstance;
+
34class LoadedDeviceAdapter;
+
35
+
36
+
37namespace mm
+
38{
+
39
+
+
40class DeviceManager /* final */
+
41{
+
42 // Store devices in an ordered container. We could use a map or hash map to
+
43 // retrieve by name, but the number of devices is so small that it is not
+
44 // known to be worth it.
+
45 std::vector< std::pair<std::string, std::shared_ptr<DeviceInstance> > > devices_;
+
46 typedef std::vector< std::pair<std::string, std::shared_ptr<DeviceInstance> > >::const_iterator
+
47 DeviceConstIterator;
+
48 typedef std::vector< std::pair<std::string, std::shared_ptr<DeviceInstance> > >::iterator
+
49 DeviceIterator;
+
50
+
51 // Map raw device pointers to DeviceInstance objects, for those few places
+
52 // where we need to retrieve device information from raw pointers.
+
53 std::map< const MM::Device*, std::weak_ptr<DeviceInstance> > deviceRawPtrIndex_;
+
54
+
55public:
+ +
57
+
61 std::shared_ptr<DeviceInstance>
+
62 LoadDevice(std::shared_ptr<LoadedDeviceAdapter> module,
+
63 const std::string& deviceName, const std::string& label, CMMCore* core,
+
64 mm::logging::Logger deviceLogger,
+
65 mm::logging::Logger coreLogger);
+
66
+
70 void UnloadDevice(std::shared_ptr<DeviceInstance> device);
+
71
+
75 void UnloadAllDevices();
+
76
+
81 std::shared_ptr<DeviceInstance> GetDevice(const std::string& label) const;
+
82 std::shared_ptr<DeviceInstance> GetDevice(const char* label) const;
+
84
+
89 template <class TDeviceInstance>
+
90 std::shared_ptr<TDeviceInstance>
+
+
91 GetDeviceOfType(std::shared_ptr<DeviceInstance> device) const
+
92 {
+
93 if (device->GetType() != TDeviceInstance::RawDeviceClass::Type)
+
94 throw CMMError("Device " + ToQuotedString(device->GetLabel()) +
+
95 " is of the wrong type for the requested operation");
+
96 return std::static_pointer_cast<TDeviceInstance>(device);
+
97 }
+
+
98
+
99 template <class TDeviceInstance>
+
100 std::shared_ptr<TDeviceInstance> GetDeviceOfType(const std::string& label) const
+ +
102
+
103 template <class TDeviceInstance>
+
104 std::shared_ptr<TDeviceInstance> GetDeviceOfType(const char* label) const
+ +
107
+
111 std::shared_ptr<DeviceInstance> GetDevice(const MM::Device* rawPtr) const;
+
112
+
116 std::vector<std::string> GetDeviceList(MM::DeviceType t = MM::AnyType) const;
+
117
+
121 std::vector<std::string> GetLoadedPeripherals(const char* hubLabel) const;
+
122 // TODO GetLoadedPeripherals() should be a HubInstance method.
+
123
+
130 std::shared_ptr<HubInstance> GetParentDevice(std::shared_ptr<DeviceInstance> device) const;
+
131 // TODO GetParentDevice() should be a DeviceInstance method.
+
132};
+
+
133
+
134
+
135// Scoped acquisition of a device's module's lock
+
+ +
137{
+
138 MMThreadGuard g_;
+
139public:
+
140 explicit DeviceModuleLockGuard(std::shared_ptr<DeviceInstance> device);
+
141};
+
+
142
+
143} // namespace mm
+
The Micro-Manager Core.
Definition MMCore.h:135
+
Core error class. Exceptions thrown by the Core public API are of this type.
Definition Error.h:58
+
Definition DeviceManager.h:41
+
std::vector< std::string > GetLoadedPeripherals(const char *hubLabel) const
Get the labels of all loaded peripherals of a hub device.
Definition DeviceManager.cpp:224
+
void UnloadDevice(std::shared_ptr< DeviceInstance > device)
Unload a device.
Definition DeviceManager.cpp:82
+
std::shared_ptr< DeviceInstance > GetDevice(const std::string &label) const
Get a device by label.
Definition DeviceManager.cpp:173
+
void UnloadAllDevices()
Unload all devices.
Definition DeviceManager.cpp:101
+
std::shared_ptr< DeviceInstance > LoadDevice(std::shared_ptr< LoadedDeviceAdapter > module, const std::string &deviceName, const std::string &label, CMMCore *core, mm::logging::Logger deviceLogger, mm::logging::Logger coreLogger)
Load the specified device and assign a device label.
Definition DeviceManager.cpp:39
+
std::shared_ptr< TDeviceInstance > GetDeviceOfType(std::shared_ptr< DeviceInstance > device) const
Get a device by label, requiring a specific type.
Definition DeviceManager.h:91
+
std::shared_ptr< HubInstance > GetParentDevice(std::shared_ptr< DeviceInstance > device) const
Get the parent hub device of a peripheral.
Definition DeviceManager.cpp:255
+
std::vector< std::string > GetDeviceList(MM::DeviceType t=MM::AnyType) const
Get the labels of all loaded devices of a given type.
Definition DeviceManager.cpp:209
+
Definition DeviceManager.h:137
diff --git a/_error_8h_source.html b/_error_8h_source.html index ab63b5d..ca903c8 100644 --- a/_error_8h_source.html +++ b/_error_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Error.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,128 +26,135 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
Error.h
+
Error.h
-
1 // FILE: Error.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Exception class for core errors
-
7 //
-
8 // COPYRIGHT: University of California, San Francisco, 2006,
-
9 // All Rights reserved
-
10 //
-
11 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
12 // License text is included with the source distribution.
-
13 //
-
14 // This file is distributed in the hope that it will be useful,
-
15 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
16 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
17 //
-
18 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
19 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
20 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
21 //
-
22 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 09/19/2005
-
23 // Mark Tsuchida, 12/04/2013 (made chainable)
-
24 
-
25 #pragma once
-
26 
-
27 #include "ErrorCodes.h"
-
28 
-
29 #include <exception>
-
30 #include <memory>
-
31 #include <string>
-
32 
-
33 
-
35 
-
57 class CMMError : public std::exception
-
58 {
-
59 public:
-
61  typedef int Code;
-
62 
-
63  // Constructors: we consider msg to be a required argument.
-
64  //
-
65  // Both std::string versions and const char* versions are provided, so that
-
66  // .c_str() is not necessary when you have a std::string and so that we
-
67  // don't have to worry about segfaulting if a null pointer is passed (even
-
68  // though that would be a bug).
-
69 
-
71 
-
74  explicit CMMError(const std::string& msg, Code code = MMERR_GENERIC);
-
75 
-
77 
-
80  explicit CMMError(const char* msg, Code code = MMERR_GENERIC);
-
81 
-
83 
-
89  CMMError(const std::string& msg, Code code, const CMMError& underlyingError);
-
90 
-
92 
-
98  CMMError(const char* msg, Code code, const CMMError& underlyingError);
-
99 
-
101 
-
105  CMMError(const std::string& msg, const CMMError& underlyingError);
-
106 
-
108 
-
114  CMMError(const char* msg, const CMMError& underlyingError);
-
115 
-
117  CMMError(const CMMError& other);
-
118 
-
119  virtual ~CMMError() throw() {}
-
120 
-
122  virtual const char* what() const throw() { return message_.c_str(); }
-
123 
-
125  virtual std::string getMsg() const;
-
126 
-
128  virtual std::string getFullMsg() const;
-
129 
-
131  virtual Code getCode() const { return code_; }
-
132 
-
134 
-
139  virtual Code getSpecificCode() const;
-
140 
-
142 
-
150  virtual const CMMError* getUnderlyingError() const;
-
151 
-
152 private:
-
153  // Prohibit assignment. (BUG: Assignment should behave like copy ctor.)
-
154  CMMError& operator=(const CMMError&);
-
155 
-
156  std::string message_;
-
157  Code code_;
-
158  std::unique_ptr<CMMError> underlying_;
-
159 };
-
Core error class. Exceptions thrown by the Core public API are of this type.
Definition: Error.h:58
-
virtual const char * what() const
Implements std::exception interface.
Definition: Error.h:122
-
virtual std::string getMsg() const
Get the error message for this error.
Definition: Error.cpp:79
-
virtual const CMMError * getUnderlyingError() const
Access the underlying error.
Definition: Error.cpp:111
-
int Code
Error code type.
Definition: Error.h:61
-
virtual Code getCode() const
Get the error code for this error.
Definition: Error.h:131
-
virtual std::string getFullMsg() const
Get a message containing the messages from all chained errors.
Definition: Error.cpp:88
-
virtual Code getSpecificCode() const
Search the chain of underlying errors for the first specific error code.
Definition: Error.cpp:97
-
CMMError(const std::string &msg, Code code=MMERR_GENERIC)
Construct with error message and optionally an error code.
Definition: Error.cpp:29
+
1
+
2// FILE: Error.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Exception class for core errors
+
7//
+
8// COPYRIGHT: University of California, San Francisco, 2006,
+
9// All Rights reserved
+
10//
+
11// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
12// License text is included with the source distribution.
+
13//
+
14// This file is distributed in the hope that it will be useful,
+
15// but WITHOUT ANY WARRANTY; without even the implied warranty
+
16// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
17//
+
18// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
19// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
20// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
21//
+
22// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 09/19/2005
+
23// Mark Tsuchida, 12/04/2013 (made chainable)
+
24
+
25#pragma once
+
26
+
27#include "ErrorCodes.h"
+
28
+
29#include <exception>
+
30#include <memory>
+
31#include <string>
+
32
+
33
+
35
+
+
57class CMMError : public std::exception
+
58{
+
59public:
+
61 typedef int Code;
+
62
+
63 // Constructors: we consider msg to be a required argument.
+
64 //
+
65 // Both std::string versions and const char* versions are provided, so that
+
66 // .c_str() is not necessary when you have a std::string and so that we
+
67 // don't have to worry about segfaulting if a null pointer is passed (even
+
68 // though that would be a bug).
+
69
+
71
+
74 explicit CMMError(const std::string& msg, Code code = MMERR_GENERIC);
+
75
+
77
+
80 explicit CMMError(const char* msg, Code code = MMERR_GENERIC);
+
81
+
83
+
89 CMMError(const std::string& msg, Code code, const CMMError& underlyingError);
+
90
+
92
+
98 CMMError(const char* msg, Code code, const CMMError& underlyingError);
+
99
+
101
+
105 CMMError(const std::string& msg, const CMMError& underlyingError);
+
106
+
108
+
114 CMMError(const char* msg, const CMMError& underlyingError);
+
115
+
117 CMMError(const CMMError& other);
+
118
+
119 virtual ~CMMError() throw() {}
+
120
+
122 virtual const char* what() const throw() { return message_.c_str(); }
+
123
+
125 virtual std::string getMsg() const;
+
126
+
128 virtual std::string getFullMsg() const;
+
129
+
131 virtual Code getCode() const { return code_; }
+
132
+
134
+
139 virtual Code getSpecificCode() const;
+
140
+
142
+
150 virtual const CMMError* getUnderlyingError() const;
+
151
+
152private:
+
153 // Prohibit assignment. (BUG: Assignment should behave like copy ctor.)
+
154 CMMError& operator=(const CMMError&);
+
155
+
156 std::string message_;
+
157 Code code_;
+
158 std::unique_ptr<CMMError> underlying_;
+
159};
+
+
Core error class. Exceptions thrown by the Core public API are of this type.
Definition Error.h:58
+
virtual const char * what() const
Implements std::exception interface.
Definition Error.h:122
+
virtual std::string getMsg() const
Get the error message for this error.
Definition Error.cpp:79
+
virtual const CMMError * getUnderlyingError() const
Access the underlying error.
Definition Error.cpp:111
+
int Code
Error code type.
Definition Error.h:61
+
virtual Code getCode() const
Get the error code for this error.
Definition Error.h:131
+
virtual std::string getFullMsg() const
Get a message containing the messages from all chained errors.
Definition Error.cpp:88
+
virtual Code getSpecificCode() const
Search the chain of underlying errors for the first specific error code.
Definition Error.cpp:97
diff --git a/_error_codes_8h_source.html b/_error_codes_8h_source.html index 49812db..85de56b 100644 --- a/_error_codes_8h_source.html +++ b/_error_codes_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: ErrorCodes.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,110 +26,116 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
ErrorCodes.h
+
ErrorCodes.h
-
1 // FILE: ErrorCodes.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: List of error IDs
-
7 //
-
8 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 08/08/2005
-
9 //
-
10 // COPYRIGHT: University of California, San Francisco, 2006,
-
11 // All Rights reserved
-
12 //
-
13 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
14 // License text is included with the source distribution.
-
15 //
-
16 // This file is distributed in the hope that it will be useful,
-
17 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
18 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
19 //
-
20 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
21 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
22 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
23 //
-
24 // CVS: $Id: ErrorCodes.h 16603 2018-01-26 00:25:11Z nico $
-
25 //
-
26 #ifndef _ERRORCODES_H_
-
27 #define _ERRORCODES_H_
-
28 
-
29 #define MMERR_OK 0
-
30 #define MMERR_GENERIC 1 // unspecified error
-
31 #define MMERR_NoDevice 2
-
32 #define MMERR_SetPropertyFailed 3
-
33 #define MMERR_LibraryFunctionNotFound 4
-
34 #define MMERR_ModuleVersionMismatch 5
-
35 #define MMERR_DeviceVersionMismatch 6
-
36 #define MMERR_UnknownModule 7
-
37 #define MMERR_LoadLibraryFailed 8
-
38 #define MMERR_CreateFailed 9
-
39 #define MMERR_CreateNotFound 10
-
40 #define MMERR_DeleteNotFound 11
-
41 #define MMERR_DeleteFailed 12
-
42 #define MMERR_UnexpectedDevice 13
-
43 #define MMERR_DeviceUnloadFailed 14
-
44 #define MMERR_CameraNotAvailable 15
-
45 #define MMERR_DuplicateLabel 16
-
46 #define MMERR_InvalidLabel 17
-
47 #define MMERR_InvalidStateDevice 19
-
48 #define MMERR_NoConfiguration 20
-
49 #define MMERR_InvalidConfigurationIndex 21
-
50 #define MMERR_DEVICE_GENERIC 22
-
51 #define MMERR_InvalidPropertyBlock 23 // No longer used
-
52 #define MMERR_UnhandledException 24
-
53 #define MMERR_DevicePollingTimeout 25
-
54 #define MMERR_InvalidShutterDevice 26
-
55 #define MMERR_InvalidSerialDevice 27
-
56 #define MMERR_InvalidStageDevice 28
-
57 #define MMERR_InvalidSpecificDevice 29
-
58 #define MMERR_InvalidXYStageDevice 30
-
59 #define MMERR_FileOpenFailed 31
-
60 #define MMERR_InvalidCFGEntry 32
-
61 #define MMERR_InvalidContents 33
-
62 #define MMERR_InvalidCoreProperty 34
-
63 #define MMERR_InvalidCoreValue 35
-
64 #define MMERR_NoConfigGroup 36
-
65 #define MMERR_CameraBufferReadFailed 37
-
66 #define MMERR_DuplicateConfigGroup 38
-
67 #define MMERR_InvalidConfigurationFile 39
-
68 #define MMERR_CircularBufferFailedToInitialize 40
-
69 #define MMERR_CircularBufferEmpty 41
-
70 #define MMERR_ContFocusNotAvailable 42
-
71 #define MMERR_AutoFocusNotAvailable 43
-
72 #define MMERR_BadConfigName 44
-
73 #define MMERR_CircularBufferIncompatibleImage 45
-
74 #define MMERR_NotAllowedDuringSequenceAcquisition 46
-
75 #define MMERR_OutOfMemory 47
-
76 #define MMERR_InvalidImageSequence 48
-
77 #define MMERR_NullPointerException 49
-
78 #define MMERR_CreatePeripheralFailed 50
-
79 #define MMERR_PropertyNotInCache 51
-
80 #define MMERR_BadAffineTransform 52
-
81 #endif //_ERRORCODES_H_
+
1
+
2// FILE: ErrorCodes.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: List of error IDs
+
7//
+
8// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 08/08/2005
+
9//
+
10// COPYRIGHT: University of California, San Francisco, 2006,
+
11// All Rights reserved
+
12//
+
13// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
14// License text is included with the source distribution.
+
15//
+
16// This file is distributed in the hope that it will be useful,
+
17// but WITHOUT ANY WARRANTY; without even the implied warranty
+
18// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
19//
+
20// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
21// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
22// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
23//
+
24// CVS: $Id: ErrorCodes.h 16603 2018-01-26 00:25:11Z nico $
+
25//
+
26#ifndef _ERRORCODES_H_
+
27#define _ERRORCODES_H_
+
28
+
29#define MMERR_OK 0
+
30#define MMERR_GENERIC 1 // unspecified error
+
31#define MMERR_NoDevice 2
+
32#define MMERR_SetPropertyFailed 3
+
33#define MMERR_LibraryFunctionNotFound 4
+
34#define MMERR_ModuleVersionMismatch 5
+
35#define MMERR_DeviceVersionMismatch 6
+
36#define MMERR_UnknownModule 7
+
37#define MMERR_LoadLibraryFailed 8
+
38#define MMERR_CreateFailed 9
+
39#define MMERR_CreateNotFound 10
+
40#define MMERR_DeleteNotFound 11
+
41#define MMERR_DeleteFailed 12
+
42#define MMERR_UnexpectedDevice 13
+
43#define MMERR_DeviceUnloadFailed 14
+
44#define MMERR_CameraNotAvailable 15
+
45#define MMERR_DuplicateLabel 16
+
46#define MMERR_InvalidLabel 17
+
47#define MMERR_InvalidStateDevice 19
+
48#define MMERR_NoConfiguration 20
+
49#define MMERR_InvalidConfigurationIndex 21
+
50#define MMERR_DEVICE_GENERIC 22
+
51#define MMERR_InvalidPropertyBlock 23 // No longer used
+
52#define MMERR_UnhandledException 24
+
53#define MMERR_DevicePollingTimeout 25
+
54#define MMERR_InvalidShutterDevice 26
+
55#define MMERR_InvalidSerialDevice 27
+
56#define MMERR_InvalidStageDevice 28
+
57#define MMERR_InvalidSpecificDevice 29
+
58#define MMERR_InvalidXYStageDevice 30
+
59#define MMERR_FileOpenFailed 31
+
60#define MMERR_InvalidCFGEntry 32
+
61#define MMERR_InvalidContents 33
+
62#define MMERR_InvalidCoreProperty 34
+
63#define MMERR_InvalidCoreValue 35
+
64#define MMERR_NoConfigGroup 36
+
65#define MMERR_CameraBufferReadFailed 37
+
66#define MMERR_DuplicateConfigGroup 38
+
67#define MMERR_InvalidConfigurationFile 39
+
68#define MMERR_CircularBufferFailedToInitialize 40
+
69#define MMERR_CircularBufferEmpty 41
+
70#define MMERR_ContFocusNotAvailable 42
+
71#define MMERR_AutoFocusNotAvailable 43
+
72#define MMERR_BadConfigName 44
+
73#define MMERR_CircularBufferIncompatibleImage 45
+
74#define MMERR_NotAllowedDuringSequenceAcquisition 46
+
75#define MMERR_OutOfMemory 47
+
76#define MMERR_InvalidImageSequence 48
+
77#define MMERR_NullPointerException 49
+
78#define MMERR_CreatePeripheralFailed 50
+
79#define MMERR_PropertyNotInCache 51
+
80#define MMERR_BadAffineTransform 52
+
81#endif //_ERRORCODES_H_
diff --git a/_frame_buffer_8h_source.html b/_frame_buffer_8h_source.html index 5f12687..864e7a2 100644 --- a/_frame_buffer_8h_source.html +++ b/_frame_buffer_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: FrameBuffer.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,125 +26,134 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
FrameBuffer.h
+
FrameBuffer.h
-
1 // AUTHOR: Nenad Amodaj, nenad@amodaj.com
-
2 //
-
3 // COPYRIGHT: 2005 Nenad Amodaj
-
4 // 2005-2015 Regents of the University of California
-
5 // 2017 Open Imaging, Inc.
-
6 //
-
7 // LICENSE: This file is free for use, modification and distribution and
-
8 // is distributed under terms specified in the BSD license
-
9 // This file is distributed in the hope that it will be useful,
-
10 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
11 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
12 //
-
13 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
14 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
15 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
16 //
-
17 // NOTE: Imported from ADVI for use in Micro-Manager
-
18 
-
19 #pragma once
-
20 
-
21 #include "../MMDevice/ImageMetadata.h"
-
22 
-
23 #include <string>
-
24 #include <vector>
-
25 #include <map>
-
26 
-
27 namespace mm {
-
28 
-
29 class ImgBuffer
-
30 {
-
31  unsigned char* pixels_;
-
32  unsigned int width_;
-
33  unsigned int height_;
-
34  unsigned int pixDepth_;
-
35  Metadata metadata_;
-
36 
-
37 public:
-
38  ImgBuffer(unsigned xSize, unsigned ySize, unsigned pixDepth);
-
39  ~ImgBuffer();
-
40 
-
41  unsigned int Width() const {return width_;}
-
42  unsigned int Height() const {return height_;}
-
43  unsigned int Depth() const {return pixDepth_;}
-
44  void SetPixels(const void* pixArray);
-
45  const unsigned char* GetPixels() const;
-
46 
-
47  void Resize(unsigned xSize, unsigned ySize, unsigned pixDepth);
-
48  void Resize(unsigned xSize, unsigned ySize);
-
49 
-
50  void SetMetadata(const Metadata& md);
-
51  const Metadata& GetMetadata() const {return metadata_;}
-
52 
-
53 private:
-
54  ImgBuffer& operator=(const ImgBuffer&);
-
55 };
-
56 
- -
58 {
-
59  // Holds null for any unallocated channels, and is as long as need to
-
60  // contain the allocated channels.
-
61  std::vector<ImgBuffer*> channels_;
-
62  unsigned int width_;
-
63  unsigned int height_;
-
64  unsigned int depth_;
-
65 
-
66 public:
-
67  FrameBuffer(unsigned xSize, unsigned ySize, unsigned byteDepth);
-
68  FrameBuffer();
-
69  ~FrameBuffer();
-
70 
-
71  void Resize(unsigned xSize, unsigned ySize, unsigned pixDepth);
-
72  void Clear();
-
73  void Preallocate(unsigned channels);
-
74 
-
75  ImgBuffer* FindImage(unsigned channel) const;
-
76  const unsigned char* GetPixels(unsigned channel) const;
-
77  bool SetPixels(unsigned channel, const unsigned char* pixels);
-
78  unsigned Width() const {return width_;}
-
79  unsigned Height() const {return height_;}
-
80  unsigned Depth() const {return depth_;}
-
81 
-
82 private:
-
83  // The following line should be uncommented once we upgrade to
-
84  // VC++ >= 2013. (Or operator= should be declared deleted, C++11-style.)
-
85  // For the description of the standard library bug necessitating this
-
86  // workaround, see http://stackoverflow.com/a/25423089
-
87  // FrameBuffer& operator=(const FrameBuffer&);
-
88 
-
89 private:
-
90  ImgBuffer* InsertNewImage(unsigned channel);
-
91 };
-
92 
-
93 } // namespace mm
-
Definition: FrameBuffer.h:58
-
Definition: FrameBuffer.h:30
+
1// AUTHOR: Nenad Amodaj, nenad@amodaj.com
+
2//
+
3// COPYRIGHT: 2005 Nenad Amodaj
+
4// 2005-2015 Regents of the University of California
+
5// 2017 Open Imaging, Inc.
+
6//
+
7// LICENSE: This file is free for use, modification and distribution and
+
8// is distributed under terms specified in the BSD license
+
9// This file is distributed in the hope that it will be useful,
+
10// but WITHOUT ANY WARRANTY; without even the implied warranty
+
11// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
12//
+
13// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
14// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
15// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
16//
+
17// NOTE: Imported from ADVI for use in Micro-Manager
+
18
+
19#pragma once
+
20
+
21#include "../MMDevice/ImageMetadata.h"
+
22
+
23#include <string>
+
24#include <vector>
+
25#include <map>
+
26
+
27namespace mm {
+
28
+
+ +
30{
+
31 unsigned char* pixels_;
+
32 unsigned int width_;
+
33 unsigned int height_;
+
34 unsigned int pixDepth_;
+
35 Metadata metadata_;
+
36
+
37public:
+
38 ImgBuffer(unsigned xSize, unsigned ySize, unsigned pixDepth);
+
39 ~ImgBuffer();
+
40
+
41 unsigned int Width() const {return width_;}
+
42 unsigned int Height() const {return height_;}
+
43 unsigned int Depth() const {return pixDepth_;}
+
44 void SetPixels(const void* pixArray);
+
45 const unsigned char* GetPixels() const;
+
46
+
47 void Resize(unsigned xSize, unsigned ySize, unsigned pixDepth);
+
48 void Resize(unsigned xSize, unsigned ySize);
+
49
+
50 void SetMetadata(const Metadata& md);
+
51 const Metadata& GetMetadata() const {return metadata_;}
+
52
+
53private:
+
54 ImgBuffer& operator=(const ImgBuffer&);
+
55};
+
+
56
+
+ +
58{
+
59 // Holds null for any unallocated channels, and is as long as need to
+
60 // contain the allocated channels.
+
61 std::vector<ImgBuffer*> channels_;
+
62 unsigned int width_;
+
63 unsigned int height_;
+
64 unsigned int depth_;
+
65
+
66public:
+
67 FrameBuffer(unsigned xSize, unsigned ySize, unsigned byteDepth);
+ + +
70
+
71 void Resize(unsigned xSize, unsigned ySize, unsigned pixDepth);
+
72 void Clear();
+
73 void Preallocate(unsigned channels);
+
74
+
75 ImgBuffer* FindImage(unsigned channel) const;
+
76 const unsigned char* GetPixels(unsigned channel) const;
+
77 bool SetPixels(unsigned channel, const unsigned char* pixels);
+
78 unsigned Width() const {return width_;}
+
79 unsigned Height() const {return height_;}
+
80 unsigned Depth() const {return depth_;}
+
81
+
82private:
+
83 // The following line should be uncommented once we upgrade to
+
84 // VC++ >= 2013. (Or operator= should be declared deleted, C++11-style.)
+
85 // For the description of the standard library bug necessitating this
+
86 // workaround, see http://stackoverflow.com/a/25423089
+
87 // FrameBuffer& operator=(const FrameBuffer&);
+
88
+
89private:
+
90 ImgBuffer* InsertNewImage(unsigned channel);
+
91};
+
+
92
+
93} // namespace mm
+
Definition FrameBuffer.h:58
+
Definition FrameBuffer.h:30
diff --git a/_log_manager_8h_source.html b/_log_manager_8h_source.html index 2cc9aa8..29df9c9 100644 --- a/_log_manager_8h_source.html +++ b/_log_manager_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: LogManager.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,104 +26,111 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
LogManager.h
+
LogManager.h
-
1 #pragma once
-
2 
-
3 #include "Logging/Logging.h"
-
4 
-
5 #include <map>
-
6 #include <mutex>
-
7 #include <string>
-
8 
-
9 namespace mm
-
10 {
-
11 
- -
16 {
-
17 public:
-
18  typedef int LogFileHandle;
-
19 
-
20 private:
-
21  std::shared_ptr<logging::LoggingCore> loggingCore_;
-
22  logging::Logger internalLogger_;
-
23 
-
24  mutable std::mutex mutex_;
-
25 
-
26  logging::LogLevel primaryLogLevel_;
-
27 
-
28  bool usingStdErr_;
-
29  std::shared_ptr<logging::LogSink> stdErrSink_;
-
30 
-
31  std::string primaryFilename_;
-
32  std::shared_ptr<logging::LogSink> primaryFileSink_;
-
33 
-
34  LogFileHandle nextSecondaryHandle_;
-
35  struct LogFileInfo
-
36  {
-
37  std::string filename_;
-
38  std::shared_ptr<logging::LogSink> sink_;
-
39  logging::SinkMode mode_;
-
40 
-
41  LogFileInfo(const std::string& filename,
-
42  std::shared_ptr<logging::LogSink> sink,
-
43  logging::SinkMode mode) :
-
44  filename_(filename),
-
45  sink_(sink),
-
46  mode_(mode)
-
47  {}
-
48  };
-
49  std::map<LogFileHandle, LogFileInfo> secondaryLogFiles_;
-
50 
-
51  static const logging::SinkMode PrimarySinkMode;
-
52 
-
53 public:
-
54  LogManager();
-
55 
-
56  void SetUseStdErr(bool flag);
-
57  bool IsUsingStdErr() const;
-
58 
-
59  void SetPrimaryLogFilename(const std::string& filename, bool truncate);
-
60  std::string GetPrimaryLogFilename() const;
-
61  bool IsUsingPrimaryLogFile() const;
-
62 
-
63  void SetPrimaryLogLevel(logging::LogLevel level);
-
64  logging::LogLevel GetPrimaryLogLevel() const;
-
65 
-
66  LogFileHandle AddSecondaryLogFile(logging::LogLevel level,
-
67  const std::string& filename, bool truncate = true,
-
68  logging::SinkMode mode = logging::SinkModeAsynchronous);
-
69  void RemoveSecondaryLogFile(LogFileHandle handle);
-
70  // We could add an atomic SwapSecondaryLogFile(handle, filename, truncate),
-
71  // nice for log rotation, but we don't need it now.
-
72 
-
73  logging::Logger NewLogger(const std::string& label);
-
74 };
-
75 
-
76 } // namespace mm
-
Definition: LogManager.h:16
+
1#pragma once
+
2
+
3#include "Logging/Logging.h"
+
4
+
5#include <map>
+
6#include <mutex>
+
7#include <string>
+
8
+
9namespace mm
+
10{
+
11
+
+ +
16{
+
17public:
+
18 typedef int LogFileHandle;
+
19
+
20private:
+
21 std::shared_ptr<logging::LoggingCore> loggingCore_;
+
22 logging::Logger internalLogger_;
+
23
+
24 mutable std::mutex mutex_;
+
25
+
26 logging::LogLevel primaryLogLevel_;
+
27
+
28 bool usingStdErr_;
+
29 std::shared_ptr<logging::LogSink> stdErrSink_;
+
30
+
31 std::string primaryFilename_;
+
32 std::shared_ptr<logging::LogSink> primaryFileSink_;
+
33
+
34 LogFileHandle nextSecondaryHandle_;
+
35 struct LogFileInfo
+
36 {
+
37 std::string filename_;
+
38 std::shared_ptr<logging::LogSink> sink_;
+
39 logging::SinkMode mode_;
+
40
+
41 LogFileInfo(const std::string& filename,
+
42 std::shared_ptr<logging::LogSink> sink,
+
43 logging::SinkMode mode) :
+
44 filename_(filename),
+
45 sink_(sink),
+
46 mode_(mode)
+
47 {}
+
48 };
+
49 std::map<LogFileHandle, LogFileInfo> secondaryLogFiles_;
+
50
+
51 static const logging::SinkMode PrimarySinkMode;
+
52
+
53public:
+
54 LogManager();
+
55
+
56 void SetUseStdErr(bool flag);
+
57 bool IsUsingStdErr() const;
+
58
+
59 void SetPrimaryLogFilename(const std::string& filename, bool truncate);
+
60 std::string GetPrimaryLogFilename() const;
+
61 bool IsUsingPrimaryLogFile() const;
+
62
+
63 void SetPrimaryLogLevel(logging::LogLevel level);
+
64 logging::LogLevel GetPrimaryLogLevel() const;
+
65
+
66 LogFileHandle AddSecondaryLogFile(logging::LogLevel level,
+
67 const std::string& filename, bool truncate = true,
+
68 logging::SinkMode mode = logging::SinkModeAsynchronous);
+
69 void RemoveSecondaryLogFile(LogFileHandle handle);
+
70 // We could add an atomic SwapSecondaryLogFile(handle, filename, truncate),
+
71 // nice for log rotation, but we don't need it now.
+
72
+
73 logging::Logger NewLogger(const std::string& label);
+
74};
+
+
75
+
76} // namespace mm
+
Definition LogManager.h:16
diff --git a/_m_m_core_8h_source.html b/_m_m_core_8h_source.html index c6e238a..987ef16 100644 --- a/_m_m_core_8h_source.html +++ b/_m_m_core_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: MMCore.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,922 +26,930 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
MMCore.h
+
MMCore.h
-
1 // FILE: MMCore.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: The interface to the MM core services.
-
7 //
-
8 // COPYRIGHT: University of California, San Francisco, 2006-2014
-
9 // 100X Imaging Inc, www.100ximaging.com, 2008
-
10 //
-
11 // LICENSE: This library is free software; you can redistribute it and/or
-
12 // modify it under the terms of the GNU Lesser General Public
-
13 // License as published by the Free Software Foundation.
-
14 //
-
15 // You should have received a copy of the GNU Lesser General Public
-
16 // License along with the source distribution; if not, write to
-
17 // the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-
18 // Boston, MA 02111-1307 USA
-
19 //
-
20 // This file is distributed in the hope that it will be useful,
-
21 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
22 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
23 //
-
24 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
25 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
26 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
27 //
-
28 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 06/07/2005
-
29 //
-
30 // NOTES: Public methods follow a slightly different naming convention than
-
31 // the rest of the C++ code, i.e we have:
-
32 // getConfiguration();
-
33 // instead of:
-
34 // GetConfiguration();
-
35 // The alternative (lowercase function names) convention is used
-
36 // because public method names appear as wrapped methods in other
-
37 // languages, in particular Java.
-
38 
-
39 #pragma once
-
40 
-
41 /*
-
42  * Important! Read this before changing this file.
-
43  *
-
44  * Please see the version number and explanatory comment in the implementation
-
45  * file (MMCore.cpp).
-
46  */
-
47 
-
48 // We use exception specifications to instruct SWIG to generate the correct
-
49 // exception specifications for Java.
-
50 #ifdef _MSC_VER
-
51 #pragma warning(push)
-
52 #pragma warning(disable: 4290) // 'C++ exception specification ignored'
-
53 #endif
-
54 
-
55 #if defined(__GNUC__) && !defined(__clang__)
-
56 #pragma GCC diagnostic push
-
57 // 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]'
-
58 #pragma GCC diagnostic ignored "-Wdeprecated"
-
59 #endif
-
60 
-
61 #include "../MMDevice/DeviceThreads.h"
-
62 #include "../MMDevice/MMDevice.h"
-
63 #include "../MMDevice/MMDeviceConstants.h"
-
64 #include "Configuration.h"
-
65 #include "Error.h"
-
66 #include "ErrorCodes.h"
-
67 #include "Logging/Logger.h"
-
68 
-
69 #include <cstring>
-
70 #include <deque>
-
71 #include <map>
-
72 #include <memory>
-
73 #include <string>
-
74 #include <vector>
-
75 
-
76 
-
77 #if !defined(SWIGJAVA) && !defined(SWIGPYTHON)
-
78 # ifdef _MSC_VER
-
79 # define MMCORE_DEPRECATED(prototype) __declspec(deprecated) prototype
-
80 # elif defined(__GNUC__)
-
81 # define MMCORE_DEPRECATED(prototype) prototype __attribute__((deprecated))
-
82 # else
-
83 # define MMCORE_DEPRECATED(prototype) prototype
-
84 # endif
-
85 #else
-
86 # define MMCORE_DEPRECATED(prototype) prototype
-
87 #endif
-
88 
-
89 
-
90 class CPluginManager;
-
91 class CircularBuffer;
- -
93 class CoreCallback;
- -
95 class MMEventCallback;
-
96 class Metadata;
- -
98 
-
99 class AutoFocusInstance;
-
100 class CameraInstance;
-
101 class DeviceInstance;
-
102 class GalvoInstance;
-
103 class ImageProcessorInstance;
-
104 class SLMInstance;
-
105 class ShutterInstance;
-
106 class StageInstance;
-
107 class XYStageInstance;
-
108 
-
109 class CMMCore;
-
110 
-
111 namespace mm {
-
112  class DeviceManager;
-
113  class LogManager;
-
114 } // namespace mm
-
115 
-
116 typedef unsigned int* imgRGB32;
-
117 
-
118 enum DeviceInitializationState {
-
119  Uninitialized,
-
120  InitializedSuccessfully,
-
121  InitializationFailed,
-
122 };
-
123 
-
124 
-
126 
-
134 class CMMCore
-
135 {
-
136  friend class CoreCallback;
-
137  friend class CorePropertyCollection;
-
138 
-
139 public:
-
140  CMMCore();
-
141  ~CMMCore();
-
142 
-
144 
-
149  static void noop() {}
-
150 
-
153  static void enableFeature(const char* name, bool enable) throw (CMMError);
-
154  static bool isFeatureEnabled(const char* name) throw (CMMError);
-
156 
-
159  void loadDevice(const char* label, const char* moduleName,
-
160  const char* deviceName) throw (CMMError);
-
161  void unloadDevice(const char* label) throw (CMMError);
-
162  void unloadAllDevices() throw (CMMError);
-
163  void initializeAllDevices() throw (CMMError);
-
164  void initializeDevice(const char* label) throw (CMMError);
-
165  DeviceInitializationState getDeviceInitializationState(const char* label) const throw (CMMError);
-
166  void reset() throw (CMMError);
-
167 
-
168  void unloadLibrary(const char* moduleName) throw (CMMError);
-
169 
-
170  void updateCoreProperties() throw (CMMError);
-
171 
-
172  std::string getCoreErrorText(int code) const;
-
173 
-
174  std::string getVersionInfo() const;
-
175  std::string getAPIVersionInfo() const;
- -
177  void setSystemState(const Configuration& conf);
-
178  Configuration getConfigState(const char* group, const char* config) throw (CMMError);
-
179  Configuration getConfigGroupState(const char* group) throw (CMMError);
-
180  void saveSystemState(const char* fileName) throw (CMMError);
-
181  void loadSystemState(const char* fileName) throw (CMMError);
-
182  void saveSystemConfiguration(const char* fileName) throw (CMMError);
-
183  void loadSystemConfiguration(const char* fileName) throw (CMMError);
- -
186 
-
189  void setPrimaryLogFile(const char* filename, bool truncate = false) throw (CMMError);
-
190  std::string getPrimaryLogFile() const;
-
191 
-
192  void logMessage(const char* msg);
-
193  void logMessage(const char* msg, bool debugOnly);
-
194  void enableDebugLog(bool enable);
-
195  bool debugLogEnabled();
-
196  void enableStderrLog(bool enable);
-
197  bool stderrLogEnabled();
-
198 
-
199  int startSecondaryLogFile(const char* filename, bool enableDebug,
-
200  bool truncate = true, bool synchronous = false) throw (CMMError);
-
201  void stopSecondaryLogFile(int handle) throw (CMMError);
-
202 
-
204 
-
207  std::vector<std::string> getDeviceAdapterSearchPaths();
-
208  void setDeviceAdapterSearchPaths(const std::vector<std::string>& paths);
-
209 
-
210  std::vector<std::string> getDeviceAdapterNames() throw (CMMError);
-
211 
-
212  std::vector<std::string> getAvailableDevices(const char* library) throw (CMMError);
-
213  std::vector<std::string> getAvailableDeviceDescriptions(const char* library) throw (CMMError);
-
214  std::vector<long> getAvailableDeviceTypes(const char* library) throw (CMMError);
-
216 
-
222  std::vector<std::string> getLoadedDevices() const;
-
223  std::vector<std::string> getLoadedDevicesOfType(MM::DeviceType devType) const;
-
224  MM::DeviceType getDeviceType(const char* label) throw (CMMError);
-
225  std::string getDeviceLibrary(const char* label) throw (CMMError);
-
226  std::string getDeviceName(const char* label) throw (CMMError);
-
227  std::string getDeviceDescription(const char* label) throw (CMMError);
-
228 
-
229  std::vector<std::string> getDevicePropertyNames(const char* label) throw (CMMError);
-
230  bool hasProperty(const char* label, const char* propName) throw (CMMError);
-
231  std::string getProperty(const char* label, const char* propName) throw (CMMError);
-
232  void setProperty(const char* label, const char* propName, const char* propValue) throw (CMMError);
-
233  void setProperty(const char* label, const char* propName, const bool propValue) throw (CMMError);
-
234  void setProperty(const char* label, const char* propName, const long propValue) throw (CMMError);
-
235  void setProperty(const char* label, const char* propName, const float propValue) throw (CMMError);
-
236  void setProperty(const char* label, const char* propName, const double propValue) throw (CMMError);
-
237 
-
238  std::vector<std::string> getAllowedPropertyValues(const char* label, const char* propName) throw (CMMError);
-
239  bool isPropertyReadOnly(const char* label, const char* propName) throw (CMMError);
-
240  bool isPropertyPreInit(const char* label, const char* propName) throw (CMMError);
-
241  bool isPropertySequenceable(const char* label, const char* propName) throw (CMMError);
-
242  bool hasPropertyLimits(const char* label, const char* propName) throw (CMMError);
-
243  double getPropertyLowerLimit(const char* label, const char* propName) throw (CMMError);
-
244  double getPropertyUpperLimit(const char* label, const char* propName) throw (CMMError);
-
245  MM::PropertyType getPropertyType(const char* label, const char* propName) throw (CMMError);
-
246 
-
247  void startPropertySequence(const char* label, const char* propName) throw (CMMError);
-
248  void stopPropertySequence(const char* label, const char* propName) throw (CMMError);
-
249  long getPropertySequenceMaxLength(const char* label, const char* propName) throw (CMMError);
-
250  void loadPropertySequence(const char* label, const char* propName, std::vector<std::string> eventSequence) throw (CMMError);
-
251 
-
252  bool deviceBusy(const char* label) throw (CMMError);
-
253  void waitForDevice(const char* label) throw (CMMError);
-
254  void waitForConfig(const char* group, const char* configName) throw (CMMError);
-
255  bool systemBusy() throw (CMMError);
-
256  void waitForSystem() throw (CMMError);
-
257  bool deviceTypeBusy(MM::DeviceType devType) throw (CMMError);
-
258  void waitForDeviceType(MM::DeviceType devType) throw (CMMError);
-
259 
-
260  double getDeviceDelayMs(const char* label) throw (CMMError);
-
261  void setDeviceDelayMs(const char* label, double delayMs) throw (CMMError);
-
262  bool usesDeviceDelay(const char* label) throw (CMMError);
-
263 
-
264  void setTimeoutMs(long timeoutMs) {if (timeoutMs > 0) timeoutMs_ = timeoutMs;}
-
265  long getTimeoutMs() { return timeoutMs_;}
-
266 
-
267  void sleep(double intervalMs) const;
-
269 
-
272  std::string getCameraDevice();
-
273  std::string getShutterDevice();
-
274  std::string getFocusDevice();
-
275  std::string getXYStageDevice();
-
276  std::string getAutoFocusDevice();
-
277  std::string getImageProcessorDevice();
-
278  std::string getSLMDevice();
-
279  std::string getGalvoDevice();
-
280  std::string getChannelGroup();
-
281  void setCameraDevice(const char* cameraLabel) throw (CMMError);
-
282  void setShutterDevice(const char* shutterLabel) throw (CMMError);
-
283  void setFocusDevice(const char* focusLabel) throw (CMMError);
-
284  void setXYStageDevice(const char* xyStageLabel) throw (CMMError);
-
285  void setAutoFocusDevice(const char* focusLabel) throw (CMMError);
-
286  void setImageProcessorDevice(const char* procLabel) throw (CMMError);
-
287  void setSLMDevice(const char* slmLabel) throw (CMMError);
-
288  void setGalvoDevice(const char* galvoLabel) throw (CMMError);
-
289  void setChannelGroup(const char* channelGroup) throw (CMMError);
-
291 
- -
299  void updateSystemStateCache();
-
300  std::string getPropertyFromCache(const char* deviceLabel,
-
301  const char* propName) const throw (CMMError);
-
302  std::string getCurrentConfigFromCache(const char* groupName) throw (CMMError);
-
303  Configuration getConfigGroupStateFromCache(const char* group) throw (CMMError);
-
305 
-
308  void defineConfig(const char* groupName, const char* configName) throw (CMMError);
-
309  void defineConfig(const char* groupName, const char* configName,
-
310  const char* deviceLabel, const char* propName,
-
311  const char* value) throw (CMMError);
-
312  void defineConfigGroup(const char* groupName) throw (CMMError);
-
313  void deleteConfigGroup(const char* groupName) throw (CMMError);
-
314  void renameConfigGroup(const char* oldGroupName,
-
315  const char* newGroupName) throw (CMMError);
-
316  bool isGroupDefined(const char* groupName);
-
317  bool isConfigDefined(const char* groupName, const char* configName);
-
318  void setConfig(const char* groupName, const char* configName) throw (CMMError);
-
319  void deleteConfig(const char* groupName, const char* configName) throw (CMMError);
-
320  void deleteConfig(const char* groupName, const char* configName,
-
321  const char* deviceLabel, const char* propName) throw (CMMError);
-
322  void renameConfig(const char* groupName, const char* oldConfigName,
-
323  const char* newConfigName) throw (CMMError);
-
324  std::vector<std::string> getAvailableConfigGroups() const;
-
325  std::vector<std::string> getAvailableConfigs(const char* configGroup) const;
-
326  std::string getCurrentConfig(const char* groupName) throw (CMMError);
-
327  Configuration getConfigData(const char* configGroup,
-
328  const char* configName) throw (CMMError);
-
330 
-
333  std::string getCurrentPixelSizeConfig() throw (CMMError);
-
334  std::string getCurrentPixelSizeConfig(bool cached) throw (CMMError);
-
335  double getPixelSizeUm();
-
336  double getPixelSizeUm(bool cached);
-
337  double getPixelSizeUmByID(const char* resolutionID) throw (CMMError);
-
338  std::vector<double> getPixelSizeAffine() throw (CMMError);
-
339  std::vector<double> getPixelSizeAffine(bool cached) throw (CMMError);
-
340  std::vector<double> getPixelSizeAffineByID(const char* resolutionID) throw (CMMError);
-
341  double getMagnificationFactor() const;
-
342  void setPixelSizeUm(const char* resolutionID, double pixSize) throw (CMMError);
-
343  void setPixelSizeAffine(const char* resolutionID, std::vector<double> affine) throw (CMMError);
-
344  void definePixelSizeConfig(const char* resolutionID,
-
345  const char* deviceLabel, const char* propName,
-
346  const char* value) throw (CMMError);
-
347  void definePixelSizeConfig(const char* resolutionID) throw (CMMError);
-
348  std::vector<std::string> getAvailablePixelSizeConfigs() const;
-
349  bool isPixelSizeConfigDefined(const char* resolutionID) const throw (CMMError);
-
350  void setPixelSizeConfig(const char* resolutionID) throw (CMMError);
-
351  void renamePixelSizeConfig(const char* oldConfigName,
-
352  const char* newConfigName) throw (CMMError);
-
353  void deletePixelSizeConfig(const char* configName) throw (CMMError);
-
354  Configuration getPixelSizeConfigData(const char* configName) throw (CMMError);
-
356 
-
359  void setROI(int x, int y, int xSize, int ySize) throw (CMMError);
-
360  void setROI(const char* label, int x, int y, int xSize, int ySize) throw (CMMError);
-
361  void getROI(int& x, int& y, int& xSize, int& ySize) throw (CMMError);
-
362  void getROI(const char* label, int& x, int& y, int& xSize, int& ySize) throw (CMMError);
-
363  void clearROI() throw (CMMError);
-
364 
-
365  bool isMultiROISupported() throw (CMMError);
-
366  bool isMultiROIEnabled() throw (CMMError);
-
367  void setMultiROI(std::vector<unsigned> xs, std::vector<unsigned> ys,
-
368  std::vector<unsigned> widths,
-
369  std::vector<unsigned> heights) throw (CMMError);
-
370  void getMultiROI(std::vector<unsigned>& xs, std::vector<unsigned>& ys,
-
371  std::vector<unsigned>& widths,
-
372  std::vector<unsigned>& heights) throw (CMMError);
-
373 
-
374  void setExposure(double exp) throw (CMMError);
-
375  void setExposure(const char* cameraLabel, double dExp) throw (CMMError);
-
376  double getExposure() throw (CMMError);
-
377  double getExposure(const char* label) throw (CMMError);
-
378 
-
379  void snapImage() throw (CMMError);
-
380  void* getImage() throw (CMMError);
-
381  void* getImage(unsigned numChannel) throw (CMMError);
-
382 
-
383  unsigned getImageWidth();
-
384  unsigned getImageHeight();
-
385  unsigned getBytesPerPixel();
-
386  unsigned getImageBitDepth();
-
387  unsigned getNumberOfComponents();
-
388  unsigned getNumberOfCameraChannels();
-
389  std::string getCameraChannelName(unsigned int channelNr);
-
390  long getImageBufferSize();
-
391 
-
392  void setAutoShutter(bool state);
-
393  bool getAutoShutter();
-
394  void setShutterOpen(bool state) throw (CMMError);
-
395  bool getShutterOpen() throw (CMMError);
-
396  void setShutterOpen(const char* shutterLabel, bool state) throw (CMMError);
-
397  bool getShutterOpen(const char* shutterLabel) throw (CMMError);
-
398 
-
399  void startSequenceAcquisition(long numImages, double intervalMs,
-
400  bool stopOnOverflow) throw (CMMError);
-
401  void startSequenceAcquisition(const char* cameraLabel, long numImages,
-
402  double intervalMs, bool stopOnOverflow) throw (CMMError);
-
403  void prepareSequenceAcquisition(const char* cameraLabel) throw (CMMError);
-
404  void startContinuousSequenceAcquisition(double intervalMs) throw (CMMError);
-
405  void stopSequenceAcquisition() throw (CMMError);
-
406  void stopSequenceAcquisition(const char* cameraLabel) throw (CMMError);
-
407  bool isSequenceRunning() throw ();
-
408  bool isSequenceRunning(const char* cameraLabel) throw (CMMError);
-
409 
-
410  void* getLastImage() throw (CMMError);
-
411  void* popNextImage() throw (CMMError);
-
412  void* getLastImageMD(unsigned channel, unsigned slice, Metadata& md)
-
413  const throw (CMMError);
-
414  void* popNextImageMD(unsigned channel, unsigned slice, Metadata& md)
-
415  throw (CMMError);
-
416  void* getLastImageMD(Metadata& md) const throw (CMMError);
-
417  void* getNBeforeLastImageMD(unsigned long n, Metadata& md)
-
418  const throw (CMMError);
-
419  void* popNextImageMD(Metadata& md) throw (CMMError);
-
420 
-
421  long getRemainingImageCount();
-
422  long getBufferTotalCapacity();
-
423  long getBufferFreeCapacity();
-
424  bool isBufferOverflowed() const;
-
425  void setCircularBufferMemoryFootprint(unsigned sizeMB) throw (CMMError);
- -
427  void initializeCircularBuffer() throw (CMMError);
-
428  void clearCircularBuffer() throw (CMMError);
-
429 
-
430  bool isExposureSequenceable(const char* cameraLabel) throw (CMMError);
-
431  void startExposureSequence(const char* cameraLabel) throw (CMMError);
-
432  void stopExposureSequence(const char* cameraLabel) throw (CMMError);
-
433  long getExposureSequenceMaxLength(const char* cameraLabel) throw (CMMError);
-
434  void loadExposureSequence(const char* cameraLabel,
-
435  std::vector<double> exposureSequence_ms) throw (CMMError);
-
437 
-
440  double getLastFocusScore();
-
441  double getCurrentFocusScore();
-
442  void enableContinuousFocus(bool enable) throw (CMMError);
-
443  bool isContinuousFocusEnabled() throw (CMMError);
-
444  bool isContinuousFocusLocked() throw (CMMError);
-
445  bool isContinuousFocusDrive(const char* stageLabel) throw (CMMError);
-
446  void fullFocus() throw (CMMError);
-
447  void incrementalFocus() throw (CMMError);
-
448  void setAutoFocusOffset(double offset) throw (CMMError);
-
449  double getAutoFocusOffset() throw (CMMError);
-
451 
-
454  void setState(const char* stateDeviceLabel, long state) throw (CMMError);
-
455  long getState(const char* stateDeviceLabel) throw (CMMError);
-
456  long getNumberOfStates(const char* stateDeviceLabel);
-
457  void setStateLabel(const char* stateDeviceLabel,
-
458  const char* stateLabel) throw (CMMError);
-
459  std::string getStateLabel(const char* stateDeviceLabel) throw (CMMError);
-
460  void defineStateLabel(const char* stateDeviceLabel,
-
461  long state, const char* stateLabel) throw (CMMError);
-
462  std::vector<std::string> getStateLabels(const char* stateDeviceLabel)
-
463  throw (CMMError);
-
464  long getStateFromLabel(const char* stateDeviceLabel,
-
465  const char* stateLabel) throw (CMMError);
-
467 
-
470  void setPosition(const char* stageLabel, double position) throw (CMMError);
-
471  void setPosition(double position) throw (CMMError);
-
472  double getPosition(const char* stageLabel) throw (CMMError);
-
473  double getPosition() throw (CMMError);
-
474  void setRelativePosition(const char* stageLabel, double d) throw (CMMError);
-
475  void setRelativePosition(double d) throw (CMMError);
-
476  void setOrigin(const char* stageLabel) throw (CMMError);
-
477  void setOrigin() throw (CMMError);
-
478  void setAdapterOrigin(const char* stageLabel, double newZUm) throw (CMMError);
-
479  void setAdapterOrigin(double newZUm) throw (CMMError);
-
480 
-
481  void setFocusDirection(const char* stageLabel, int sign);
-
482  int getFocusDirection(const char* stageLabel) throw (CMMError);
-
483 
-
484  bool isStageSequenceable(const char* stageLabel) throw (CMMError);
-
485  bool isStageLinearSequenceable(const char* stageLabel) throw (CMMError);
-
486  void startStageSequence(const char* stageLabel) throw (CMMError);
-
487  void stopStageSequence(const char* stageLabel) throw (CMMError);
-
488  long getStageSequenceMaxLength(const char* stageLabel) throw (CMMError);
-
489  void loadStageSequence(const char* stageLabel,
-
490  std::vector<double> positionSequence) throw (CMMError);
-
491  void setStageLinearSequence(const char* stageLabel, double dZ_um, int nSlices) throw (CMMError);
-
493 
-
496  void setXYPosition(const char* xyStageLabel,
-
497  double x, double y) throw (CMMError);
-
498  void setXYPosition(double x, double y) throw (CMMError);
-
499  void setRelativeXYPosition(const char* xyStageLabel,
-
500  double dx, double dy) throw (CMMError);
-
501  void setRelativeXYPosition(double dx, double dy) throw (CMMError);
-
502  void getXYPosition(const char* xyStageLabel,
-
503  double &x_stage, double &y_stage) throw (CMMError);
-
504  void getXYPosition(double &x_stage, double &y_stage) throw (CMMError);
-
505  double getXPosition(const char* xyStageLabel) throw (CMMError);
-
506  double getYPosition(const char* xyStageLabel) throw (CMMError);
-
507  double getXPosition() throw (CMMError);
-
508  double getYPosition() throw (CMMError);
-
509  void stop(const char* xyOrZStageLabel) throw (CMMError);
-
510  void home(const char* xyOrZStageLabel) throw (CMMError);
-
511  void setOriginXY(const char* xyStageLabel) throw (CMMError);
-
512  void setOriginXY() throw (CMMError);
-
513  void setOriginX(const char* xyStageLabel) throw (CMMError);
-
514  void setOriginX() throw (CMMError);
-
515  void setOriginY(const char* xyStageLabel) throw (CMMError);
-
516  void setOriginY() throw (CMMError);
-
517  void setAdapterOriginXY(const char* xyStageLabel,
-
518  double newXUm, double newYUm) throw (CMMError);
-
519  void setAdapterOriginXY(double newXUm, double newYUm) throw (CMMError);
-
520 
-
521  bool isXYStageSequenceable(const char* xyStageLabel) throw (CMMError);
-
522  void startXYStageSequence(const char* xyStageLabel) throw (CMMError);
-
523  void stopXYStageSequence(const char* xyStageLabel) throw (CMMError);
-
524  long getXYStageSequenceMaxLength(const char* xyStageLabel) throw (CMMError);
-
525  void loadXYStageSequence(const char* xyStageLabel,
-
526  std::vector<double> xSequence,
-
527  std::vector<double> ySequence) throw (CMMError);
-
529 
-
532  void setSerialProperties(const char* portName,
-
533  const char* answerTimeout,
-
534  const char* baudRate,
-
535  const char* delayBetweenCharsMs,
-
536  const char* handshaking,
-
537  const char* parity,
-
538  const char* stopBits) throw (CMMError);
-
539 
-
540  void setSerialPortCommand(const char* portLabel, const char* command,
-
541  const char* term) throw (CMMError);
-
542  std::string getSerialPortAnswer(const char* portLabel,
-
543  const char* term) throw (CMMError);
-
544  void writeToSerialPort(const char* portLabel,
-
545  const std::vector<char> &data) throw (CMMError);
-
546  std::vector<char> readFromSerialPort(const char* portLabel)
-
547  throw (CMMError);
-
549 
-
556  void setSLMImage(const char* slmLabel,
-
557  unsigned char * pixels) throw (CMMError);
-
558  void setSLMImage(const char* slmLabel, imgRGB32 pixels) throw (CMMError);
-
559  void setSLMPixelsTo(const char* slmLabel,
-
560  unsigned char intensity) throw (CMMError);
-
561  void setSLMPixelsTo(const char* slmLabel,
-
562  unsigned char red, unsigned char green,
-
563  unsigned char blue) throw (CMMError);
-
564  void displaySLMImage(const char* slmLabel) throw (CMMError);
-
565  void setSLMExposure(const char* slmLabel, double exposure_ms)
-
566  throw (CMMError);
-
567  double getSLMExposure(const char* slmLabel) throw (CMMError);
-
568  unsigned getSLMWidth(const char* slmLabel) throw (CMMError);
-
569  unsigned getSLMHeight(const char* slmLabel) throw (CMMError);
-
570  unsigned getSLMNumberOfComponents(const char* slmLabel) throw (CMMError);
-
571  unsigned getSLMBytesPerPixel(const char* slmLabel) throw (CMMError);
-
572 
-
573  long getSLMSequenceMaxLength(const char* slmLabel) throw (CMMError);
-
574  void startSLMSequence(const char* slmLabel) throw (CMMError);
-
575  void stopSLMSequence(const char* slmLabel) throw (CMMError);
-
576  void loadSLMSequence(const char* slmLabel,
-
577  std::vector<unsigned char*> imageSequence) throw (CMMError);
-
579 
-
585  void pointGalvoAndFire(const char* galvoLabel, double x, double y,
-
586  double pulseTime_us) throw (CMMError);
-
587  void setGalvoSpotInterval(const char* galvoLabel,
-
588  double pulseTime_us) throw (CMMError);
-
589  void setGalvoPosition(const char* galvoLabel, double x, double y)
-
590  throw (CMMError);
-
591  void getGalvoPosition(const char* galvoLabel,
-
592  double &x_stage, double &y_stage) throw (CMMError); // using x_stage to get swig to work
-
593  void setGalvoIlluminationState(const char* galvoLabel, bool on)
-
594  throw (CMMError);
-
595  double getGalvoXRange(const char* galvoLabel) throw (CMMError);
-
596  double getGalvoXMinimum(const char* galvoLabel) throw (CMMError);
-
597  double getGalvoYRange(const char* galvoLabel) throw (CMMError);
-
598  double getGalvoYMinimum(const char* galvoLabel) throw (CMMError);
-
599  void addGalvoPolygonVertex(const char* galvoLabel, int polygonIndex,
-
600  double x, double y) throw (CMMError);
-
601  void deleteGalvoPolygons(const char* galvoLabel) throw (CMMError);
-
602  void loadGalvoPolygons(const char* galvoLabel) throw (CMMError);
-
603  void setGalvoPolygonRepetitions(const char* galvoLabel, int repetitions)
-
604  throw (CMMError);
-
605  void runGalvoPolygons(const char* galvoLabel) throw (CMMError);
-
606  void runGalvoSequence(const char* galvoLabel) throw (CMMError);
-
607  std::string getGalvoChannel(const char* galvoLabel) throw (CMMError);
-
609 
-
612  bool supportsDeviceDetection(const char* deviceLabel);
-
613  MM::DeviceDetectionStatus detectDevice(const char* deviceLabel);
-
615 
-
618  std::string getParentLabel(const char* peripheralLabel) throw (CMMError);
-
619  void setParentLabel(const char* deviceLabel,
-
620  const char* parentHubLabel) throw (CMMError);
-
621 
-
622  std::vector<std::string> getInstalledDevices(const char* hubLabel) throw (CMMError);
-
623  std::string getInstalledDeviceDescription(const char* hubLabel,
-
624  const char* peripheralLabel) throw (CMMError);
-
625  std::vector<std::string> getLoadedPeripheralDevices(const char* hubLabel) throw (CMMError);
-
627 
-
628 private:
-
629  // make object non-copyable
-
630  CMMCore(const CMMCore&);
-
631  CMMCore& operator=(const CMMCore&);
-
632 
-
633 private:
-
634  // LogManager should be the first data member, so that it is available for
-
635  // as long as possible during construction and (especially) destruction.
-
636  std::shared_ptr<mm::LogManager> logManager_;
-
637  mm::logging::Logger appLogger_;
-
638  mm::logging::Logger coreLogger_;
-
639 
-
640  bool everSnapped_;
-
641 
-
642  std::weak_ptr<CameraInstance> currentCameraDevice_;
-
643  std::weak_ptr<ShutterInstance> currentShutterDevice_;
-
644  std::weak_ptr<StageInstance> currentFocusDevice_;
-
645  std::weak_ptr<XYStageInstance> currentXYStageDevice_;
-
646  std::weak_ptr<AutoFocusInstance> currentAutofocusDevice_;
-
647  std::weak_ptr<SLMInstance> currentSLMDevice_;
-
648  std::weak_ptr<GalvoInstance> currentGalvoDevice_;
-
649  std::weak_ptr<ImageProcessorInstance> currentImageProcessor_;
-
650 
-
651  std::string channelGroup_;
-
652  long pollingIntervalMs_;
-
653  long timeoutMs_;
-
654  bool autoShutter_;
-
655  std::vector<double> *nullAffine_;
-
656  MM::Core* callback_; // core services for devices
-
657  ConfigGroupCollection* configGroups_;
-
658  CorePropertyCollection* properties_;
-
659  MMEventCallback* externalCallback_; // notification hook to the higher layer (e.g. GUI)
-
660  PixelSizeConfigGroup* pixelSizeGroup_;
-
661  CircularBuffer* cbuf_;
-
662 
-
663  std::shared_ptr<CPluginManager> pluginManager_;
-
664  std::shared_ptr<mm::DeviceManager> deviceManager_;
-
665  std::map<int, std::string> errorText_;
-
666 
-
667  // Must be unlocked when calling MMEventCallback or calling device methods
-
668  // or acquiring a module lock
-
669  mutable MMThreadLock stateCacheLock_;
-
670  mutable Configuration stateCache_; // Synchronized by stateCacheLock_
-
671 
-
672  MMThreadLock* pPostedErrorsLock_;
-
673  mutable std::deque<std::pair< int, std::string> > postedErrors_;
-
674 
-
675 private:
-
676  void InitializeErrorMessages();
-
677  void CreateCoreProperties();
-
678 
-
679  // Parameter/value validation
-
680  static void CheckDeviceLabel(const char* label) throw (CMMError);
-
681  static void CheckPropertyName(const char* propName) throw (CMMError);
-
682  static void CheckPropertyValue(const char* propValue) throw (CMMError);
-
683  static void CheckStateLabel(const char* stateLabel) throw (CMMError);
-
684  static void CheckConfigGroupName(const char* groupName) throw (CMMError);
-
685  static void CheckConfigPresetName(const char* presetName) throw (CMMError);
-
686  bool IsCoreDeviceLabel(const char* label) const throw (CMMError);
-
687 
-
688  void applyConfiguration(const Configuration& config) throw (CMMError);
-
689  int applyProperties(std::vector<PropertySetting>& props, std::string& lastError);
-
690  void waitForDevice(std::shared_ptr<DeviceInstance> pDev) throw (CMMError);
-
691  Configuration getConfigGroupState(const char* group, bool fromCache) throw (CMMError);
-
692  std::string getDeviceErrorText(int deviceCode, std::shared_ptr<DeviceInstance> pDevice);
-
693  std::string getDeviceName(std::shared_ptr<DeviceInstance> pDev);
-
694  void logError(const char* device, const char* msg);
-
695  void updateAllowedChannelGroups();
-
696  void assignDefaultRole(std::shared_ptr<DeviceInstance> pDev);
-
697  void updateCoreProperty(const char* propName, MM::DeviceType devType) throw (CMMError);
-
698  void loadSystemConfigurationImpl(const char* fileName) throw (CMMError);
-
699  void initializeAllDevicesSerial() throw (CMMError);
-
700  void initializeAllDevicesParallel() throw (CMMError);
-
701  int initializeVectorOfDevices(std::vector<std::pair<std::shared_ptr<DeviceInstance>, std::string> > pDevices);
-
702 };
-
703 
-
704 #if defined(__GNUC__) && !defined(__clang__)
-
705 #pragma GCC diagnostic pop
-
706 #endif
-
707 
-
708 #ifdef _MSC_VER
-
709 #pragma warning(pop)
-
710 #endif
-
The Micro-Manager Core.
Definition: MMCore.h:135
-
void loadSystemState(const char *fileName)
Definition: MMCore.cpp:6412
-
long getStageSequenceMaxLength(const char *stageLabel)
Definition: MMCore.cpp:2306
-
void updateCoreProperties()
Definition: MMCore.cpp:1036
-
std::string getStateLabel(const char *stateDeviceLabel)
Definition: MMCore.cpp:4794
-
long getXYStageSequenceMaxLength(const char *xyStageLabel)
Definition: MMCore.cpp:2437
-
bool hasPropertyLimits(const char *label, const char *propName)
Definition: MMCore.cpp:4011
-
std::string getAutoFocusDevice()
Definition: MMCore.cpp:3373
-
CMMCore()
Definition: MMCore.cpp:127
-
void setPixelSizeAffine(const char *resolutionID, std::vector< double > affine)
Definition: MMCore.cpp:5092
-
void fullFocus()
Definition: MMCore.cpp:7092
-
std::vector< std::string > getAllowedPropertyValues(const char *label, const char *propName)
Definition: MMCore.cpp:3755
-
void enableDebugLog(bool enable)
Definition: MMCore.cpp:292
-
Configuration getConfigGroupState(const char *group)
Definition: MMCore.cpp:534
-
long getBufferTotalCapacity()
Definition: MMCore.cpp:3284
-
unsigned getSLMWidth(const char *slmLabel)
Definition: MMCore.cpp:5962
-
std::vector< std::string > getInstalledDevices(const char *hubLabel)
Definition: MMCore.cpp:7685
-
std::string getFocusDevice()
Definition: MMCore.cpp:3347
-
double getMagnificationFactor() const
Definition: MMCore.cpp:5683
-
void enableContinuousFocus(bool enable)
Definition: MMCore.cpp:7008
-
void runGalvoSequence(const char *galvoLabel)
Definition: MMCore.cpp:6342
-
void deleteGalvoPolygons(const char *galvoLabel)
Definition: MMCore.cpp:6264
-
void stopXYStageSequence(const char *xyStageLabel)
Definition: MMCore.cpp:2419
-
void stopSecondaryLogFile(int handle)
Definition: MMCore.cpp:359
-
double getPropertyLowerLimit(const char *label, const char *propName)
Definition: MMCore.cpp:3981
-
void home(const char *xyOrZStageLabel)
Definition: MMCore.cpp:1780
-
void runGalvoPolygons(const char *galvoLabel)
Definition: MMCore.cpp:6323
-
void setConfig(const char *groupName, const char *configName)
Definition: MMCore.cpp:5154
-
std::string getChannelGroup()
Definition: MMCore.cpp:3558
-
unsigned getNumberOfCameraChannels()
Definition: MMCore.cpp:4254
-
double getPosition()
Definition: MMCore.cpp:1548
-
bool isMultiROISupported()
Definition: MMCore.cpp:4560
-
void setAdapterOriginXY(const char *xyStageLabel, double newXUm, double newYUm)
Definition: MMCore.cpp:2015
-
bool isBufferOverflowed() const
Definition: MMCore.cpp:3310
-
void loadSystemConfiguration(const char *fileName)
Definition: MMCore.cpp:6670
-
void startPropertySequence(const char *label, const char *propName)
Definition: MMCore.cpp:4062
-
void enableStderrLog(bool enable)
Definition: MMCore.cpp:310
-
std::vector< double > getPixelSizeAffine()
Definition: MMCore.cpp:5595
-
std::string getSLMDevice()
Definition: MMCore.cpp:3426
-
void writeToSerialPort(const char *portLabel, const std::vector< char > &data)
Definition: MMCore.cpp:5799
-
void setXYStageDevice(const char *xyStageLabel)
Definition: MMCore.cpp:3641
-
void getMultiROI(std::vector< unsigned > &xs, std::vector< unsigned > &ys, std::vector< unsigned > &widths, std::vector< unsigned > &heights)
Definition: MMCore.cpp:4630
-
void startStageSequence(const char *stageLabel)
Definition: MMCore.cpp:2271
-
void setSystemState(const Configuration &conf)
Definition: MMCore.cpp:607
-
void getGalvoPosition(const char *galvoLabel, double &x_stage, double &y_stage)
Definition: MMCore.cpp:6157
-
void setSLMDevice(const char *slmLabel)
Definition: MMCore.cpp:3478
-
void setOriginXY()
Definition: MMCore.cpp:1855
-
void setGalvoDevice(const char *galvoLabel)
Definition: MMCore.cpp:3503
-
void loadDevice(const char *label, const char *moduleName, const char *deviceName)
Definition: MMCore.cpp:673
-
void stopSequenceAcquisition()
Definition: MMCore.cpp:3002
-
~CMMCore()
Definition: MMCore.cpp:168
-
void displaySLMImage(const char *slmLabel)
Definition: MMCore.cpp:5912
-
unsigned getSLMHeight(const char *slmLabel)
Definition: MMCore.cpp:5977
-
void setPosition(const char *stageLabel, double position)
Definition: MMCore.cpp:1462
-
void snapImage()
Definition: MMCore.cpp:2492
-
void stopExposureSequence(const char *cameraLabel)
Definition: MMCore.cpp:2155
-
unsigned getBytesPerPixel()
Definition: MMCore.cpp:4186
-
void startSequenceAcquisition(long numImages, double intervalMs, bool stopOnOverflow)
Definition: MMCore.cpp:2813
-
void setFocusDevice(const char *focusLabel)
Definition: MMCore.cpp:3617
-
bool debugLogEnabled()
Definition: MMCore.cpp:301
-
void definePixelSizeConfig(const char *resolutionID, const char *deviceLabel, const char *propName, const char *value)
Definition: MMCore.cpp:5025
-
long getExposureSequenceMaxLength(const char *cameraLabel)
Definition: MMCore.cpp:2172
-
std::string getDeviceLibrary(const char *label)
Definition: MMCore.cpp:1135
-
void setXYPosition(const char *xyStageLabel, double x, double y)
Definition: MMCore.cpp:1559
-
static void enableFeature(const char *name, bool enable)
Definition: MMCore.cpp:222
-
void loadExposureSequence(const char *cameraLabel, std::vector< double > exposureSequence_ms)
Definition: MMCore.cpp:2192
-
std::vector< double > getPixelSizeAffineByID(const char *resolutionID)
Definition: MMCore.cpp:5664
-
void deletePixelSizeConfig(const char *configName)
Definition: MMCore.cpp:5433
-
bool isGroupDefined(const char *groupName)
Definition: MMCore.cpp:5724
-
unsigned getImageWidth()
Definition: MMCore.cpp:4141
-
void incrementalFocus()
Definition: MMCore.cpp:7115
-
static bool isFeatureEnabled(const char *name)
Definition: MMCore.cpp:239
-
void getXYPosition(const char *xyStageLabel, double &x_stage, double &y_stage)
Definition: MMCore.cpp:1628
-
void renameConfig(const char *groupName, const char *oldConfigName, const char *newConfigName)
Definition: MMCore.cpp:5188
-
void loadStageSequence(const char *stageLabel, std::vector< double > positionSequence)
Definition: MMCore.cpp:2326
-
void logMessage(const char *msg)
Definition: MMCore.cpp:272
-
std::vector< std::string > getDevicePropertyNames(const char *label)
Definition: MMCore.cpp:3706
-
void setAdapterOrigin(const char *stageLabel, double newZUm)
Definition: MMCore.cpp:1973
-
void stopPropertySequence(const char *label, const char *propName)
Definition: MMCore.cpp:4080
-
void setAutoShutter(bool state)
Definition: MMCore.cpp:2571
-
void setSLMPixelsTo(const char *slmLabel, unsigned char intensity)
Definition: MMCore.cpp:5878
-
void setShutterOpen(bool state)
Definition: MMCore.cpp:2622
-
bool isStageSequenceable(const char *stageLabel)
Definition: MMCore.cpp:2230
-
bool isSequenceRunning()
Definition: MMCore.cpp:3029
-
bool deviceTypeBusy(MM::DeviceType devType)
Definition: MMCore.cpp:1405
-
void setDeviceAdapterSearchPaths(const std::vector< std::string > &paths)
Definition: MMCore.cpp:649
-
long getImageBufferSize()
Definition: MMCore.cpp:2788
-
std::vector< std::string > getAvailableConfigGroups() const
Definition: MMCore.cpp:5286
-
std::string getParentLabel(const char *peripheralLabel)
Definition: MMCore.cpp:1196
-
bool isXYStageSequenceable(const char *xyStageLabel)
Definition: MMCore.cpp:2380
-
Configuration getConfigGroupStateFromCache(const char *group)
Definition: MMCore.cpp:543
-
double getAutoFocusOffset()
Definition: MMCore.cpp:7162
-
void startExposureSequence(const char *cameraLabel)
Definition: MMCore.cpp:2138
-
void setSLMExposure(const char *slmLabel, double exposure_ms)
Definition: MMCore.cpp:5930
-
std::vector< std::string > getAvailableConfigs(const char *configGroup) const
Definition: MMCore.cpp:5267
-
DeviceInitializationState getDeviceInitializationState(const char *label) const
Definition: MMCore.cpp:1087
-
void * getNBeforeLastImageMD(unsigned long n, Metadata &md) const
Definition: MMCore.cpp:3136
-
bool isPixelSizeConfigDefined(const char *resolutionID) const
Definition: MMCore.cpp:5058
-
void reset()
Definition: MMCore.cpp:821
-
void updateSystemStateCache()
Definition: MMCore.cpp:1108
-
std::string getPrimaryLogFile() const
Definition: MMCore.cpp:264
-
double getPropertyUpperLimit(const char *label, const char *propName)
Definition: MMCore.cpp:3995
-
void setCameraDevice(const char *cameraLabel)
Definition: MMCore.cpp:3665
-
bool getAutoShutter()
Definition: MMCore.cpp:2585
-
Configuration getSystemState()
Definition: MMCore.cpp:450
-
bool getShutterOpen()
Definition: MMCore.cpp:2654
-
Configuration getPixelSizeConfigData(const char *configName)
Definition: MMCore.cpp:5389
-
void setSLMImage(const char *slmLabel, unsigned char *pixels)
Definition: MMCore.cpp:5842
-
void defineConfigGroup(const char *groupName)
Definition: MMCore.cpp:4910
-
Configuration getConfigState(const char *group, const char *config)
Definition: MMCore.cpp:514
-
void unloadDevice(const char *label)
Definition: MMCore.cpp:766
-
long getBufferFreeCapacity()
Definition: MMCore.cpp:3298
-
void unloadLibrary(const char *moduleName)
Definition: MMCore.cpp:1149
-
void defineStateLabel(const char *stateDeviceLabel, long state, const char *stateLabel)
Definition: MMCore.cpp:4810
-
void renameConfigGroup(const char *oldGroupName, const char *newGroupName)
Definition: MMCore.cpp:4945
-
long getState(const char *stateDeviceLabel)
Definition: MMCore.cpp:4716
-
double getGalvoYRange(const char *galvoLabel)
Definition: MMCore.cpp:6221
-
bool hasProperty(const char *label, const char *propName)
Definition: MMCore.cpp:3931
-
std::vector< std::string > getStateLabels(const char *stateDeviceLabel)
Definition: MMCore.cpp:4871
-
std::string getDeviceName(const char *label)
Definition: MMCore.cpp:1183
-
void initializeDevice(const char *label)
Definition: MMCore.cpp:1066
-
bool stderrLogEnabled()
Definition: MMCore.cpp:318
-
void stopStageSequence(const char *stageLabel)
Definition: MMCore.cpp:2288
-
std::string getXYStageDevice()
Definition: MMCore.cpp:3360
-
std::vector< std::string > getAvailablePixelSizeConfigs() const
Definition: MMCore.cpp:5295
-
long getStateFromLabel(const char *stateDeviceLabel, const char *stateLabel)
Definition: MMCore.cpp:4892
-
void waitForConfig(const char *group, const char *configName)
Definition: MMCore.cpp:1442
-
std::vector< char > readFromSerialPort(const char *portLabel)
Definition: MMCore.cpp:5815
-
std::vector< std::string > getAvailableDeviceDescriptions(const char *library)
Definition: MMCore.cpp:392
-
void getROI(int &x, int &y, int &xSize, int &ySize)
Definition: MMCore.cpp:4438
-
void setShutterDevice(const char *shutterLabel)
Definition: MMCore.cpp:3568
-
void setDeviceDelayMs(const char *label, double delayMs)
Definition: MMCore.cpp:1273
-
void waitForSystem()
Definition: MMCore.cpp:1392
-
void loadXYStageSequence(const char *xyStageLabel, std::vector< double > xSequence, std::vector< double > ySequence)
Definition: MMCore.cpp:2459
-
void setRelativeXYPosition(const char *xyStageLabel, double dx, double dy)
Definition: MMCore.cpp:1594
-
void setPixelSizeConfig(const char *resolutionID)
Definition: MMCore.cpp:5123
-
std::string getImageProcessorDevice()
Definition: MMCore.cpp:3411
-
std::string getShutterDevice()
Definition: MMCore.cpp:3333
-
void setMultiROI(std::vector< unsigned > xs, std::vector< unsigned > ys, std::vector< unsigned > widths, std::vector< unsigned > heights)
Definition: MMCore.cpp:4595
-
double getGalvoYMinimum(const char *galvoLabel)
Definition: MMCore.cpp:6233
-
Configuration getConfigData(const char *configGroup, const char *configName)
Definition: MMCore.cpp:5365
-
void setImageProcessorDevice(const char *procLabel)
Definition: MMCore.cpp:3454
-
void waitForDevice(const char *label)
Definition: MMCore.cpp:1330
-
bool isContinuousFocusEnabled()
Definition: MMCore.cpp:7038
-
void setAutoFocusOffset(double offset)
Definition: MMCore.cpp:7139
-
std::vector< std::string > getAvailableDevices(const char *library)
Definition: MMCore.cpp:381
-
std::string getCameraDevice()
Definition: MMCore.cpp:3319
-
void clearROI()
Definition: MMCore.cpp:4538
-
void setPrimaryLogFile(const char *filename, bool truncate=false)
Definition: MMCore.cpp:252
-
unsigned getImageHeight()
Definition: MMCore.cpp:4163
-
long getNumberOfStates(const char *stateDeviceLabel)
Definition: MMCore.cpp:4736
-
void saveSystemConfiguration(const char *fileName)
Definition: MMCore.cpp:6485
-
void setOriginY()
Definition: MMCore.cpp:1923
-
void setGalvoIlluminationState(const char *galvoLabel, bool on)
Definition: MMCore.cpp:6176
-
void setFocusDirection(const char *stageLabel, int sign)
Set the focus direction of a stage.
Definition: MMCore.cpp:2090
-
MM::DeviceType getDeviceType(const char *label)
Definition: MMCore.cpp:1122
-
void * getImage()
Definition: MMCore.cpp:2682
-
void setAutoFocusDevice(const char *focusLabel)
Definition: MMCore.cpp:3387
-
double getPixelSizeUm()
Definition: MMCore.cpp:5519
-
void setExposure(double exp)
Definition: MMCore.cpp:4297
-
std::vector< std::string > getDeviceAdapterSearchPaths()
Definition: MMCore.cpp:632
-
unsigned getSLMNumberOfComponents(const char *slmLabel)
Definition: MMCore.cpp:5992
-
void setCircularBufferMemoryFootprint(unsigned sizeMB)
Definition: MMCore.cpp:3212
-
std::string getPropertyFromCache(const char *deviceLabel, const char *propName) const
Definition: MMCore.cpp:3813
-
std::vector< std::string > getDeviceAdapterNames()
Definition: MMCore.cpp:661
-
std::string getDeviceDescription(const char *label)
Definition: MMCore.cpp:1233
-
bool usesDeviceDelay(const char *label)
Definition: MMCore.cpp:1289
-
std::string getProperty(const char *label, const char *propName)
Definition: MMCore.cpp:3785
-
std::string getAPIVersionInfo() const
Definition: MMCore.cpp:434
-
void saveSystemState(const char *fileName)
Definition: MMCore.cpp:6378
-
void setStageLinearSequence(const char *stageLabel, double dZ_um, int nSlices)
Definition: MMCore.cpp:2360
-
unsigned getCircularBufferMemoryFootprint()
Definition: MMCore.cpp:3260
-
bool isContinuousFocusDrive(const char *stageLabel)
Definition: MMCore.cpp:7079
-
void initializeCircularBuffer()
Definition: MMCore.cpp:2922
-
int startSecondaryLogFile(const char *filename, bool enableDebug, bool truncate=true, bool synchronous=false)
Definition: MMCore.cpp:337
-
void setROI(int x, int y, int xSize, int ySize)
Definition: MMCore.cpp:4398
-
void loadGalvoPolygons(const char *galvoLabel)
Definition: MMCore.cpp:6284
-
void registerCallback(MMEventCallback *cb)
Definition: MMCore.cpp:6943
-
bool isPropertySequenceable(const char *label, const char *propName)
Definition: MMCore.cpp:4027
-
static void noop()
A static method that does nothing.
Definition: MMCore.h:149
-
void defineConfig(const char *groupName, const char *configName)
Definition: MMCore.cpp:4970
-
Configuration getSystemStateCache() const
Definition: MMCore.cpp:504
-
std::string getCurrentConfigFromCache(const char *groupName)
Definition: MMCore.cpp:5339
-
void setStateLabel(const char *stateDeviceLabel, const char *stateLabel)
Definition: MMCore.cpp:4757
-
long getSLMSequenceMaxLength(const char *slmLabel)
Definition: MMCore.cpp:6021
-
MM::PropertyType getPropertyType(const char *label, const char *propName)
Definition: MMCore.cpp:4124
-
void setParentLabel(const char *deviceLabel, const char *parentHubLabel)
Definition: MMCore.cpp:1209
-
void waitForDeviceType(MM::DeviceType devType)
Definition: MMCore.cpp:1430
-
void setGalvoPosition(const char *galvoLabel, double x, double y)
Definition: MMCore.cpp:6138
-
std::string getGalvoChannel(const char *galvoLabel)
Definition: MMCore.cpp:6361
-
void loadSLMSequence(const char *slmLabel, std::vector< unsigned char * > imageSequence)
Definition: MMCore.cpp:6072
-
void startContinuousSequenceAcquisition(double intervalMs)
Definition: MMCore.cpp:2967
-
void sleep(double intervalMs) const
Definition: MMCore.cpp:1319
-
void setSerialPortCommand(const char *portLabel, const char *command, const char *term)
Definition: MMCore.cpp:5756
-
void * popNextImage()
Definition: MMCore.cpp:3160
-
void * getLastImage()
Definition: MMCore.cpp:3064
-
std::string getCurrentPixelSizeConfig()
Definition: MMCore.cpp:5451
-
std::string getCameraChannelName(unsigned int channelNr)
Definition: MMCore.cpp:4275
-
double getSLMExposure(const char *slmLabel)
Definition: MMCore.cpp:5947
-
unsigned getSLMBytesPerPixel(const char *slmLabel)
Definition: MMCore.cpp:6006
-
void unloadAllDevices()
Definition: MMCore.cpp:787
-
void setOriginX()
Definition: MMCore.cpp:1889
-
void setState(const char *stateDeviceLabel, long state)
Definition: MMCore.cpp:4678
-
void setRelativePosition(const char *stageLabel, double d)
Definition: MMCore.cpp:1494
-
std::string getCurrentConfig(const char *groupName)
Definition: MMCore.cpp:5309
-
void prepareSequenceAcquisition(const char *cameraLabel)
Definition: MMCore.cpp:2898
-
bool deviceBusy(const char *label)
Definition: MMCore.cpp:1304
-
void setSerialProperties(const char *portName, const char *answerTimeout, const char *baudRate, const char *delayBetweenCharsMs, const char *handshaking, const char *parity, const char *stopBits)
Definition: MMCore.cpp:5735
-
MM::DeviceDetectionStatus detectDevice(const char *deviceLabel)
Definition: MMCore.cpp:7573
-
int getFocusDirection(const char *stageLabel)
Get the focus direction of a stage.
Definition: MMCore.cpp:2063
-
double getYPosition()
Definition: MMCore.cpp:1714
-
void startSLMSequence(const char *slmLabel)
Definition: MMCore.cpp:6039
-
std::vector< long > getAvailableDeviceTypes(const char *library)
Definition: MMCore.cpp:413
-
void setProperty(const char *label, const char *propName, const char *propValue)
Definition: MMCore.cpp:3838
-
std::vector< std::string > getLoadedDevicesOfType(MM::DeviceType devType) const
Definition: MMCore.cpp:3734
-
void initializeAllDevices()
Definition: MMCore.cpp:856
-
double getLastFocusScore()
Definition: MMCore.cpp:6954
-
void * popNextImageMD(unsigned channel, unsigned slice, Metadata &md)
Definition: MMCore.cpp:3174
-
bool isPropertyReadOnly(const char *label, const char *propName)
Definition: MMCore.cpp:3949
-
std::string getGalvoDevice()
Definition: MMCore.cpp:3440
-
double getGalvoXRange(const char *galvoLabel)
Definition: MMCore.cpp:6197
-
double getDeviceDelayMs(const char *label)
Definition: MMCore.cpp:1255
-
void startXYStageSequence(const char *xyStageLabel)
Definition: MMCore.cpp:2402
-
std::vector< std::string > getLoadedDevices() const
Definition: MMCore.cpp:3722
-
bool systemBusy()
Definition: MMCore.cpp:1383
-
bool isPropertyPreInit(const char *label, const char *propName)
Definition: MMCore.cpp:3967
-
bool isMultiROIEnabled()
Definition: MMCore.cpp:4574
-
bool supportsDeviceDetection(const char *deviceLabel)
Definition: MMCore.cpp:7548
-
std::string getCoreErrorText(int code) const
Definition: MMCore.cpp:7499
-
double getPixelSizeUmByID(const char *resolutionID)
Definition: MMCore.cpp:5580
-
long getRemainingImageCount()
Definition: MMCore.cpp:3272
-
double getExposure()
Definition: MMCore.cpp:4350
-
void setChannelGroup(const char *channelGroup)
Definition: MMCore.cpp:3527
-
double getGalvoXMinimum(const char *galvoLabel)
Definition: MMCore.cpp:6209
-
long getPropertySequenceMaxLength(const char *label, const char *propName)
Definition: MMCore.cpp:4044
-
bool isExposureSequenceable(const char *cameraLabel)
Definition: MMCore.cpp:2117
-
bool isConfigDefined(const char *groupName, const char *configName)
Definition: MMCore.cpp:5711
-
void stopSLMSequence(const char *slmLabel)
Definition: MMCore.cpp:6055
-
void setGalvoPolygonRepetitions(const char *galvoLabel, int repetitions)
Definition: MMCore.cpp:6303
-
void deleteConfigGroup(const char *groupName)
Definition: MMCore.cpp:4926
-
void loadPropertySequence(const char *label, const char *propName, std::vector< std::string > eventSequence)
Definition: MMCore.cpp:4099
-
std::string getVersionInfo() const
Definition: MMCore.cpp:369
-
void clearCircularBuffer()
Definition: MMCore.cpp:3204
-
unsigned getNumberOfComponents()
Definition: MMCore.cpp:4233
-
void deleteConfig(const char *groupName, const char *configName)
Definition: MMCore.cpp:5210
-
void stop(const char *xyOrZStageLabel)
Definition: MMCore.cpp:1726
-
bool isContinuousFocusLocked()
Definition: MMCore.cpp:7061
-
void setOrigin()
Definition: MMCore.cpp:1958
-
double getXPosition()
Definition: MMCore.cpp:1681
-
unsigned getImageBitDepth()
Definition: MMCore.cpp:4211
-
void pointGalvoAndFire(const char *galvoLabel, double x, double y, double pulseTime_us)
Definition: MMCore.cpp:6102
-
void addGalvoPolygonVertex(const char *galvoLabel, int polygonIndex, double x, double y)
Definition: MMCore.cpp:6245
-
std::string getSerialPortAnswer(const char *portLabel, const char *term)
Definition: MMCore.cpp:5776
-
void renamePixelSizeConfig(const char *oldConfigName, const char *newConfigName)
Definition: MMCore.cpp:5412
-
void setPixelSizeUm(const char *resolutionID, double pixSize)
Definition: MMCore.cpp:5068
-
bool isStageLinearSequenceable(const char *stageLabel)
Definition: MMCore.cpp:2251
-
double getCurrentFocusScore()
Definition: MMCore.cpp:6982
-
Core error class. Exceptions thrown by the Core public API are of this type.
Definition: Error.h:58
-
Definition: PluginManager.h:36
-
Definition: CircularBuffer.h:53
-
Definition: ConfigGroup.h:167
-
Definition: Configuration.h:98
-
Definition: CoreCallback.h:44
-
Definition: CoreProperty.h:62
-
Definition: MMEventCallback.h:28
-
Definition: ConfigGroup.h:427
-
Definition: Configuration.h:45
+
1
+
2// FILE: MMCore.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: The interface to the MM core services.
+
7//
+
8// COPYRIGHT: University of California, San Francisco, 2006-2014
+
9// 100X Imaging Inc, www.100ximaging.com, 2008
+
10//
+
11// LICENSE: This library is free software; you can redistribute it and/or
+
12// modify it under the terms of the GNU Lesser General Public
+
13// License as published by the Free Software Foundation.
+
14//
+
15// You should have received a copy of the GNU Lesser General Public
+
16// License along with the source distribution; if not, write to
+
17// the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+
18// Boston, MA 02111-1307 USA
+
19//
+
20// This file is distributed in the hope that it will be useful,
+
21// but WITHOUT ANY WARRANTY; without even the implied warranty
+
22// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
23//
+
24// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
25// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
26// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
27//
+
28// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 06/07/2005
+
29//
+
30// NOTES: Public methods follow a slightly different naming convention than
+
31// the rest of the C++ code, i.e we have:
+
32// getConfiguration();
+
33// instead of:
+
34// GetConfiguration();
+
35// The alternative (lowercase function names) convention is used
+
36// because public method names appear as wrapped methods in other
+
37// languages, in particular Java.
+
38
+
39#pragma once
+
40
+
41/*
+
42 * Important! Read this before changing this file.
+
43 *
+
44 * Please see the version number and explanatory comment in the implementation
+
45 * file (MMCore.cpp).
+
46 */
+
47
+
48// We use exception specifications to instruct SWIG to generate the correct
+
49// exception specifications for Java.
+
50#ifdef _MSC_VER
+
51#pragma warning(push)
+
52#pragma warning(disable: 4290) // 'C++ exception specification ignored'
+
53#endif
+
54
+
55#if defined(__GNUC__) && !defined(__clang__)
+
56#pragma GCC diagnostic push
+
57// 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]'
+
58#pragma GCC diagnostic ignored "-Wdeprecated"
+
59#endif
+
60
+
61#include "../MMDevice/DeviceThreads.h"
+
62#include "../MMDevice/MMDevice.h"
+
63#include "../MMDevice/MMDeviceConstants.h"
+
64#include "Configuration.h"
+
65#include "Error.h"
+
66#include "ErrorCodes.h"
+
67#include "Logging/Logger.h"
+
68
+
69#include <cstring>
+
70#include <deque>
+
71#include <map>
+
72#include <memory>
+
73#include <string>
+
74#include <vector>
+
75
+
76
+
77#if !defined(SWIGJAVA) && !defined(SWIGPYTHON)
+
78# ifdef _MSC_VER
+
79# define MMCORE_DEPRECATED(prototype) __declspec(deprecated) prototype
+
80# elif defined(__GNUC__)
+
81# define MMCORE_DEPRECATED(prototype) prototype __attribute__((deprecated))
+
82# else
+
83# define MMCORE_DEPRECATED(prototype) prototype
+
84# endif
+
85#else
+
86# define MMCORE_DEPRECATED(prototype) prototype
+
87#endif
+
88
+
89
+
90class CPluginManager;
+
91class CircularBuffer;
+ +
93class CoreCallback;
+ +
95class MMEventCallback;
+
96class Metadata;
+ +
98
+
99class AutoFocusInstance;
+
100class CameraInstance;
+
101class DeviceInstance;
+
102class GalvoInstance;
+
103class ImageProcessorInstance;
+
104class SLMInstance;
+
105class ShutterInstance;
+
106class StageInstance;
+
107class XYStageInstance;
+
108
+
109class CMMCore;
+
110
+
111namespace mm {
+
112 class DeviceManager;
+
113 class LogManager;
+
114} // namespace mm
+
115
+
116typedef unsigned int* imgRGB32;
+
117
+
118enum DeviceInitializationState {
+
119 Uninitialized,
+
120 InitializedSuccessfully,
+
121 InitializationFailed,
+
122};
+
123
+
124
+
126
+
+ +
135{
+
136 friend class CoreCallback;
+
137 friend class CorePropertyCollection;
+
138
+
139public:
+
140 CMMCore();
+
141 ~CMMCore();
+
142
+
144
+
149 static void noop() {}
+
150
+
153 static void enableFeature(const char* name, bool enable) throw (CMMError);
+
154 static bool isFeatureEnabled(const char* name) throw (CMMError);
+
156
+
159 void loadDevice(const char* label, const char* moduleName,
+
160 const char* deviceName) throw (CMMError);
+
161 void unloadDevice(const char* label) throw (CMMError);
+
162 void unloadAllDevices() throw (CMMError);
+
163 void initializeAllDevices() throw (CMMError);
+
164 void initializeDevice(const char* label) throw (CMMError);
+
165 DeviceInitializationState getDeviceInitializationState(const char* label) const throw (CMMError);
+
166 void reset() throw (CMMError);
+
167
+
168 void unloadLibrary(const char* moduleName) throw (CMMError);
+
169
+
170 void updateCoreProperties() throw (CMMError);
+
171
+
172 std::string getCoreErrorText(int code) const;
+
173
+
174 std::string getVersionInfo() const;
+
175 std::string getAPIVersionInfo() const;
+ +
177 void setSystemState(const Configuration& conf);
+
178 Configuration getConfigState(const char* group, const char* config) throw (CMMError);
+
179 Configuration getConfigGroupState(const char* group) throw (CMMError);
+
180 void saveSystemState(const char* fileName) throw (CMMError);
+
181 void loadSystemState(const char* fileName) throw (CMMError);
+
182 void saveSystemConfiguration(const char* fileName) throw (CMMError);
+
183 void loadSystemConfiguration(const char* fileName) throw (CMMError);
+ +
186
+
189 void setPrimaryLogFile(const char* filename, bool truncate = false) throw (CMMError);
+
190 std::string getPrimaryLogFile() const;
+
191
+
192 void logMessage(const char* msg);
+
193 void logMessage(const char* msg, bool debugOnly);
+
194 void enableDebugLog(bool enable);
+
195 bool debugLogEnabled();
+
196 void enableStderrLog(bool enable);
+
197 bool stderrLogEnabled();
+
198
+
199 int startSecondaryLogFile(const char* filename, bool enableDebug,
+
200 bool truncate = true, bool synchronous = false) throw (CMMError);
+
201 void stopSecondaryLogFile(int handle) throw (CMMError);
+
202
+
204
+
207 std::vector<std::string> getDeviceAdapterSearchPaths();
+
208 void setDeviceAdapterSearchPaths(const std::vector<std::string>& paths);
+
209
+
210 std::vector<std::string> getDeviceAdapterNames() throw (CMMError);
+
211
+
212 std::vector<std::string> getAvailableDevices(const char* library) throw (CMMError);
+
213 std::vector<std::string> getAvailableDeviceDescriptions(const char* library) throw (CMMError);
+
214 std::vector<long> getAvailableDeviceTypes(const char* library) throw (CMMError);
+
216
+
222 std::vector<std::string> getLoadedDevices() const;
+
223 std::vector<std::string> getLoadedDevicesOfType(MM::DeviceType devType) const;
+
224 MM::DeviceType getDeviceType(const char* label) throw (CMMError);
+
225 std::string getDeviceLibrary(const char* label) throw (CMMError);
+
226 std::string getDeviceName(const char* label) throw (CMMError);
+
227 std::string getDeviceDescription(const char* label) throw (CMMError);
+
228
+
229 std::vector<std::string> getDevicePropertyNames(const char* label) throw (CMMError);
+
230 bool hasProperty(const char* label, const char* propName) throw (CMMError);
+
231 std::string getProperty(const char* label, const char* propName) throw (CMMError);
+
232 void setProperty(const char* label, const char* propName, const char* propValue) throw (CMMError);
+
233 void setProperty(const char* label, const char* propName, const bool propValue) throw (CMMError);
+
234 void setProperty(const char* label, const char* propName, const long propValue) throw (CMMError);
+
235 void setProperty(const char* label, const char* propName, const float propValue) throw (CMMError);
+
236 void setProperty(const char* label, const char* propName, const double propValue) throw (CMMError);
+
237
+
238 std::vector<std::string> getAllowedPropertyValues(const char* label, const char* propName) throw (CMMError);
+
239 bool isPropertyReadOnly(const char* label, const char* propName) throw (CMMError);
+
240 bool isPropertyPreInit(const char* label, const char* propName) throw (CMMError);
+
241 bool isPropertySequenceable(const char* label, const char* propName) throw (CMMError);
+
242 bool hasPropertyLimits(const char* label, const char* propName) throw (CMMError);
+
243 double getPropertyLowerLimit(const char* label, const char* propName) throw (CMMError);
+
244 double getPropertyUpperLimit(const char* label, const char* propName) throw (CMMError);
+
245 MM::PropertyType getPropertyType(const char* label, const char* propName) throw (CMMError);
+
246
+
247 void startPropertySequence(const char* label, const char* propName) throw (CMMError);
+
248 void stopPropertySequence(const char* label, const char* propName) throw (CMMError);
+
249 long getPropertySequenceMaxLength(const char* label, const char* propName) throw (CMMError);
+
250 void loadPropertySequence(const char* label, const char* propName, std::vector<std::string> eventSequence) throw (CMMError);
+
251
+
252 bool deviceBusy(const char* label) throw (CMMError);
+
253 void waitForDevice(const char* label) throw (CMMError);
+
254 void waitForConfig(const char* group, const char* configName) throw (CMMError);
+
255 bool systemBusy() throw (CMMError);
+
256 void waitForSystem() throw (CMMError);
+
257 bool deviceTypeBusy(MM::DeviceType devType) throw (CMMError);
+
258 void waitForDeviceType(MM::DeviceType devType) throw (CMMError);
+
259
+
260 double getDeviceDelayMs(const char* label) throw (CMMError);
+
261 void setDeviceDelayMs(const char* label, double delayMs) throw (CMMError);
+
262 bool usesDeviceDelay(const char* label) throw (CMMError);
+
263
+
264 void setTimeoutMs(long timeoutMs) {if (timeoutMs > 0) timeoutMs_ = timeoutMs;}
+
265 long getTimeoutMs() { return timeoutMs_;}
+
266
+
267 void sleep(double intervalMs) const;
+
269
+
272 std::string getCameraDevice();
+
273 std::string getShutterDevice();
+
274 std::string getFocusDevice();
+
275 std::string getXYStageDevice();
+
276 std::string getAutoFocusDevice();
+
277 std::string getImageProcessorDevice();
+
278 std::string getSLMDevice();
+
279 std::string getGalvoDevice();
+
280 std::string getChannelGroup();
+
281 void setCameraDevice(const char* cameraLabel) throw (CMMError);
+
282 void setShutterDevice(const char* shutterLabel) throw (CMMError);
+
283 void setFocusDevice(const char* focusLabel) throw (CMMError);
+
284 void setXYStageDevice(const char* xyStageLabel) throw (CMMError);
+
285 void setAutoFocusDevice(const char* focusLabel) throw (CMMError);
+
286 void setImageProcessorDevice(const char* procLabel) throw (CMMError);
+
287 void setSLMDevice(const char* slmLabel) throw (CMMError);
+
288 void setGalvoDevice(const char* galvoLabel) throw (CMMError);
+
289 void setChannelGroup(const char* channelGroup) throw (CMMError);
+
291
+ + +
300 std::string getPropertyFromCache(const char* deviceLabel,
+
301 const char* propName) const throw (CMMError);
+
302 std::string getCurrentConfigFromCache(const char* groupName) throw (CMMError);
+
303 Configuration getConfigGroupStateFromCache(const char* group) throw (CMMError);
+
305
+
308 void defineConfig(const char* groupName, const char* configName) throw (CMMError);
+
309 void defineConfig(const char* groupName, const char* configName,
+
310 const char* deviceLabel, const char* propName,
+
311 const char* value) throw (CMMError);
+
312 void defineConfigGroup(const char* groupName) throw (CMMError);
+
313 void deleteConfigGroup(const char* groupName) throw (CMMError);
+
314 void renameConfigGroup(const char* oldGroupName,
+
315 const char* newGroupName) throw (CMMError);
+
316 bool isGroupDefined(const char* groupName);
+
317 bool isConfigDefined(const char* groupName, const char* configName);
+
318 void setConfig(const char* groupName, const char* configName) throw (CMMError);
+
319 void deleteConfig(const char* groupName, const char* configName) throw (CMMError);
+
320 void deleteConfig(const char* groupName, const char* configName,
+
321 const char* deviceLabel, const char* propName) throw (CMMError);
+
322 void renameConfig(const char* groupName, const char* oldConfigName,
+
323 const char* newConfigName) throw (CMMError);
+
324 std::vector<std::string> getAvailableConfigGroups() const;
+
325 std::vector<std::string> getAvailableConfigs(const char* configGroup) const;
+
326 std::string getCurrentConfig(const char* groupName) throw (CMMError);
+
327 Configuration getConfigData(const char* configGroup,
+
328 const char* configName) throw (CMMError);
+
330
+
333 std::string getCurrentPixelSizeConfig() throw (CMMError);
+
334 std::string getCurrentPixelSizeConfig(bool cached) throw (CMMError);
+
335 double getPixelSizeUm();
+
336 double getPixelSizeUm(bool cached);
+
337 double getPixelSizeUmByID(const char* resolutionID) throw (CMMError);
+
338 std::vector<double> getPixelSizeAffine() throw (CMMError);
+
339 std::vector<double> getPixelSizeAffine(bool cached) throw (CMMError);
+
340 std::vector<double> getPixelSizeAffineByID(const char* resolutionID) throw (CMMError);
+
341 double getMagnificationFactor() const;
+
342 void setPixelSizeUm(const char* resolutionID, double pixSize) throw (CMMError);
+
343 void setPixelSizeAffine(const char* resolutionID, std::vector<double> affine) throw (CMMError);
+
344 void definePixelSizeConfig(const char* resolutionID,
+
345 const char* deviceLabel, const char* propName,
+
346 const char* value) throw (CMMError);
+
347 void definePixelSizeConfig(const char* resolutionID) throw (CMMError);
+
348 std::vector<std::string> getAvailablePixelSizeConfigs() const;
+
349 bool isPixelSizeConfigDefined(const char* resolutionID) const throw (CMMError);
+
350 void setPixelSizeConfig(const char* resolutionID) throw (CMMError);
+
351 void renamePixelSizeConfig(const char* oldConfigName,
+
352 const char* newConfigName) throw (CMMError);
+
353 void deletePixelSizeConfig(const char* configName) throw (CMMError);
+
354 Configuration getPixelSizeConfigData(const char* configName) throw (CMMError);
+
356
+
359 void setROI(int x, int y, int xSize, int ySize) throw (CMMError);
+
360 void setROI(const char* label, int x, int y, int xSize, int ySize) throw (CMMError);
+
361 void getROI(int& x, int& y, int& xSize, int& ySize) throw (CMMError);
+
362 void getROI(const char* label, int& x, int& y, int& xSize, int& ySize) throw (CMMError);
+
363 void clearROI() throw (CMMError);
+
364
+
365 bool isMultiROISupported() throw (CMMError);
+
366 bool isMultiROIEnabled() throw (CMMError);
+
367 void setMultiROI(std::vector<unsigned> xs, std::vector<unsigned> ys,
+
368 std::vector<unsigned> widths,
+
369 std::vector<unsigned> heights) throw (CMMError);
+
370 void getMultiROI(std::vector<unsigned>& xs, std::vector<unsigned>& ys,
+
371 std::vector<unsigned>& widths,
+
372 std::vector<unsigned>& heights) throw (CMMError);
+
373
+
374 void setExposure(double exp) throw (CMMError);
+
375 void setExposure(const char* cameraLabel, double dExp) throw (CMMError);
+
376 double getExposure() throw (CMMError);
+
377 double getExposure(const char* label) throw (CMMError);
+
378
+
379 void snapImage() throw (CMMError);
+
380 void* getImage() throw (CMMError);
+
381 void* getImage(unsigned numChannel) throw (CMMError);
+
382
+
383 unsigned getImageWidth();
+
384 unsigned getImageHeight();
+
385 unsigned getBytesPerPixel();
+
386 unsigned getImageBitDepth();
+
387 unsigned getNumberOfComponents();
+
388 unsigned getNumberOfCameraChannels();
+
389 std::string getCameraChannelName(unsigned int channelNr);
+
390 long getImageBufferSize();
+
391
+
392 void setAutoShutter(bool state);
+
393 bool getAutoShutter();
+
394 void setShutterOpen(bool state) throw (CMMError);
+
395 bool getShutterOpen() throw (CMMError);
+
396 void setShutterOpen(const char* shutterLabel, bool state) throw (CMMError);
+
397 bool getShutterOpen(const char* shutterLabel) throw (CMMError);
+
398
+
399 void startSequenceAcquisition(long numImages, double intervalMs,
+
400 bool stopOnOverflow) throw (CMMError);
+
401 void startSequenceAcquisition(const char* cameraLabel, long numImages,
+
402 double intervalMs, bool stopOnOverflow) throw (CMMError);
+
403 void prepareSequenceAcquisition(const char* cameraLabel) throw (CMMError);
+
404 void startContinuousSequenceAcquisition(double intervalMs) throw (CMMError);
+
405 void stopSequenceAcquisition() throw (CMMError);
+
406 void stopSequenceAcquisition(const char* cameraLabel) throw (CMMError);
+
407 bool isSequenceRunning() throw ();
+
408 bool isSequenceRunning(const char* cameraLabel) throw (CMMError);
+
409
+
410 void* getLastImage() throw (CMMError);
+
411 void* popNextImage() throw (CMMError);
+
412 void* getLastImageMD(unsigned channel, unsigned slice, Metadata& md)
+
413 const throw (CMMError);
+
414 void* popNextImageMD(unsigned channel, unsigned slice, Metadata& md)
+
415 throw (CMMError);
+
416 void* getLastImageMD(Metadata& md) const throw (CMMError);
+
417 void* getNBeforeLastImageMD(unsigned long n, Metadata& md)
+
418 const throw (CMMError);
+
419 void* popNextImageMD(Metadata& md) throw (CMMError);
+
420
+ + + +
424 bool isBufferOverflowed() const;
+
425 void setCircularBufferMemoryFootprint(unsigned sizeMB) throw (CMMError);
+ +
427 void initializeCircularBuffer() throw (CMMError);
+
428 void clearCircularBuffer() throw (CMMError);
+
429
+
430 bool isExposureSequenceable(const char* cameraLabel) throw (CMMError);
+
431 void startExposureSequence(const char* cameraLabel) throw (CMMError);
+
432 void stopExposureSequence(const char* cameraLabel) throw (CMMError);
+
433 long getExposureSequenceMaxLength(const char* cameraLabel) throw (CMMError);
+
434 void loadExposureSequence(const char* cameraLabel,
+
435 std::vector<double> exposureSequence_ms) throw (CMMError);
+
437
+
440 double getLastFocusScore();
+
441 double getCurrentFocusScore();
+
442 void enableContinuousFocus(bool enable) throw (CMMError);
+
443 bool isContinuousFocusEnabled() throw (CMMError);
+
444 bool isContinuousFocusLocked() throw (CMMError);
+
445 bool isContinuousFocusDrive(const char* stageLabel) throw (CMMError);
+
446 void fullFocus() throw (CMMError);
+
447 void incrementalFocus() throw (CMMError);
+
448 void setAutoFocusOffset(double offset) throw (CMMError);
+
449 double getAutoFocusOffset() throw (CMMError);
+
451
+
454 void setState(const char* stateDeviceLabel, long state) throw (CMMError);
+
455 long getState(const char* stateDeviceLabel) throw (CMMError);
+
456 long getNumberOfStates(const char* stateDeviceLabel);
+
457 void setStateLabel(const char* stateDeviceLabel,
+
458 const char* stateLabel) throw (CMMError);
+
459 std::string getStateLabel(const char* stateDeviceLabel) throw (CMMError);
+
460 void defineStateLabel(const char* stateDeviceLabel,
+
461 long state, const char* stateLabel) throw (CMMError);
+
462 std::vector<std::string> getStateLabels(const char* stateDeviceLabel)
+
463 throw (CMMError);
+
464 long getStateFromLabel(const char* stateDeviceLabel,
+
465 const char* stateLabel) throw (CMMError);
+
467
+
470 void setPosition(const char* stageLabel, double position) throw (CMMError);
+
471 void setPosition(double position) throw (CMMError);
+
472 double getPosition(const char* stageLabel) throw (CMMError);
+
473 double getPosition() throw (CMMError);
+
474 void setRelativePosition(const char* stageLabel, double d) throw (CMMError);
+
475 void setRelativePosition(double d) throw (CMMError);
+
476 void setOrigin(const char* stageLabel) throw (CMMError);
+
477 void setOrigin() throw (CMMError);
+
478 void setAdapterOrigin(const char* stageLabel, double newZUm) throw (CMMError);
+
479 void setAdapterOrigin(double newZUm) throw (CMMError);
+
480
+
481 void setFocusDirection(const char* stageLabel, int sign);
+
482 int getFocusDirection(const char* stageLabel) throw (CMMError);
+
483
+
484 bool isStageSequenceable(const char* stageLabel) throw (CMMError);
+
485 bool isStageLinearSequenceable(const char* stageLabel) throw (CMMError);
+
486 void startStageSequence(const char* stageLabel) throw (CMMError);
+
487 void stopStageSequence(const char* stageLabel) throw (CMMError);
+
488 long getStageSequenceMaxLength(const char* stageLabel) throw (CMMError);
+
489 void loadStageSequence(const char* stageLabel,
+
490 std::vector<double> positionSequence) throw (CMMError);
+
491 void setStageLinearSequence(const char* stageLabel, double dZ_um, int nSlices) throw (CMMError);
+
493
+
496 void setXYPosition(const char* xyStageLabel,
+
497 double x, double y) throw (CMMError);
+
498 void setXYPosition(double x, double y) throw (CMMError);
+
499 void setRelativeXYPosition(const char* xyStageLabel,
+
500 double dx, double dy) throw (CMMError);
+
501 void setRelativeXYPosition(double dx, double dy) throw (CMMError);
+
502 void getXYPosition(const char* xyStageLabel,
+
503 double &x_stage, double &y_stage) throw (CMMError);
+
504 void getXYPosition(double &x_stage, double &y_stage) throw (CMMError);
+
505 double getXPosition(const char* xyStageLabel) throw (CMMError);
+
506 double getYPosition(const char* xyStageLabel) throw (CMMError);
+
507 double getXPosition() throw (CMMError);
+
508 double getYPosition() throw (CMMError);
+
509 void stop(const char* xyOrZStageLabel) throw (CMMError);
+
510 void home(const char* xyOrZStageLabel) throw (CMMError);
+
511 void setOriginXY(const char* xyStageLabel) throw (CMMError);
+
512 void setOriginXY() throw (CMMError);
+
513 void setOriginX(const char* xyStageLabel) throw (CMMError);
+
514 void setOriginX() throw (CMMError);
+
515 void setOriginY(const char* xyStageLabel) throw (CMMError);
+
516 void setOriginY() throw (CMMError);
+
517 void setAdapterOriginXY(const char* xyStageLabel,
+
518 double newXUm, double newYUm) throw (CMMError);
+
519 void setAdapterOriginXY(double newXUm, double newYUm) throw (CMMError);
+
520
+
521 bool isXYStageSequenceable(const char* xyStageLabel) throw (CMMError);
+
522 void startXYStageSequence(const char* xyStageLabel) throw (CMMError);
+
523 void stopXYStageSequence(const char* xyStageLabel) throw (CMMError);
+
524 long getXYStageSequenceMaxLength(const char* xyStageLabel) throw (CMMError);
+
525 void loadXYStageSequence(const char* xyStageLabel,
+
526 std::vector<double> xSequence,
+
527 std::vector<double> ySequence) throw (CMMError);
+
529
+
532 void setSerialProperties(const char* portName,
+
533 const char* answerTimeout,
+
534 const char* baudRate,
+
535 const char* delayBetweenCharsMs,
+
536 const char* handshaking,
+
537 const char* parity,
+
538 const char* stopBits) throw (CMMError);
+
539
+
540 void setSerialPortCommand(const char* portLabel, const char* command,
+
541 const char* term) throw (CMMError);
+
542 std::string getSerialPortAnswer(const char* portLabel,
+
543 const char* term) throw (CMMError);
+
544 void writeToSerialPort(const char* portLabel,
+
545 const std::vector<char> &data) throw (CMMError);
+
546 std::vector<char> readFromSerialPort(const char* portLabel)
+
547 throw (CMMError);
+
549
+
556 void setSLMImage(const char* slmLabel,
+
557 unsigned char * pixels) throw (CMMError);
+
558 void setSLMImage(const char* slmLabel, imgRGB32 pixels) throw (CMMError);
+
559 void setSLMPixelsTo(const char* slmLabel,
+
560 unsigned char intensity) throw (CMMError);
+
561 void setSLMPixelsTo(const char* slmLabel,
+
562 unsigned char red, unsigned char green,
+
563 unsigned char blue) throw (CMMError);
+
564 void displaySLMImage(const char* slmLabel) throw (CMMError);
+
565 void setSLMExposure(const char* slmLabel, double exposure_ms)
+
566 throw (CMMError);
+
567 double getSLMExposure(const char* slmLabel) throw (CMMError);
+
568 unsigned getSLMWidth(const char* slmLabel) throw (CMMError);
+
569 unsigned getSLMHeight(const char* slmLabel) throw (CMMError);
+
570 unsigned getSLMNumberOfComponents(const char* slmLabel) throw (CMMError);
+
571 unsigned getSLMBytesPerPixel(const char* slmLabel) throw (CMMError);
+
572
+
573 long getSLMSequenceMaxLength(const char* slmLabel) throw (CMMError);
+
574 void startSLMSequence(const char* slmLabel) throw (CMMError);
+
575 void stopSLMSequence(const char* slmLabel) throw (CMMError);
+
576 void loadSLMSequence(const char* slmLabel,
+
577 std::vector<unsigned char*> imageSequence) throw (CMMError);
+
579
+
585 void pointGalvoAndFire(const char* galvoLabel, double x, double y,
+
586 double pulseTime_us) throw (CMMError);
+
587 void setGalvoSpotInterval(const char* galvoLabel,
+
588 double pulseTime_us) throw (CMMError);
+
589 void setGalvoPosition(const char* galvoLabel, double x, double y)
+
590 throw (CMMError);
+
591 void getGalvoPosition(const char* galvoLabel,
+
592 double &x_stage, double &y_stage) throw (CMMError); // using x_stage to get swig to work
+
593 void setGalvoIlluminationState(const char* galvoLabel, bool on)
+
594 throw (CMMError);
+
595 double getGalvoXRange(const char* galvoLabel) throw (CMMError);
+
596 double getGalvoXMinimum(const char* galvoLabel) throw (CMMError);
+
597 double getGalvoYRange(const char* galvoLabel) throw (CMMError);
+
598 double getGalvoYMinimum(const char* galvoLabel) throw (CMMError);
+
599 void addGalvoPolygonVertex(const char* galvoLabel, int polygonIndex,
+
600 double x, double y) throw (CMMError);
+
601 void deleteGalvoPolygons(const char* galvoLabel) throw (CMMError);
+
602 void loadGalvoPolygons(const char* galvoLabel) throw (CMMError);
+
603 void setGalvoPolygonRepetitions(const char* galvoLabel, int repetitions)
+
604 throw (CMMError);
+
605 void runGalvoPolygons(const char* galvoLabel) throw (CMMError);
+
606 void runGalvoSequence(const char* galvoLabel) throw (CMMError);
+
607 std::string getGalvoChannel(const char* galvoLabel) throw (CMMError);
+
609
+
612 bool supportsDeviceDetection(const char* deviceLabel);
+
613 MM::DeviceDetectionStatus detectDevice(const char* deviceLabel);
+
615
+
618 std::string getParentLabel(const char* peripheralLabel) throw (CMMError);
+
619 void setParentLabel(const char* deviceLabel,
+
620 const char* parentHubLabel) throw (CMMError);
+
621
+
622 std::vector<std::string> getInstalledDevices(const char* hubLabel) throw (CMMError);
+
623 std::string getInstalledDeviceDescription(const char* hubLabel,
+
624 const char* peripheralLabel) throw (CMMError);
+
625 std::vector<std::string> getLoadedPeripheralDevices(const char* hubLabel) throw (CMMError);
+
627
+
628private:
+
629 // make object non-copyable
+
630 CMMCore(const CMMCore&);
+
631 CMMCore& operator=(const CMMCore&);
+
632
+
633private:
+
634 // LogManager should be the first data member, so that it is available for
+
635 // as long as possible during construction and (especially) destruction.
+
636 std::shared_ptr<mm::LogManager> logManager_;
+
637 mm::logging::Logger appLogger_;
+
638 mm::logging::Logger coreLogger_;
+
639
+
640 bool everSnapped_;
+
641
+
642 std::weak_ptr<CameraInstance> currentCameraDevice_;
+
643 std::weak_ptr<ShutterInstance> currentShutterDevice_;
+
644 std::weak_ptr<StageInstance> currentFocusDevice_;
+
645 std::weak_ptr<XYStageInstance> currentXYStageDevice_;
+
646 std::weak_ptr<AutoFocusInstance> currentAutofocusDevice_;
+
647 std::weak_ptr<SLMInstance> currentSLMDevice_;
+
648 std::weak_ptr<GalvoInstance> currentGalvoDevice_;
+
649 std::weak_ptr<ImageProcessorInstance> currentImageProcessor_;
+
650
+
651 std::string channelGroup_;
+
652 long pollingIntervalMs_;
+
653 long timeoutMs_;
+
654 bool autoShutter_;
+
655 std::vector<double> *nullAffine_;
+
656 MM::Core* callback_; // core services for devices
+
657 ConfigGroupCollection* configGroups_;
+
658 CorePropertyCollection* properties_;
+
659 MMEventCallback* externalCallback_; // notification hook to the higher layer (e.g. GUI)
+
660 PixelSizeConfigGroup* pixelSizeGroup_;
+
661 CircularBuffer* cbuf_;
+
662
+
663 std::shared_ptr<CPluginManager> pluginManager_;
+
664 std::shared_ptr<mm::DeviceManager> deviceManager_;
+
665 std::map<int, std::string> errorText_;
+
666
+
667 // Must be unlocked when calling MMEventCallback or calling device methods
+
668 // or acquiring a module lock
+
669 mutable MMThreadLock stateCacheLock_;
+
670 mutable Configuration stateCache_; // Synchronized by stateCacheLock_
+
671
+
672 MMThreadLock* pPostedErrorsLock_;
+
673 mutable std::deque<std::pair< int, std::string> > postedErrors_;
+
674
+
675private:
+
676 void InitializeErrorMessages();
+
677 void CreateCoreProperties();
+
678
+
679 // Parameter/value validation
+
680 static void CheckDeviceLabel(const char* label) throw (CMMError);
+
681 static void CheckPropertyName(const char* propName) throw (CMMError);
+
682 static void CheckPropertyValue(const char* propValue) throw (CMMError);
+
683 static void CheckStateLabel(const char* stateLabel) throw (CMMError);
+
684 static void CheckConfigGroupName(const char* groupName) throw (CMMError);
+
685 static void CheckConfigPresetName(const char* presetName) throw (CMMError);
+
686 bool IsCoreDeviceLabel(const char* label) const throw (CMMError);
+
687
+
688 void applyConfiguration(const Configuration& config) throw (CMMError);
+
689 int applyProperties(std::vector<PropertySetting>& props, std::string& lastError);
+
690 void waitForDevice(std::shared_ptr<DeviceInstance> pDev) throw (CMMError);
+
691 Configuration getConfigGroupState(const char* group, bool fromCache) throw (CMMError);
+
692 std::string getDeviceErrorText(int deviceCode, std::shared_ptr<DeviceInstance> pDevice);
+
693 std::string getDeviceName(std::shared_ptr<DeviceInstance> pDev);
+
694 void logError(const char* device, const char* msg);
+
695 void updateAllowedChannelGroups();
+
696 void assignDefaultRole(std::shared_ptr<DeviceInstance> pDev);
+
697 void updateCoreProperty(const char* propName, MM::DeviceType devType) throw (CMMError);
+
698 void loadSystemConfigurationImpl(const char* fileName) throw (CMMError);
+
699 void initializeAllDevicesSerial() throw (CMMError);
+
700 void initializeAllDevicesParallel() throw (CMMError);
+
701 int initializeVectorOfDevices(std::vector<std::pair<std::shared_ptr<DeviceInstance>, std::string> > pDevices);
+
702};
+
+
703
+
704#if defined(__GNUC__) && !defined(__clang__)
+
705#pragma GCC diagnostic pop
+
706#endif
+
707
+
708#ifdef _MSC_VER
+
709#pragma warning(pop)
+
710#endif
+
The Micro-Manager Core.
Definition MMCore.h:135
+
void loadSystemState(const char *fileName)
Definition MMCore.cpp:6412
+
long getStageSequenceMaxLength(const char *stageLabel)
Definition MMCore.cpp:2306
+
void updateCoreProperties()
Definition MMCore.cpp:1036
+
std::string getStateLabel(const char *stateDeviceLabel)
Definition MMCore.cpp:4794
+
long getXYStageSequenceMaxLength(const char *xyStageLabel)
Definition MMCore.cpp:2437
+
bool hasPropertyLimits(const char *label, const char *propName)
Definition MMCore.cpp:4011
+
std::string getAutoFocusDevice()
Definition MMCore.cpp:3373
+
CMMCore()
Definition MMCore.cpp:127
+
void setPixelSizeAffine(const char *resolutionID, std::vector< double > affine)
Definition MMCore.cpp:5092
+
void fullFocus()
Definition MMCore.cpp:7092
+
std::vector< std::string > getAllowedPropertyValues(const char *label, const char *propName)
Definition MMCore.cpp:3755
+
void enableDebugLog(bool enable)
Definition MMCore.cpp:292
+
Configuration getConfigGroupState(const char *group)
Definition MMCore.cpp:534
+
long getBufferTotalCapacity()
Definition MMCore.cpp:3284
+
unsigned getSLMWidth(const char *slmLabel)
Definition MMCore.cpp:5962
+
std::vector< std::string > getInstalledDevices(const char *hubLabel)
Definition MMCore.cpp:7685
+
std::string getFocusDevice()
Definition MMCore.cpp:3347
+
double getMagnificationFactor() const
Definition MMCore.cpp:5683
+
void enableContinuousFocus(bool enable)
Definition MMCore.cpp:7008
+
void runGalvoSequence(const char *galvoLabel)
Definition MMCore.cpp:6342
+
void deleteGalvoPolygons(const char *galvoLabel)
Definition MMCore.cpp:6264
+
void stopXYStageSequence(const char *xyStageLabel)
Definition MMCore.cpp:2419
+
void stopSecondaryLogFile(int handle)
Definition MMCore.cpp:359
+
double getPropertyLowerLimit(const char *label, const char *propName)
Definition MMCore.cpp:3981
+
void home(const char *xyOrZStageLabel)
Definition MMCore.cpp:1780
+
void runGalvoPolygons(const char *galvoLabel)
Definition MMCore.cpp:6323
+
void setConfig(const char *groupName, const char *configName)
Definition MMCore.cpp:5154
+
std::string getChannelGroup()
Definition MMCore.cpp:3558
+
unsigned getNumberOfCameraChannels()
Definition MMCore.cpp:4254
+
double getPosition()
Definition MMCore.cpp:1548
+
bool isMultiROISupported()
Definition MMCore.cpp:4560
+
void setAdapterOriginXY(const char *xyStageLabel, double newXUm, double newYUm)
Definition MMCore.cpp:2015
+
bool isBufferOverflowed() const
Definition MMCore.cpp:3310
+
void loadSystemConfiguration(const char *fileName)
Definition MMCore.cpp:6670
+
void startPropertySequence(const char *label, const char *propName)
Definition MMCore.cpp:4062
+
void enableStderrLog(bool enable)
Definition MMCore.cpp:310
+
std::vector< double > getPixelSizeAffine()
Definition MMCore.cpp:5595
+
std::string getSLMDevice()
Definition MMCore.cpp:3426
+
void writeToSerialPort(const char *portLabel, const std::vector< char > &data)
Definition MMCore.cpp:5799
+
void setXYStageDevice(const char *xyStageLabel)
Definition MMCore.cpp:3641
+
void getMultiROI(std::vector< unsigned > &xs, std::vector< unsigned > &ys, std::vector< unsigned > &widths, std::vector< unsigned > &heights)
Definition MMCore.cpp:4630
+
void startStageSequence(const char *stageLabel)
Definition MMCore.cpp:2271
+
void setSystemState(const Configuration &conf)
Definition MMCore.cpp:607
+
void getGalvoPosition(const char *galvoLabel, double &x_stage, double &y_stage)
Definition MMCore.cpp:6157
+
void setSLMDevice(const char *slmLabel)
Definition MMCore.cpp:3478
+
void setOriginXY()
Definition MMCore.cpp:1855
+
void setGalvoDevice(const char *galvoLabel)
Definition MMCore.cpp:3503
+
void loadDevice(const char *label, const char *moduleName, const char *deviceName)
Definition MMCore.cpp:673
+
void stopSequenceAcquisition()
Definition MMCore.cpp:3002
+
~CMMCore()
Definition MMCore.cpp:168
+
void displaySLMImage(const char *slmLabel)
Definition MMCore.cpp:5912
+
unsigned getSLMHeight(const char *slmLabel)
Definition MMCore.cpp:5977
+
void setPosition(const char *stageLabel, double position)
Definition MMCore.cpp:1462
+
void snapImage()
Definition MMCore.cpp:2492
+
void stopExposureSequence(const char *cameraLabel)
Definition MMCore.cpp:2155
+
unsigned getBytesPerPixel()
Definition MMCore.cpp:4186
+
void startSequenceAcquisition(long numImages, double intervalMs, bool stopOnOverflow)
Definition MMCore.cpp:2813
+
void setFocusDevice(const char *focusLabel)
Definition MMCore.cpp:3617
+
bool debugLogEnabled()
Definition MMCore.cpp:301
+
void definePixelSizeConfig(const char *resolutionID, const char *deviceLabel, const char *propName, const char *value)
Definition MMCore.cpp:5025
+
long getExposureSequenceMaxLength(const char *cameraLabel)
Definition MMCore.cpp:2172
+
std::string getDeviceLibrary(const char *label)
Definition MMCore.cpp:1135
+
void setXYPosition(const char *xyStageLabel, double x, double y)
Definition MMCore.cpp:1559
+
static void enableFeature(const char *name, bool enable)
Definition MMCore.cpp:222
+
void loadExposureSequence(const char *cameraLabel, std::vector< double > exposureSequence_ms)
Definition MMCore.cpp:2192
+
std::vector< double > getPixelSizeAffineByID(const char *resolutionID)
Definition MMCore.cpp:5664
+
void deletePixelSizeConfig(const char *configName)
Definition MMCore.cpp:5433
+
bool isGroupDefined(const char *groupName)
Definition MMCore.cpp:5724
+
unsigned getImageWidth()
Definition MMCore.cpp:4141
+
void incrementalFocus()
Definition MMCore.cpp:7115
+
static bool isFeatureEnabled(const char *name)
Definition MMCore.cpp:239
+
void getXYPosition(const char *xyStageLabel, double &x_stage, double &y_stage)
Definition MMCore.cpp:1628
+
void renameConfig(const char *groupName, const char *oldConfigName, const char *newConfigName)
Definition MMCore.cpp:5188
+
void loadStageSequence(const char *stageLabel, std::vector< double > positionSequence)
Definition MMCore.cpp:2326
+
void logMessage(const char *msg)
Definition MMCore.cpp:272
+
std::vector< std::string > getDevicePropertyNames(const char *label)
Definition MMCore.cpp:3706
+
void setAdapterOrigin(const char *stageLabel, double newZUm)
Definition MMCore.cpp:1973
+
void stopPropertySequence(const char *label, const char *propName)
Definition MMCore.cpp:4080
+
void setAutoShutter(bool state)
Definition MMCore.cpp:2571
+
void setSLMPixelsTo(const char *slmLabel, unsigned char intensity)
Definition MMCore.cpp:5878
+
void setShutterOpen(bool state)
Definition MMCore.cpp:2622
+
bool isStageSequenceable(const char *stageLabel)
Definition MMCore.cpp:2230
+
bool isSequenceRunning()
Definition MMCore.cpp:3029
+
bool deviceTypeBusy(MM::DeviceType devType)
Definition MMCore.cpp:1405
+
void setDeviceAdapterSearchPaths(const std::vector< std::string > &paths)
Definition MMCore.cpp:649
+
long getImageBufferSize()
Definition MMCore.cpp:2788
+
std::vector< std::string > getAvailableConfigGroups() const
Definition MMCore.cpp:5286
+
std::string getParentLabel(const char *peripheralLabel)
Definition MMCore.cpp:1196
+
bool isXYStageSequenceable(const char *xyStageLabel)
Definition MMCore.cpp:2380
+
Configuration getConfigGroupStateFromCache(const char *group)
Definition MMCore.cpp:543
+
double getAutoFocusOffset()
Definition MMCore.cpp:7162
+
void startExposureSequence(const char *cameraLabel)
Definition MMCore.cpp:2138
+
void setSLMExposure(const char *slmLabel, double exposure_ms)
Definition MMCore.cpp:5930
+
std::vector< std::string > getAvailableConfigs(const char *configGroup) const
Definition MMCore.cpp:5267
+
DeviceInitializationState getDeviceInitializationState(const char *label) const
Definition MMCore.cpp:1087
+
void * getNBeforeLastImageMD(unsigned long n, Metadata &md) const
Definition MMCore.cpp:3136
+
bool isPixelSizeConfigDefined(const char *resolutionID) const
Definition MMCore.cpp:5058
+
void reset()
Definition MMCore.cpp:821
+
void updateSystemStateCache()
Definition MMCore.cpp:1108
+
std::string getPrimaryLogFile() const
Definition MMCore.cpp:264
+
double getPropertyUpperLimit(const char *label, const char *propName)
Definition MMCore.cpp:3995
+
void setCameraDevice(const char *cameraLabel)
Definition MMCore.cpp:3665
+
bool getAutoShutter()
Definition MMCore.cpp:2585
+
Configuration getSystemState()
Definition MMCore.cpp:450
+
bool getShutterOpen()
Definition MMCore.cpp:2654
+
Configuration getPixelSizeConfigData(const char *configName)
Definition MMCore.cpp:5389
+
void setSLMImage(const char *slmLabel, unsigned char *pixels)
Definition MMCore.cpp:5842
+
void defineConfigGroup(const char *groupName)
Definition MMCore.cpp:4910
+
Configuration getConfigState(const char *group, const char *config)
Definition MMCore.cpp:514
+
void unloadDevice(const char *label)
Definition MMCore.cpp:766
+
long getBufferFreeCapacity()
Definition MMCore.cpp:3298
+
void unloadLibrary(const char *moduleName)
Definition MMCore.cpp:1149
+
void defineStateLabel(const char *stateDeviceLabel, long state, const char *stateLabel)
Definition MMCore.cpp:4810
+
void renameConfigGroup(const char *oldGroupName, const char *newGroupName)
Definition MMCore.cpp:4945
+
long getState(const char *stateDeviceLabel)
Definition MMCore.cpp:4716
+
double getGalvoYRange(const char *galvoLabel)
Definition MMCore.cpp:6221
+
bool hasProperty(const char *label, const char *propName)
Definition MMCore.cpp:3931
+
std::vector< std::string > getStateLabels(const char *stateDeviceLabel)
Definition MMCore.cpp:4871
+
std::string getDeviceName(const char *label)
Definition MMCore.cpp:1183
+
void initializeDevice(const char *label)
Definition MMCore.cpp:1066
+
bool stderrLogEnabled()
Definition MMCore.cpp:318
+
void stopStageSequence(const char *stageLabel)
Definition MMCore.cpp:2288
+
std::string getXYStageDevice()
Definition MMCore.cpp:3360
+
std::vector< std::string > getAvailablePixelSizeConfigs() const
Definition MMCore.cpp:5295
+
long getStateFromLabel(const char *stateDeviceLabel, const char *stateLabel)
Definition MMCore.cpp:4892
+
void waitForConfig(const char *group, const char *configName)
Definition MMCore.cpp:1442
+
std::vector< char > readFromSerialPort(const char *portLabel)
Definition MMCore.cpp:5815
+
std::vector< std::string > getAvailableDeviceDescriptions(const char *library)
Definition MMCore.cpp:392
+
void getROI(int &x, int &y, int &xSize, int &ySize)
Definition MMCore.cpp:4438
+
void setShutterDevice(const char *shutterLabel)
Definition MMCore.cpp:3568
+
void setDeviceDelayMs(const char *label, double delayMs)
Definition MMCore.cpp:1273
+
void waitForSystem()
Definition MMCore.cpp:1392
+
void loadXYStageSequence(const char *xyStageLabel, std::vector< double > xSequence, std::vector< double > ySequence)
Definition MMCore.cpp:2459
+
void setRelativeXYPosition(const char *xyStageLabel, double dx, double dy)
Definition MMCore.cpp:1594
+
void setPixelSizeConfig(const char *resolutionID)
Definition MMCore.cpp:5123
+
std::string getImageProcessorDevice()
Definition MMCore.cpp:3411
+
std::string getShutterDevice()
Definition MMCore.cpp:3333
+
void setMultiROI(std::vector< unsigned > xs, std::vector< unsigned > ys, std::vector< unsigned > widths, std::vector< unsigned > heights)
Definition MMCore.cpp:4595
+
double getGalvoYMinimum(const char *galvoLabel)
Definition MMCore.cpp:6233
+
Configuration getConfigData(const char *configGroup, const char *configName)
Definition MMCore.cpp:5365
+
void setImageProcessorDevice(const char *procLabel)
Definition MMCore.cpp:3454
+
void waitForDevice(const char *label)
Definition MMCore.cpp:1330
+
bool isContinuousFocusEnabled()
Definition MMCore.cpp:7038
+
void setAutoFocusOffset(double offset)
Definition MMCore.cpp:7139
+
std::vector< std::string > getAvailableDevices(const char *library)
Definition MMCore.cpp:381
+
std::string getCameraDevice()
Definition MMCore.cpp:3319
+
void clearROI()
Definition MMCore.cpp:4538
+
void setPrimaryLogFile(const char *filename, bool truncate=false)
Definition MMCore.cpp:252
+
unsigned getImageHeight()
Definition MMCore.cpp:4163
+
long getNumberOfStates(const char *stateDeviceLabel)
Definition MMCore.cpp:4736
+
void saveSystemConfiguration(const char *fileName)
Definition MMCore.cpp:6485
+
void setOriginY()
Definition MMCore.cpp:1923
+
void setGalvoIlluminationState(const char *galvoLabel, bool on)
Definition MMCore.cpp:6176
+
void setFocusDirection(const char *stageLabel, int sign)
Set the focus direction of a stage.
Definition MMCore.cpp:2090
+
MM::DeviceType getDeviceType(const char *label)
Definition MMCore.cpp:1122
+
void * getImage()
Definition MMCore.cpp:2682
+
void setAutoFocusDevice(const char *focusLabel)
Definition MMCore.cpp:3387
+
double getPixelSizeUm()
Definition MMCore.cpp:5519
+
void setExposure(double exp)
Definition MMCore.cpp:4297
+
std::vector< std::string > getDeviceAdapterSearchPaths()
Definition MMCore.cpp:632
+
unsigned getSLMNumberOfComponents(const char *slmLabel)
Definition MMCore.cpp:5992
+
void setCircularBufferMemoryFootprint(unsigned sizeMB)
Definition MMCore.cpp:3212
+
std::string getPropertyFromCache(const char *deviceLabel, const char *propName) const
Definition MMCore.cpp:3813
+
std::vector< std::string > getDeviceAdapterNames()
Definition MMCore.cpp:661
+
std::string getDeviceDescription(const char *label)
Definition MMCore.cpp:1233
+
bool usesDeviceDelay(const char *label)
Definition MMCore.cpp:1289
+
std::string getProperty(const char *label, const char *propName)
Definition MMCore.cpp:3785
+
std::string getAPIVersionInfo() const
Definition MMCore.cpp:434
+
void saveSystemState(const char *fileName)
Definition MMCore.cpp:6378
+
void setStageLinearSequence(const char *stageLabel, double dZ_um, int nSlices)
Definition MMCore.cpp:2360
+
unsigned getCircularBufferMemoryFootprint()
Definition MMCore.cpp:3260
+
bool isContinuousFocusDrive(const char *stageLabel)
Definition MMCore.cpp:7079
+
void initializeCircularBuffer()
Definition MMCore.cpp:2922
+
int startSecondaryLogFile(const char *filename, bool enableDebug, bool truncate=true, bool synchronous=false)
Definition MMCore.cpp:337
+
void setROI(int x, int y, int xSize, int ySize)
Definition MMCore.cpp:4398
+
void loadGalvoPolygons(const char *galvoLabel)
Definition MMCore.cpp:6284
+
void registerCallback(MMEventCallback *cb)
Definition MMCore.cpp:6943
+
bool isPropertySequenceable(const char *label, const char *propName)
Definition MMCore.cpp:4027
+
static void noop()
A static method that does nothing.
Definition MMCore.h:149
+
void defineConfig(const char *groupName, const char *configName)
Definition MMCore.cpp:4970
+
Configuration getSystemStateCache() const
Definition MMCore.cpp:504
+
std::string getCurrentConfigFromCache(const char *groupName)
Definition MMCore.cpp:5339
+
void setStateLabel(const char *stateDeviceLabel, const char *stateLabel)
Definition MMCore.cpp:4757
+
long getSLMSequenceMaxLength(const char *slmLabel)
Definition MMCore.cpp:6021
+
MM::PropertyType getPropertyType(const char *label, const char *propName)
Definition MMCore.cpp:4124
+
void setParentLabel(const char *deviceLabel, const char *parentHubLabel)
Definition MMCore.cpp:1209
+
void waitForDeviceType(MM::DeviceType devType)
Definition MMCore.cpp:1430
+
void setGalvoPosition(const char *galvoLabel, double x, double y)
Definition MMCore.cpp:6138
+
std::string getGalvoChannel(const char *galvoLabel)
Definition MMCore.cpp:6361
+
void loadSLMSequence(const char *slmLabel, std::vector< unsigned char * > imageSequence)
Definition MMCore.cpp:6072
+
void startContinuousSequenceAcquisition(double intervalMs)
Definition MMCore.cpp:2967
+
void sleep(double intervalMs) const
Definition MMCore.cpp:1319
+
void setSerialPortCommand(const char *portLabel, const char *command, const char *term)
Definition MMCore.cpp:5756
+
void * popNextImage()
Definition MMCore.cpp:3160
+
void * getLastImage()
Definition MMCore.cpp:3064
+
std::string getCurrentPixelSizeConfig()
Definition MMCore.cpp:5451
+
std::string getCameraChannelName(unsigned int channelNr)
Definition MMCore.cpp:4275
+
double getSLMExposure(const char *slmLabel)
Definition MMCore.cpp:5947
+
unsigned getSLMBytesPerPixel(const char *slmLabel)
Definition MMCore.cpp:6006
+
void unloadAllDevices()
Definition MMCore.cpp:787
+
void setOriginX()
Definition MMCore.cpp:1889
+
void setState(const char *stateDeviceLabel, long state)
Definition MMCore.cpp:4678
+
void setRelativePosition(const char *stageLabel, double d)
Definition MMCore.cpp:1494
+
std::string getCurrentConfig(const char *groupName)
Definition MMCore.cpp:5309
+
void prepareSequenceAcquisition(const char *cameraLabel)
Definition MMCore.cpp:2898
+
bool deviceBusy(const char *label)
Definition MMCore.cpp:1304
+
void setSerialProperties(const char *portName, const char *answerTimeout, const char *baudRate, const char *delayBetweenCharsMs, const char *handshaking, const char *parity, const char *stopBits)
Definition MMCore.cpp:5735
+
MM::DeviceDetectionStatus detectDevice(const char *deviceLabel)
Definition MMCore.cpp:7573
+
int getFocusDirection(const char *stageLabel)
Get the focus direction of a stage.
Definition MMCore.cpp:2063
+
double getYPosition()
Definition MMCore.cpp:1714
+
void startSLMSequence(const char *slmLabel)
Definition MMCore.cpp:6039
+
std::vector< long > getAvailableDeviceTypes(const char *library)
Definition MMCore.cpp:413
+
void setProperty(const char *label, const char *propName, const char *propValue)
Definition MMCore.cpp:3838
+
std::vector< std::string > getLoadedDevicesOfType(MM::DeviceType devType) const
Definition MMCore.cpp:3734
+
void initializeAllDevices()
Definition MMCore.cpp:856
+
double getLastFocusScore()
Definition MMCore.cpp:6954
+
void * popNextImageMD(unsigned channel, unsigned slice, Metadata &md)
Definition MMCore.cpp:3174
+
bool isPropertyReadOnly(const char *label, const char *propName)
Definition MMCore.cpp:3949
+
std::string getGalvoDevice()
Definition MMCore.cpp:3440
+
double getGalvoXRange(const char *galvoLabel)
Definition MMCore.cpp:6197
+
double getDeviceDelayMs(const char *label)
Definition MMCore.cpp:1255
+
void startXYStageSequence(const char *xyStageLabel)
Definition MMCore.cpp:2402
+
std::vector< std::string > getLoadedDevices() const
Definition MMCore.cpp:3722
+
bool systemBusy()
Definition MMCore.cpp:1383
+
bool isPropertyPreInit(const char *label, const char *propName)
Definition MMCore.cpp:3967
+
bool isMultiROIEnabled()
Definition MMCore.cpp:4574
+
bool supportsDeviceDetection(const char *deviceLabel)
Definition MMCore.cpp:7548
+
std::string getCoreErrorText(int code) const
Definition MMCore.cpp:7499
+
double getPixelSizeUmByID(const char *resolutionID)
Definition MMCore.cpp:5580
+
long getRemainingImageCount()
Definition MMCore.cpp:3272
+
double getExposure()
Definition MMCore.cpp:4350
+
void setChannelGroup(const char *channelGroup)
Definition MMCore.cpp:3527
+
double getGalvoXMinimum(const char *galvoLabel)
Definition MMCore.cpp:6209
+
long getPropertySequenceMaxLength(const char *label, const char *propName)
Definition MMCore.cpp:4044
+
bool isExposureSequenceable(const char *cameraLabel)
Definition MMCore.cpp:2117
+
bool isConfigDefined(const char *groupName, const char *configName)
Definition MMCore.cpp:5711
+
void stopSLMSequence(const char *slmLabel)
Definition MMCore.cpp:6055
+
void setGalvoPolygonRepetitions(const char *galvoLabel, int repetitions)
Definition MMCore.cpp:6303
+
void deleteConfigGroup(const char *groupName)
Definition MMCore.cpp:4926
+
void loadPropertySequence(const char *label, const char *propName, std::vector< std::string > eventSequence)
Definition MMCore.cpp:4099
+
std::string getVersionInfo() const
Definition MMCore.cpp:369
+
void clearCircularBuffer()
Definition MMCore.cpp:3204
+
unsigned getNumberOfComponents()
Definition MMCore.cpp:4233
+
void deleteConfig(const char *groupName, const char *configName)
Definition MMCore.cpp:5210
+
void stop(const char *xyOrZStageLabel)
Definition MMCore.cpp:1726
+
bool isContinuousFocusLocked()
Definition MMCore.cpp:7061
+
void setOrigin()
Definition MMCore.cpp:1958
+
double getXPosition()
Definition MMCore.cpp:1681
+
unsigned getImageBitDepth()
Definition MMCore.cpp:4211
+
void pointGalvoAndFire(const char *galvoLabel, double x, double y, double pulseTime_us)
Definition MMCore.cpp:6102
+
void addGalvoPolygonVertex(const char *galvoLabel, int polygonIndex, double x, double y)
Definition MMCore.cpp:6245
+
std::string getSerialPortAnswer(const char *portLabel, const char *term)
Definition MMCore.cpp:5776
+
void renamePixelSizeConfig(const char *oldConfigName, const char *newConfigName)
Definition MMCore.cpp:5412
+
void setPixelSizeUm(const char *resolutionID, double pixSize)
Definition MMCore.cpp:5068
+
bool isStageLinearSequenceable(const char *stageLabel)
Definition MMCore.cpp:2251
+
double getCurrentFocusScore()
Definition MMCore.cpp:6982
+
Core error class. Exceptions thrown by the Core public API are of this type.
Definition Error.h:58
+
Definition PluginManager.h:36
+
Definition CircularBuffer.h:53
+
Definition ConfigGroup.h:167
+
Definition Configuration.h:98
+
Definition CoreCallback.h:44
+
Definition CoreProperty.h:62
+
Definition MMEventCallback.h:28
+
Definition ConfigGroup.h:427
+
Definition Configuration.h:45
diff --git a/_m_m_event_callback_8h_source.html b/_m_m_event_callback_8h_source.html index d318dbf..f6f8c7d 100644 --- a/_m_m_event_callback_8h_source.html +++ b/_m_m_event_callback_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: MMEventCallback.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,119 +26,127 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
MMEventCallback.h
+
MMEventCallback.h
-
1 // FILE: MMEventCallback.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Callback class used to send notifications from MMCore to
-
7 // higher levels (such as GUI)
-
8 //
-
9 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 12/10/2007
-
10 // COPYRIGHT: University of California, San Francisco, 2007
-
11 //
-
12 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
13 // License text is included with the source distribution.
-
14 //
-
15 // This file is distributed in the hope that it will be useful,
-
16 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
17 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
18 //
-
19 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
20 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
21 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
22 // CVS: $Id: Configuration.h 2 2007-02-27 23:33:17Z nenad $
-
23 //
-
24 #pragma once
-
25 #include <iostream>
-
26 
- -
28 {
-
29 public:
-
30  MMEventCallback() {}
-
31  virtual ~MMEventCallback() {}
-
32 
-
33  virtual void onPropertiesChanged()
-
34  {
-
35  std::cout << "onPropertiesChanged()\n";
-
36  }
-
37 
-
38  virtual void onPropertyChanged(const char* name, const char* propName, const char* propValue)
-
39  {
-
40  std::cout << "onPropertyChanged() " << name << " " << propName << " " << propValue << '\n';
-
41  }
-
42 
-
43  virtual void onChannelGroupChanged(const char* newChannelGroupName)
-
44  {
-
45  std::cout << "onChannelGroupChanged() " << newChannelGroupName << '\n';
-
46  }
-
47 
-
48  virtual void onConfigGroupChanged(const char* groupName, const char* newConfigName)
-
49  {
-
50  std::cout << "onConfigGroupChanged() " << groupName << " " << newConfigName << '\n';
-
51  }
-
52 
-
53  virtual void onSystemConfigurationLoaded()
-
54  {
-
55  std::cout << "onSystemConfigurationLoaded() \n";
-
56  }
-
57 
-
58  virtual void onPixelSizeChanged(double newPixelSizeUm)
-
59  {
-
60  std::cout << "onPixelSizeChanged() " << newPixelSizeUm << '\n';
-
61  }
-
62 
-
63  virtual void onPixelSizeAffineChanged(double v0, double v1, double v2, double v3, double v4, double v5)
-
64  {
-
65  std::cout << "onPixelSizeAffineChanged() " << v0 << "-" << v1 << "-" << v2 << "-" << v3 << "-" << v4 << "-" << v5 << '\n';
-
66  }
-
67 
-
68  virtual void onStagePositionChanged(char* name, double pos)
-
69  {
-
70  std::cout << "onStagePositionChanged()" << name << " " << pos << '\n';
-
71  }
-
72 
-
73  virtual void onXYStagePositionChanged(char* name, double xpos, double ypos)
-
74  {
-
75  std::cout << "onXYStagePositionChanged()" << name << " " << xpos;
-
76  std::cout << " " << ypos << '\n';
-
77  }
-
78 
-
79  virtual void onExposureChanged(char* name, double newExposure)
-
80  {
-
81  std::cout << "onExposureChanged()" << name << " " << newExposure << '\n';
-
82  }
-
83 
-
84  virtual void onSLMExposureChanged(char* name, double newExposure)
-
85  {
-
86  std::cout << "onSLMExposureChanged()" << name << " " << newExposure << '\n';
-
87  }
-
88 
-
89 };
-
Definition: MMEventCallback.h:28
+
1
+
2// FILE: MMEventCallback.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Callback class used to send notifications from MMCore to
+
7// higher levels (such as GUI)
+
8//
+
9// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 12/10/2007
+
10// COPYRIGHT: University of California, San Francisco, 2007
+
11//
+
12// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
13// License text is included with the source distribution.
+
14//
+
15// This file is distributed in the hope that it will be useful,
+
16// but WITHOUT ANY WARRANTY; without even the implied warranty
+
17// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
18//
+
19// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
20// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
21// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
22// CVS: $Id: Configuration.h 2 2007-02-27 23:33:17Z nenad $
+
23//
+
24#pragma once
+
25#include <iostream>
+
26
+
+ +
28{
+
29public:
+ +
31 virtual ~MMEventCallback() {}
+
32
+
33 virtual void onPropertiesChanged()
+
34 {
+
35 std::cout << "onPropertiesChanged()\n";
+
36 }
+
37
+
38 virtual void onPropertyChanged(const char* name, const char* propName, const char* propValue)
+
39 {
+
40 std::cout << "onPropertyChanged() " << name << " " << propName << " " << propValue << '\n';
+
41 }
+
42
+
43 virtual void onChannelGroupChanged(const char* newChannelGroupName)
+
44 {
+
45 std::cout << "onChannelGroupChanged() " << newChannelGroupName << '\n';
+
46 }
+
47
+
48 virtual void onConfigGroupChanged(const char* groupName, const char* newConfigName)
+
49 {
+
50 std::cout << "onConfigGroupChanged() " << groupName << " " << newConfigName << '\n';
+
51 }
+
52
+
53 virtual void onSystemConfigurationLoaded()
+
54 {
+
55 std::cout << "onSystemConfigurationLoaded() \n";
+
56 }
+
57
+
58 virtual void onPixelSizeChanged(double newPixelSizeUm)
+
59 {
+
60 std::cout << "onPixelSizeChanged() " << newPixelSizeUm << '\n';
+
61 }
+
62
+
63 virtual void onPixelSizeAffineChanged(double v0, double v1, double v2, double v3, double v4, double v5)
+
64 {
+
65 std::cout << "onPixelSizeAffineChanged() " << v0 << "-" << v1 << "-" << v2 << "-" << v3 << "-" << v4 << "-" << v5 << '\n';
+
66 }
+
67
+
68 virtual void onStagePositionChanged(char* name, double pos)
+
69 {
+
70 std::cout << "onStagePositionChanged()" << name << " " << pos << '\n';
+
71 }
+
72
+
73 virtual void onXYStagePositionChanged(char* name, double xpos, double ypos)
+
74 {
+
75 std::cout << "onXYStagePositionChanged()" << name << " " << xpos;
+
76 std::cout << " " << ypos << '\n';
+
77 }
+
78
+
79 virtual void onExposureChanged(char* name, double newExposure)
+
80 {
+
81 std::cout << "onExposureChanged()" << name << " " << newExposure << '\n';
+
82 }
+
83
+
84 virtual void onSLMExposureChanged(char* name, double newExposure)
+
85 {
+
86 std::cout << "onSLMExposureChanged()" << name << " " << newExposure << '\n';
+
87 }
+
88
+
89};
+
+
Definition MMEventCallback.h:28
diff --git a/_plugin_manager_8h_source.html b/_plugin_manager_8h_source.html index e568c6d..135149d 100644 --- a/_plugin_manager_8h_source.html +++ b/_plugin_manager_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: PluginManager.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,96 +26,104 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
PluginManager.h
+
PluginManager.h
-
1 // FILE: PluginManager.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Loading/unloading of device adapter modules
-
7 //
-
8 // COPYRIGHT: University of California, San Francisco, 2006-2014
-
9 //
-
10 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
11 // License text is included with the source distribution.
-
12 //
-
13 // This file is distributed in the hope that it will be useful,
-
14 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
15 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
16 //
-
17 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
18 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
19 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
20 //
-
21 // AUTHOR: Nenad Amodaj, nenad@amodaj.com, 08/10/2005
-
22 
-
23 #pragma once
-
24 
-
25 #include "../MMDevice/DeviceThreads.h"
-
26 
-
27 #include <map>
-
28 #include <memory>
-
29 #include <string>
-
30 #include <vector>
-
31 
-
32 class LoadedDeviceAdapter;
-
33 
-
34 
-
35 class CPluginManager /* final */
-
36 {
-
37 public:
- -
39  ~CPluginManager();
-
40 
-
41  void UnloadPluginLibrary(const char* moduleName);
-
42 
-
43  // Device adapter search paths
-
44  template <typename TStringIter>
-
45  void SetSearchPaths(TStringIter begin, TStringIter end)
-
46  { searchPaths_.assign(begin, end); }
-
47  std::vector<std::string> GetSearchPaths() const { return searchPaths_; }
-
48  std::vector<std::string> GetAvailableDeviceAdapters();
-
49 
-
53  std::shared_ptr<LoadedDeviceAdapter>
-
54  GetDeviceAdapter(const std::string& moduleName);
-
55  std::shared_ptr<LoadedDeviceAdapter>
-
56  GetDeviceAdapter(const char* moduleName);
-
57 
-
58 private:
-
59  static std::vector<std::string> GetDefaultSearchPaths();
-
60  static void GetModules(std::vector<std::string> &modules, const char *path);
-
61  std::string FindInSearchPath(std::string filename);
-
62 
-
63  std::vector<std::string> searchPaths_;
-
64 
-
65  std::map< std::string, std::shared_ptr<LoadedDeviceAdapter> > moduleMap_;
-
66 };
-
Definition: PluginManager.h:36
-
void UnloadPluginLibrary(const char *moduleName)
Definition: PluginManager.cpp:161
-
std::vector< std::string > GetAvailableDeviceAdapters()
Definition: PluginManager.cpp:287
-
std::shared_ptr< LoadedDeviceAdapter > GetDeviceAdapter(const std::string &moduleName)
Definition: PluginManager.cpp:122
+
1
+
2// FILE: PluginManager.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Loading/unloading of device adapter modules
+
7//
+
8// COPYRIGHT: University of California, San Francisco, 2006-2014
+
9//
+
10// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
11// License text is included with the source distribution.
+
12//
+
13// This file is distributed in the hope that it will be useful,
+
14// but WITHOUT ANY WARRANTY; without even the implied warranty
+
15// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
16//
+
17// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
18// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
19// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
20//
+
21// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 08/10/2005
+
22
+
23#pragma once
+
24
+
25#include "../MMDevice/DeviceThreads.h"
+
26
+
27#include <map>
+
28#include <memory>
+
29#include <string>
+
30#include <vector>
+
31
+
32class LoadedDeviceAdapter;
+
33
+
34
+
+
35class CPluginManager /* final */
+
36{
+
37public:
+ + +
40
+
41 void UnloadPluginLibrary(const char* moduleName);
+
42
+
43 // Device adapter search paths
+
44 template <typename TStringIter>
+
45 void SetSearchPaths(TStringIter begin, TStringIter end)
+
46 { searchPaths_.assign(begin, end); }
+
47 std::vector<std::string> GetSearchPaths() const { return searchPaths_; }
+
48 std::vector<std::string> GetAvailableDeviceAdapters();
+
49
+
53 std::shared_ptr<LoadedDeviceAdapter>
+
54 GetDeviceAdapter(const std::string& moduleName);
+
55 std::shared_ptr<LoadedDeviceAdapter>
+
56 GetDeviceAdapter(const char* moduleName);
+
57
+
58private:
+
59 static std::vector<std::string> GetDefaultSearchPaths();
+
60 static void GetModules(std::vector<std::string> &modules, const char *path);
+
61 std::string FindInSearchPath(std::string filename);
+
62
+
63 std::vector<std::string> searchPaths_;
+
64
+
65 std::map< std::string, std::shared_ptr<LoadedDeviceAdapter> > moduleMap_;
+
66};
+
+
Definition PluginManager.h:36
+
void UnloadPluginLibrary(const char *moduleName)
Definition PluginManager.cpp:161
+
std::vector< std::string > GetAvailableDeviceAdapters()
Definition PluginManager.cpp:287
+
std::shared_ptr< LoadedDeviceAdapter > GetDeviceAdapter(const std::string &moduleName)
Definition PluginManager.cpp:122
diff --git a/_semaphore_8h_source.html b/_semaphore_8h_source.html index ed8f20d..6eba371 100644 --- a/_semaphore_8h_source.html +++ b/_semaphore_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Semaphore.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,73 +26,81 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
Semaphore.h
+
Semaphore.h
-
1 // FILE: Semaphore.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Synchronization primitive with counter.
-
7 //
-
8 // AUTHOR: Tomas Hanak, tomas.hanak@teledyne.com, 03/03/2021
-
9 // Andrej Bencur, andrej.bencur@teledyne.com, 03/03/2021
-
10 //
-
11 // COPYRIGHT: Teledyne Digital Imaging US, Inc., 2021
-
12 //
-
13 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
14 // License text is included with the source distribution.
-
15 //
-
16 // This file is distributed in the hope that it will be useful,
-
17 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
18 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
19 //
-
20 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
21 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
22 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
23 
-
24 #pragma once
-
25 
-
26 #include <condition_variable>
-
27 #include <cstddef>
-
28 #include <mutex>
-
29 
-
30 class Semaphore final
-
31 {
-
32 public:
-
33  explicit Semaphore();
-
34  explicit Semaphore(size_t initCount);
-
35 
-
36  void Wait(size_t count = 1);
-
37  void Release(size_t count = 1);
-
38 
-
39 private:
-
40  size_t count_{ 0 };
-
41  std::mutex mx_{};
-
42  std::condition_variable cv_{};
-
43 };
-
Definition: Semaphore.h:31
+
1
+
2// FILE: Semaphore.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Synchronization primitive with counter.
+
7//
+
8// AUTHOR: Tomas Hanak, tomas.hanak@teledyne.com, 03/03/2021
+
9// Andrej Bencur, andrej.bencur@teledyne.com, 03/03/2021
+
10//
+
11// COPYRIGHT: Teledyne Digital Imaging US, Inc., 2021
+
12//
+
13// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
14// License text is included with the source distribution.
+
15//
+
16// This file is distributed in the hope that it will be useful,
+
17// but WITHOUT ANY WARRANTY; without even the implied warranty
+
18// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
19//
+
20// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
21// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
22// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
23
+
24#pragma once
+
25
+
26#include <condition_variable>
+
27#include <cstddef>
+
28#include <mutex>
+
29
+
+
30class Semaphore final
+
31{
+
32public:
+
33 explicit Semaphore();
+
34 explicit Semaphore(size_t initCount);
+
35
+
36 void Wait(size_t count = 1);
+
37 void Release(size_t count = 1);
+
38
+
39private:
+
40 size_t count_{ 0 };
+
41 std::mutex mx_{};
+
42 std::condition_variable cv_{};
+
43};
+
+
Definition Semaphore.h:31
diff --git a/_task_8h_source.html b/_task_8h_source.html index 605de77..9266382 100644 --- a/_task_8h_source.html +++ b/_task_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Task.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,81 +26,89 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
Task.h
+
Task.h
-
1 // FILE: Task.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Base class for parallel processing via ThreadPool.
-
7 //
-
8 // AUTHOR: Tomas Hanak, tomas.hanak@teledyne.com, 03/03/2021
-
9 // Andrej Bencur, andrej.bencur@teledyne.com, 03/03/2021
-
10 //
-
11 // COPYRIGHT: Teledyne Digital Imaging US, Inc., 2021
-
12 //
-
13 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
14 // License text is included with the source distribution.
-
15 //
-
16 // This file is distributed in the hope that it will be useful,
-
17 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
18 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
19 //
-
20 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
21 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
22 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
23 
-
24 #pragma once
-
25 
-
26 #include <cstddef>
-
27 #include <memory>
-
28 
-
29 class Semaphore;
-
30 
-
31 class Task
-
32 {
-
33 public:
-
34  explicit Task(std::shared_ptr<Semaphore> semaphore, size_t taskIndex, size_t totalTaskCount);
-
35  virtual ~Task();
-
36 
-
37  Task(const Task&) = delete;
-
38  Task& operator=(const Task&) = delete;
-
39 
-
40  virtual void Execute() = 0;
-
41  void Done();
-
42 
-
43 private:
-
44  const std::shared_ptr<Semaphore> semaphore_;
-
45 
-
46 protected:
-
47  const size_t taskIndex_;
-
48  const size_t totalTaskCount_;
-
49  size_t usedTaskCount_;
-
50 };
-
Definition: Semaphore.h:31
-
Definition: Task.h:32
+
1
+
2// FILE: Task.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Base class for parallel processing via ThreadPool.
+
7//
+
8// AUTHOR: Tomas Hanak, tomas.hanak@teledyne.com, 03/03/2021
+
9// Andrej Bencur, andrej.bencur@teledyne.com, 03/03/2021
+
10//
+
11// COPYRIGHT: Teledyne Digital Imaging US, Inc., 2021
+
12//
+
13// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
14// License text is included with the source distribution.
+
15//
+
16// This file is distributed in the hope that it will be useful,
+
17// but WITHOUT ANY WARRANTY; without even the implied warranty
+
18// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
19//
+
20// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
21// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
22// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
23
+
24#pragma once
+
25
+
26#include <cstddef>
+
27#include <memory>
+
28
+
29class Semaphore;
+
30
+
+
31class Task
+
32{
+
33public:
+
34 explicit Task(std::shared_ptr<Semaphore> semaphore, size_t taskIndex, size_t totalTaskCount);
+
35 virtual ~Task();
+
36
+
37 Task(const Task&) = delete;
+
38 Task& operator=(const Task&) = delete;
+
39
+
40 virtual void Execute() = 0;
+
41 void Done();
+
42
+
43private:
+
44 const std::shared_ptr<Semaphore> semaphore_;
+
45
+
46protected:
+
47 const size_t taskIndex_;
+
48 const size_t totalTaskCount_;
+
49 size_t usedTaskCount_;
+
50};
+
+
Definition Semaphore.h:31
+
Definition Task.h:32
diff --git a/_task_set_8h_source.html b/_task_set_8h_source.html index 3f3e4cc..e78e267 100644 --- a/_task_set_8h_source.html +++ b/_task_set_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: TaskSet.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,101 +26,109 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
TaskSet.h
+
TaskSet.h
-
1 // FILE: TaskSet.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Base class for grouping tasks for one logical operation.
-
7 //
-
8 // AUTHOR: Tomas Hanak, tomas.hanak@teledyne.com, 03/03/2021
-
9 // Andrej Bencur, andrej.bencur@teledyne.com, 03/03/2021
-
10 //
-
11 // COPYRIGHT: Teledyne Digital Imaging US, Inc., 2021
-
12 //
-
13 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
14 // License text is included with the source distribution.
-
15 //
-
16 // This file is distributed in the hope that it will be useful,
-
17 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
18 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
19 //
-
20 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
21 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
22 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
23 
-
24 #pragma once
-
25 
-
26 #include "Semaphore.h"
-
27 #include "Task.h"
-
28 #include "ThreadPool.h"
-
29 
-
30 #include <memory>
-
31 #include <vector>
-
32 
-
33 class TaskSet
-
34 {
-
35 public:
-
36  explicit TaskSet(std::shared_ptr<ThreadPool> pool);
-
37  virtual ~TaskSet();
-
38 
-
39  TaskSet(const TaskSet&) = delete;
-
40  TaskSet& operator=(const TaskSet&) = delete;
-
41 
-
42  size_t GetUsedTaskCount() const;
-
43 
-
44  virtual void Execute();
-
45  virtual void Wait();
-
46 
-
47 protected:
-
48  template<class T,
-
49  // Private param to enforce the type T derives from Task class
-
50  typename std::enable_if<std::is_base_of<Task, T>::value, int>::type = 0>
-
51  void CreateTasks()
-
52  {
-
53  const size_t taskCount = pool_->GetSize();
-
54  tasks_.reserve(taskCount);
-
55  for (size_t n = 0; n < taskCount; ++n)
-
56  {
-
57  Task* task = new(std::nothrow) T(semaphore_, n, taskCount);
-
58  if (!task)
-
59  continue;
-
60  tasks_.push_back(task);
-
61  }
-
62  usedTaskCount_ = tasks_.size();
-
63  }
-
64 
-
65 protected:
-
66  const std::shared_ptr<ThreadPool> pool_;
-
67  const std::shared_ptr<Semaphore> semaphore_;
-
68  std::vector<Task*> tasks_{};
-
69  size_t usedTaskCount_{ 0 };
-
70 };
-
Definition: Task.h:32
-
Definition: TaskSet.h:34
+
1
+
2// FILE: TaskSet.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Base class for grouping tasks for one logical operation.
+
7//
+
8// AUTHOR: Tomas Hanak, tomas.hanak@teledyne.com, 03/03/2021
+
9// Andrej Bencur, andrej.bencur@teledyne.com, 03/03/2021
+
10//
+
11// COPYRIGHT: Teledyne Digital Imaging US, Inc., 2021
+
12//
+
13// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
14// License text is included with the source distribution.
+
15//
+
16// This file is distributed in the hope that it will be useful,
+
17// but WITHOUT ANY WARRANTY; without even the implied warranty
+
18// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
19//
+
20// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
21// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
22// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
23
+
24#pragma once
+
25
+
26#include "Semaphore.h"
+
27#include "Task.h"
+
28#include "ThreadPool.h"
+
29
+
30#include <memory>
+
31#include <vector>
+
32
+
+ +
34{
+
35public:
+
36 explicit TaskSet(std::shared_ptr<ThreadPool> pool);
+
37 virtual ~TaskSet();
+
38
+
39 TaskSet(const TaskSet&) = delete;
+
40 TaskSet& operator=(const TaskSet&) = delete;
+
41
+
42 size_t GetUsedTaskCount() const;
+
43
+
44 virtual void Execute();
+
45 virtual void Wait();
+
46
+
47protected:
+
48 template<class T,
+
49 // Private param to enforce the type T derives from Task class
+
50 typename std::enable_if<std::is_base_of<Task, T>::value, int>::type = 0>
+
51 void CreateTasks()
+
52 {
+
53 const size_t taskCount = pool_->GetSize();
+
54 tasks_.reserve(taskCount);
+
55 for (size_t n = 0; n < taskCount; ++n)
+
56 {
+
57 Task* task = new(std::nothrow) T(semaphore_, n, taskCount);
+
58 if (!task)
+
59 continue;
+
60 tasks_.push_back(task);
+
61 }
+
62 usedTaskCount_ = tasks_.size();
+
63 }
+
64
+
65protected:
+
66 const std::shared_ptr<ThreadPool> pool_;
+
67 const std::shared_ptr<Semaphore> semaphore_;
+
68 std::vector<Task*> tasks_{};
+
69 size_t usedTaskCount_{ 0 };
+
70};
+
+
Definition Task.h:32
+
Definition TaskSet.h:34
diff --git a/_task_set___copy_memory_8h_source.html b/_task_set___copy_memory_8h_source.html index ca7f31a..f4d2997 100644 --- a/_task_set___copy_memory_8h_source.html +++ b/_task_set___copy_memory_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: TaskSet_CopyMemory.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,88 +26,96 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
TaskSet_CopyMemory.h
+
TaskSet_CopyMemory.h
-
1 // FILE: TaskSet_CopyMemory.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: Task set for parallelized memory copy.
-
7 //
-
8 // AUTHOR: Tomas Hanak, tomas.hanak@teledyne.com, 03/03/2021
-
9 // Andrej Bencur, andrej.bencur@teledyne.com, 03/03/2021
-
10 //
-
11 // COPYRIGHT: Teledyne Digital Imaging US, Inc., 2021
-
12 //
-
13 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
14 // License text is included with the source distribution.
-
15 //
-
16 // This file is distributed in the hope that it will be useful,
-
17 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
18 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
19 //
-
20 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
21 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
22 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
23 
-
24 #pragma once
-
25 
-
26 #include "TaskSet.h"
-
27 
- -
29 {
-
30 private:
-
31  class ATask : public Task
-
32  {
-
33  public:
-
34  explicit ATask(std::shared_ptr<Semaphore> semDone, size_t taskIndex, size_t totalTaskCount);
-
35 
-
36  void SetUp(void* dst, const void* src, size_t bytes, size_t usedTaskCount);
-
37 
-
38  virtual void Execute() override;
-
39 
-
40  private:
-
41  void* dst_{ nullptr };
-
42  const void* src_{ nullptr };
-
43  size_t bytes_{ 0 };
-
44  };
-
45 
-
46 public:
-
47  explicit TaskSet_CopyMemory(std::shared_ptr<ThreadPool> pool);
-
48 
-
49  void SetUp(void* dst, const void* src, size_t bytes);
-
50 
-
51  virtual void Execute() override;
-
52  virtual void Wait() override;
-
53 
-
54  // Helper blocking method calling SetUp, Execute and Wait
-
55  void MemCopy(void* dst, const void* src, size_t bytes);
-
56 };
-
Definition: Task.h:32
-
Definition: TaskSet_CopyMemory.h:29
-
Definition: TaskSet.h:34
+
1
+
2// FILE: TaskSet_CopyMemory.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: Task set for parallelized memory copy.
+
7//
+
8// AUTHOR: Tomas Hanak, tomas.hanak@teledyne.com, 03/03/2021
+
9// Andrej Bencur, andrej.bencur@teledyne.com, 03/03/2021
+
10//
+
11// COPYRIGHT: Teledyne Digital Imaging US, Inc., 2021
+
12//
+
13// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
14// License text is included with the source distribution.
+
15//
+
16// This file is distributed in the hope that it will be useful,
+
17// but WITHOUT ANY WARRANTY; without even the implied warranty
+
18// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
19//
+
20// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
21// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
22// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
23
+
24#pragma once
+
25
+
26#include "TaskSet.h"
+
27
+
+ +
29{
+
30private:
+
31 class ATask : public Task
+
32 {
+
33 public:
+
34 explicit ATask(std::shared_ptr<Semaphore> semDone, size_t taskIndex, size_t totalTaskCount);
+
35
+
36 void SetUp(void* dst, const void* src, size_t bytes, size_t usedTaskCount);
+
37
+
38 virtual void Execute() override;
+
39
+
40 private:
+
41 void* dst_{ nullptr };
+
42 const void* src_{ nullptr };
+
43 size_t bytes_{ 0 };
+
44 };
+
45
+
46public:
+
47 explicit TaskSet_CopyMemory(std::shared_ptr<ThreadPool> pool);
+
48
+
49 void SetUp(void* dst, const void* src, size_t bytes);
+
50
+
51 virtual void Execute() override;
+
52 virtual void Wait() override;
+
53
+
54 // Helper blocking method calling SetUp, Execute and Wait
+
55 void MemCopy(void* dst, const void* src, size_t bytes);
+
56};
+
+
Definition Task.h:32
+
Definition TaskSet_CopyMemory.h:29
+
Definition TaskSet.h:34
diff --git a/_thread_pool_8h_source.html b/_thread_pool_8h_source.html index 08755b8..3426019 100644 --- a/_thread_pool_8h_source.html +++ b/_thread_pool_8h_source.html @@ -1,9 +1,9 @@ - + - - + + MMCore: ThreadPool.h Source File @@ -16,10 +16,9 @@
- - + @@ -27,87 +26,95 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ + +
-
-
ThreadPool.h
+
ThreadPool.h
-
1 // FILE: ThreadPool.h
-
3 // PROJECT: Micro-Manager
-
4 // SUBSYSTEM: MMCore
-
5 //-----------------------------------------------------------------------------
-
6 // DESCRIPTION: A class executing queued tasks on separate threads
-
7 // and scaling number of threads based on hardware.
-
8 //
-
9 // AUTHOR: Tomas Hanak, tomas.hanak@teledyne.com, 03/03/2021
-
10 // Andrej Bencur, andrej.bencur@teledyne.com, 03/03/2021
-
11 //
-
12 // COPYRIGHT: Teledyne Digital Imaging US, Inc., 2021
-
13 //
-
14 // LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
-
15 // License text is included with the source distribution.
-
16 //
-
17 // This file is distributed in the hope that it will be useful,
-
18 // but WITHOUT ANY WARRANTY; without even the implied warranty
-
19 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
20 //
-
21 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-
22 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
23 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
-
24 
-
25 #pragma once
-
26 
-
27 #include <condition_variable>
-
28 #include <deque>
-
29 #include <memory>
-
30 #include <mutex>
-
31 #include <thread>
-
32 #include <vector>
-
33 
-
34 class Task;
-
35 
-
36 class ThreadPool final
-
37 {
-
38 public:
-
39  explicit ThreadPool();
-
40  ~ThreadPool();
-
41 
-
42  size_t GetSize() const;
-
43 
-
44  void Execute(Task* task);
-
45  void Execute(const std::vector<Task*>& tasks);
-
46 
-
47 private:
-
48  void ThreadFunc();
-
49 
-
50 private:
-
51  std::vector<std::unique_ptr<std::thread>> threads_{};
-
52  bool abortFlag_{ false };
-
53  std::mutex mx_{};
-
54  std::condition_variable cv_{};
-
55  std::deque<Task*> queue_{};
-
56 };
-
Definition: Task.h:32
-
Definition: ThreadPool.h:37
+
1
+
2// FILE: ThreadPool.h
+
3// PROJECT: Micro-Manager
+
4// SUBSYSTEM: MMCore
+
5//-----------------------------------------------------------------------------
+
6// DESCRIPTION: A class executing queued tasks on separate threads
+
7// and scaling number of threads based on hardware.
+
8//
+
9// AUTHOR: Tomas Hanak, tomas.hanak@teledyne.com, 03/03/2021
+
10// Andrej Bencur, andrej.bencur@teledyne.com, 03/03/2021
+
11//
+
12// COPYRIGHT: Teledyne Digital Imaging US, Inc., 2021
+
13//
+
14// LICENSE: This file is distributed under the "Lesser GPL" (LGPL) license.
+
15// License text is included with the source distribution.
+
16//
+
17// This file is distributed in the hope that it will be useful,
+
18// but WITHOUT ANY WARRANTY; without even the implied warranty
+
19// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
20//
+
21// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+
22// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
23// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
+
24
+
25#pragma once
+
26
+
27#include <condition_variable>
+
28#include <deque>
+
29#include <memory>
+
30#include <mutex>
+
31#include <thread>
+
32#include <vector>
+
33
+
34class Task;
+
35
+
+
36class ThreadPool final
+
37{
+
38public:
+
39 explicit ThreadPool();
+ +
41
+
42 size_t GetSize() const;
+
43
+
44 void Execute(Task* task);
+
45 void Execute(const std::vector<Task*>& tasks);
+
46
+
47private:
+
48 void ThreadFunc();
+
49
+
50private:
+
51 std::vector<std::unique_ptr<std::thread>> threads_{};
+
52 bool abortFlag_{ false };
+
53 std::mutex mx_{};
+
54 std::condition_variable cv_{};
+
55 std::deque<Task*> queue_{};
+
56};
+
+
Definition Task.h:32
+
Definition ThreadPool.h:37
diff --git a/annotated.html b/annotated.html index 123faf4..89b5895 100644 --- a/annotated.html +++ b/annotated.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class List @@ -16,10 +16,9 @@
- - + @@ -27,58 +26,58 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ +
-
-
Class List
+
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
- + - + - - - + + + - + - + - + - + - + - + - + - + - + - +
 Nmm
 Nfeatures
 Nfeatures
 CFlags
 CDeviceManager
 CDeviceManager
 CDeviceModuleLockGuard
 CImgBuffer
 CFrameBuffer
 CLogManager
 CFrameBuffer
 CImgBuffer
 CLogManager
 CCircularBuffer
 CCMMCoreThe Micro-Manager Core
 CCMMCoreThe Micro-Manager Core
 CCMMErrorCore error class. Exceptions thrown by the Core public API are of this type
 CConfigGroup
 CConfigGroup
 CConfigGroupBase
 CConfigGroupCollection
 CConfigGroupCollection
 CConfiguration
 CCoreCallback
 CCoreCallback
 CCoreProperty
 CCorePropertyCollection
 CCorePropertyCollection
 CCPluginManager
 CMMEventCallback
 CMMEventCallback
 CPixelSizeConfigGroup
 CPixelSizeConfiguration
 CPixelSizeConfiguration
 CPropertySetting
 CSemaphore
 CSemaphore
 CTask
 CTaskSet
 CTaskSet
 CTaskSet_CopyMemory
 CThreadPool
 CThreadPool
diff --git a/bc_sd.png b/bc_sd.png new file mode 100644 index 0000000..31ca888 Binary files /dev/null and b/bc_sd.png differ diff --git a/bdwn.png b/bdwn.png deleted file mode 100644 index 940a0b9..0000000 Binary files a/bdwn.png and /dev/null differ diff --git a/class_c_m_m_core-members.html b/class_c_m_m_core-members.html index 7c02526..f2e1f7a 100644 --- a/class_c_m_m_core-members.html +++ b/class_c_m_m_core-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
- - + @@ -27,332 +26,332 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ +
-
-
CMMCore Member List
+
CMMCore Member List

This is the complete list of members for CMMCore, including all inherited members.

- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
addGalvoPolygonVertex(const char *galvoLabel, int polygonIndex, double x, double y)CMMCore
clearCircularBuffer()CMMCore
clearCircularBuffer()CMMCore
clearROI()CMMCore
CMMCore()CMMCore
CMMCore()CMMCore
CoreCallback (defined in CMMCore)CMMCorefriend
CorePropertyCollection (defined in CMMCore)CMMCorefriend
CorePropertyCollection (defined in CMMCore)CMMCorefriend
debugLogEnabled()CMMCore
defineConfig(const char *groupName, const char *configName)CMMCore
defineConfig(const char *groupName, const char *configName)CMMCore
defineConfig(const char *groupName, const char *configName, const char *deviceLabel, const char *propName, const char *value)CMMCore
defineConfigGroup(const char *groupName)CMMCore
defineConfigGroup(const char *groupName)CMMCore
definePixelSizeConfig(const char *resolutionID, const char *deviceLabel, const char *propName, const char *value)CMMCore
definePixelSizeConfig(const char *resolutionID)CMMCore
definePixelSizeConfig(const char *resolutionID)CMMCore
defineStateLabel(const char *stateDeviceLabel, long state, const char *stateLabel)CMMCore
deleteConfig(const char *groupName, const char *configName)CMMCore
deleteConfig(const char *groupName, const char *configName)CMMCore
deleteConfig(const char *groupName, const char *configName, const char *deviceLabel, const char *propName)CMMCore
deleteConfigGroup(const char *groupName)CMMCore
deleteConfigGroup(const char *groupName)CMMCore
deleteGalvoPolygons(const char *galvoLabel)CMMCore
deletePixelSizeConfig(const char *configName)CMMCore
deletePixelSizeConfig(const char *configName)CMMCore
detectDevice(const char *deviceLabel)CMMCore
deviceBusy(const char *label)CMMCore
deviceBusy(const char *label)CMMCore
deviceTypeBusy(MM::DeviceType devType)CMMCore
displaySLMImage(const char *slmLabel)CMMCore
displaySLMImage(const char *slmLabel)CMMCore
enableContinuousFocus(bool enable)CMMCore
enableDebugLog(bool enable)CMMCore
enableDebugLog(bool enable)CMMCore
enableFeature(const char *name, bool enable)CMMCorestatic
enableStderrLog(bool enable)CMMCore
enableStderrLog(bool enable)CMMCore
fullFocus()CMMCore
getAllowedPropertyValues(const char *label, const char *propName)CMMCore
getAllowedPropertyValues(const char *label, const char *propName)CMMCore
getAPIVersionInfo() constCMMCore
getAutoFocusDevice()CMMCore
getAutoFocusDevice()CMMCore
getAutoFocusOffset()CMMCore
getAutoShutter()CMMCore
getAutoShutter()CMMCore
getAvailableConfigGroups() constCMMCore
getAvailableConfigs(const char *configGroup) constCMMCore
getAvailableConfigs(const char *configGroup) constCMMCore
getAvailableDeviceDescriptions(const char *library)CMMCore
getAvailableDevices(const char *library)CMMCore
getAvailableDevices(const char *library)CMMCore
getAvailableDeviceTypes(const char *library)CMMCore
getAvailablePixelSizeConfigs() constCMMCore
getAvailablePixelSizeConfigs() constCMMCore
getBufferFreeCapacity()CMMCore
getBufferTotalCapacity()CMMCore
getBufferTotalCapacity()CMMCore
getBytesPerPixel()CMMCore
getCameraChannelName(unsigned int channelNr)CMMCore
getCameraChannelName(unsigned int channelNr)CMMCore
getCameraDevice()CMMCore
getChannelGroup()CMMCore
getChannelGroup()CMMCore
getCircularBufferMemoryFootprint()CMMCore
getConfigData(const char *configGroup, const char *configName)CMMCore
getConfigData(const char *configGroup, const char *configName)CMMCore
getConfigGroupState(const char *group)CMMCore
getConfigGroupStateFromCache(const char *group)CMMCore
getConfigGroupStateFromCache(const char *group)CMMCore
getConfigState(const char *group, const char *config)CMMCore
getCoreErrorText(int code) constCMMCore
getCoreErrorText(int code) constCMMCore
getCurrentConfig(const char *groupName)CMMCore
getCurrentConfigFromCache(const char *groupName)CMMCore
getCurrentConfigFromCache(const char *groupName)CMMCore
getCurrentFocusScore()CMMCore
getCurrentPixelSizeConfig()CMMCore
getCurrentPixelSizeConfig()CMMCore
getCurrentPixelSizeConfig(bool cached)CMMCore
getDeviceAdapterNames()CMMCore
getDeviceAdapterNames()CMMCore
getDeviceAdapterSearchPaths()CMMCore
getDeviceDelayMs(const char *label)CMMCore
getDeviceDelayMs(const char *label)CMMCore
getDeviceDescription(const char *label)CMMCore
getDeviceInitializationState(const char *label) constCMMCore
getDeviceInitializationState(const char *label) constCMMCore
getDeviceLibrary(const char *label)CMMCore
getDeviceName(const char *label)CMMCore
getDeviceName(const char *label)CMMCore
getDevicePropertyNames(const char *label)CMMCore
getDeviceType(const char *label)CMMCore
getDeviceType(const char *label)CMMCore
getExposure()CMMCore
getExposure(const char *label)CMMCore
getExposure(const char *label)CMMCore
getExposureSequenceMaxLength(const char *cameraLabel)CMMCore
getFocusDevice()CMMCore
getFocusDevice()CMMCore
getFocusDirection(const char *stageLabel)CMMCore
getGalvoChannel(const char *galvoLabel)CMMCore
getGalvoChannel(const char *galvoLabel)CMMCore
getGalvoDevice()CMMCore
getGalvoPosition(const char *galvoLabel, double &x_stage, double &y_stage)CMMCore
getGalvoPosition(const char *galvoLabel, double &x_stage, double &y_stage)CMMCore
getGalvoXMinimum(const char *galvoLabel)CMMCore
getGalvoXRange(const char *galvoLabel)CMMCore
getGalvoXRange(const char *galvoLabel)CMMCore
getGalvoYMinimum(const char *galvoLabel)CMMCore
getGalvoYRange(const char *galvoLabel)CMMCore
getGalvoYRange(const char *galvoLabel)CMMCore
getImage()CMMCore
getImage(unsigned numChannel)CMMCore
getImage(unsigned numChannel)CMMCore
getImageBitDepth()CMMCore
getImageBufferSize()CMMCore
getImageBufferSize()CMMCore
getImageHeight()CMMCore
getImageProcessorDevice()CMMCore
getImageProcessorDevice()CMMCore
getImageWidth()CMMCore
getInstalledDeviceDescription(const char *hubLabel, const char *peripheralLabel) (defined in CMMCore)CMMCore
getInstalledDeviceDescription(const char *hubLabel, const char *peripheralLabel) (defined in CMMCore)CMMCore
getInstalledDevices(const char *hubLabel)CMMCore
getLastFocusScore()CMMCore
getLastFocusScore()CMMCore
getLastImage()CMMCore
getLastImageMD(unsigned channel, unsigned slice, Metadata &md) const (defined in CMMCore)CMMCore
getLastImageMD(unsigned channel, unsigned slice, Metadata &md) const (defined in CMMCore)CMMCore
getLastImageMD(Metadata &md) constCMMCore
getLoadedDevices() constCMMCore
getLoadedDevices() constCMMCore
getLoadedDevicesOfType(MM::DeviceType devType) constCMMCore
getLoadedPeripheralDevices(const char *hubLabel) (defined in CMMCore)CMMCore
getLoadedPeripheralDevices(const char *hubLabel) (defined in CMMCore)CMMCore
getMagnificationFactor() constCMMCore
getMultiROI(std::vector< unsigned > &xs, std::vector< unsigned > &ys, std::vector< unsigned > &widths, std::vector< unsigned > &heights)CMMCore
getMultiROI(std::vector< unsigned > &xs, std::vector< unsigned > &ys, std::vector< unsigned > &widths, std::vector< unsigned > &heights)CMMCore
getNBeforeLastImageMD(unsigned long n, Metadata &md) constCMMCore
getNumberOfCameraChannels()CMMCore
getNumberOfCameraChannels()CMMCore
getNumberOfComponents()CMMCore
getNumberOfStates(const char *stateDeviceLabel)CMMCore
getNumberOfStates(const char *stateDeviceLabel)CMMCore
getParentLabel(const char *peripheralLabel)CMMCore
getPixelSizeAffine()CMMCore
getPixelSizeAffine()CMMCore
getPixelSizeAffine(bool cached)CMMCore
getPixelSizeAffineByID(const char *resolutionID)CMMCore
getPixelSizeAffineByID(const char *resolutionID)CMMCore
getPixelSizeConfigData(const char *configName)CMMCore
getPixelSizeUm()CMMCore
getPixelSizeUm()CMMCore
getPixelSizeUm(bool cached)CMMCore
getPixelSizeUmByID(const char *resolutionID)CMMCore
getPixelSizeUmByID(const char *resolutionID)CMMCore
getPosition(const char *stageLabel)CMMCore
getPosition()CMMCore
getPosition()CMMCore
getPrimaryLogFile() constCMMCore
getProperty(const char *label, const char *propName)CMMCore
getProperty(const char *label, const char *propName)CMMCore
getPropertyFromCache(const char *deviceLabel, const char *propName) constCMMCore
getPropertyLowerLimit(const char *label, const char *propName)CMMCore
getPropertyLowerLimit(const char *label, const char *propName)CMMCore
getPropertySequenceMaxLength(const char *label, const char *propName)CMMCore
getPropertyType(const char *label, const char *propName)CMMCore
getPropertyType(const char *label, const char *propName)CMMCore
getPropertyUpperLimit(const char *label, const char *propName)CMMCore
getRemainingImageCount()CMMCore
getRemainingImageCount()CMMCore
getROI(int &x, int &y, int &xSize, int &ySize)CMMCore
getROI(const char *label, int &x, int &y, int &xSize, int &ySize)CMMCore
getROI(const char *label, int &x, int &y, int &xSize, int &ySize)CMMCore
getSerialPortAnswer(const char *portLabel, const char *term)CMMCore
getShutterDevice()CMMCore
getShutterDevice()CMMCore
getShutterOpen()CMMCore
getShutterOpen(const char *shutterLabel)CMMCore
getShutterOpen(const char *shutterLabel)CMMCore
getSLMBytesPerPixel(const char *slmLabel)CMMCore
getSLMDevice()CMMCore
getSLMDevice()CMMCore
getSLMExposure(const char *slmLabel)CMMCore
getSLMHeight(const char *slmLabel)CMMCore
getSLMHeight(const char *slmLabel)CMMCore
getSLMNumberOfComponents(const char *slmLabel)CMMCore
getSLMSequenceMaxLength(const char *slmLabel)CMMCore
getSLMSequenceMaxLength(const char *slmLabel)CMMCore
getSLMWidth(const char *slmLabel)CMMCore
getStageSequenceMaxLength(const char *stageLabel)CMMCore
getStageSequenceMaxLength(const char *stageLabel)CMMCore
getState(const char *stateDeviceLabel)CMMCore
getStateFromLabel(const char *stateDeviceLabel, const char *stateLabel)CMMCore
getStateFromLabel(const char *stateDeviceLabel, const char *stateLabel)CMMCore
getStateLabel(const char *stateDeviceLabel)CMMCore
getStateLabels(const char *stateDeviceLabel)CMMCore
getStateLabels(const char *stateDeviceLabel)CMMCore
getSystemState()CMMCore
getSystemStateCache() constCMMCore
getSystemStateCache() constCMMCore
getTimeoutMs() (defined in CMMCore)CMMCoreinline
getVersionInfo() constCMMCore
getVersionInfo() constCMMCore
getXPosition(const char *xyStageLabel)CMMCore
getXPosition()CMMCore
getXPosition()CMMCore
getXYPosition(const char *xyStageLabel, double &x_stage, double &y_stage)CMMCore
getXYPosition(double &x_stage, double &y_stage)CMMCore
getXYPosition(double &x_stage, double &y_stage)CMMCore
getXYStageDevice()CMMCore
getXYStageSequenceMaxLength(const char *xyStageLabel)CMMCore
getXYStageSequenceMaxLength(const char *xyStageLabel)CMMCore
getYPosition(const char *xyStageLabel)CMMCore
getYPosition()CMMCore
getYPosition()CMMCore
hasProperty(const char *label, const char *propName)CMMCore
hasPropertyLimits(const char *label, const char *propName)CMMCore
hasPropertyLimits(const char *label, const char *propName)CMMCore
home(const char *xyOrZStageLabel)CMMCore
incrementalFocus()CMMCore
incrementalFocus()CMMCore
initializeAllDevices()CMMCore
initializeCircularBuffer()CMMCore
initializeCircularBuffer()CMMCore
initializeDevice(const char *label)CMMCore
isBufferOverflowed() constCMMCore
isBufferOverflowed() constCMMCore
isConfigDefined(const char *groupName, const char *configName)CMMCore
isContinuousFocusDrive(const char *stageLabel)CMMCore
isContinuousFocusDrive(const char *stageLabel)CMMCore
isContinuousFocusEnabled()CMMCore
isContinuousFocusLocked()CMMCore
isContinuousFocusLocked()CMMCore
isExposureSequenceable(const char *cameraLabel)CMMCore
isFeatureEnabled(const char *name)CMMCorestatic
isFeatureEnabled(const char *name)CMMCorestatic
isGroupDefined(const char *groupName)CMMCore
isMultiROIEnabled()CMMCore
isMultiROIEnabled()CMMCore
isMultiROISupported()CMMCore
isPixelSizeConfigDefined(const char *resolutionID) constCMMCore
isPixelSizeConfigDefined(const char *resolutionID) constCMMCore
isPropertyPreInit(const char *label, const char *propName)CMMCore
isPropertyReadOnly(const char *label, const char *propName)CMMCore
isPropertyReadOnly(const char *label, const char *propName)CMMCore
isPropertySequenceable(const char *label, const char *propName)CMMCore
isSequenceRunning()CMMCore
isSequenceRunning()CMMCore
isSequenceRunning(const char *cameraLabel)CMMCore
isStageLinearSequenceable(const char *stageLabel)CMMCore
isStageLinearSequenceable(const char *stageLabel)CMMCore
isStageSequenceable(const char *stageLabel)CMMCore
isXYStageSequenceable(const char *xyStageLabel)CMMCore
isXYStageSequenceable(const char *xyStageLabel)CMMCore
loadDevice(const char *label, const char *moduleName, const char *deviceName)CMMCore
loadExposureSequence(const char *cameraLabel, std::vector< double > exposureSequence_ms)CMMCore
loadExposureSequence(const char *cameraLabel, std::vector< double > exposureSequence_ms)CMMCore
loadGalvoPolygons(const char *galvoLabel)CMMCore
loadPropertySequence(const char *label, const char *propName, std::vector< std::string > eventSequence)CMMCore
loadPropertySequence(const char *label, const char *propName, std::vector< std::string > eventSequence)CMMCore
loadSLMSequence(const char *slmLabel, std::vector< unsigned char * > imageSequence)CMMCore
loadStageSequence(const char *stageLabel, std::vector< double > positionSequence)CMMCore
loadStageSequence(const char *stageLabel, std::vector< double > positionSequence)CMMCore
loadSystemConfiguration(const char *fileName)CMMCore
loadSystemState(const char *fileName)CMMCore
loadSystemState(const char *fileName)CMMCore
loadXYStageSequence(const char *xyStageLabel, std::vector< double > xSequence, std::vector< double > ySequence)CMMCore
logMessage(const char *msg)CMMCore
logMessage(const char *msg)CMMCore
logMessage(const char *msg, bool debugOnly)CMMCore
noop()CMMCoreinlinestatic
noop()CMMCoreinlinestatic
pointGalvoAndFire(const char *galvoLabel, double x, double y, double pulseTime_us)CMMCore
popNextImage()CMMCore
popNextImage()CMMCore
popNextImageMD(unsigned channel, unsigned slice, Metadata &md)CMMCore
popNextImageMD(Metadata &md)CMMCore
popNextImageMD(Metadata &md)CMMCore
prepareSequenceAcquisition(const char *cameraLabel)CMMCore
readFromSerialPort(const char *portLabel)CMMCore
readFromSerialPort(const char *portLabel)CMMCore
registerCallback(MMEventCallback *cb)CMMCore
renameConfig(const char *groupName, const char *oldConfigName, const char *newConfigName)CMMCore
renameConfig(const char *groupName, const char *oldConfigName, const char *newConfigName)CMMCore
renameConfigGroup(const char *oldGroupName, const char *newGroupName)CMMCore
renamePixelSizeConfig(const char *oldConfigName, const char *newConfigName)CMMCore
renamePixelSizeConfig(const char *oldConfigName, const char *newConfigName)CMMCore
reset()CMMCore
runGalvoPolygons(const char *galvoLabel)CMMCore
runGalvoPolygons(const char *galvoLabel)CMMCore
runGalvoSequence(const char *galvoLabel)CMMCore
saveSystemConfiguration(const char *fileName)CMMCore
saveSystemConfiguration(const char *fileName)CMMCore
saveSystemState(const char *fileName)CMMCore
setAdapterOrigin(const char *stageLabel, double newZUm)CMMCore
setAdapterOrigin(const char *stageLabel, double newZUm)CMMCore
setAdapterOrigin(double newZUm)CMMCore
setAdapterOriginXY(const char *xyStageLabel, double newXUm, double newYUm)CMMCore
setAdapterOriginXY(const char *xyStageLabel, double newXUm, double newYUm)CMMCore
setAdapterOriginXY(double newXUm, double newYUm)CMMCore
setAutoFocusDevice(const char *focusLabel)CMMCore
setAutoFocusDevice(const char *focusLabel)CMMCore
setAutoFocusOffset(double offset)CMMCore
setAutoShutter(bool state)CMMCore
setAutoShutter(bool state)CMMCore
setCameraDevice(const char *cameraLabel)CMMCore
setChannelGroup(const char *channelGroup)CMMCore
setChannelGroup(const char *channelGroup)CMMCore
setCircularBufferMemoryFootprint(unsigned sizeMB)CMMCore
setConfig(const char *groupName, const char *configName)CMMCore
setConfig(const char *groupName, const char *configName)CMMCore
setDeviceAdapterSearchPaths(const std::vector< std::string > &paths)CMMCore
setDeviceDelayMs(const char *label, double delayMs)CMMCore
setDeviceDelayMs(const char *label, double delayMs)CMMCore
setExposure(double exp)CMMCore
setExposure(const char *cameraLabel, double dExp)CMMCore
setExposure(const char *cameraLabel, double dExp)CMMCore
setFocusDevice(const char *focusLabel)CMMCore
setFocusDirection(const char *stageLabel, int sign)CMMCore
setFocusDirection(const char *stageLabel, int sign)CMMCore
setGalvoDevice(const char *galvoLabel)CMMCore
setGalvoIlluminationState(const char *galvoLabel, bool on)CMMCore
setGalvoIlluminationState(const char *galvoLabel, bool on)CMMCore
setGalvoPolygonRepetitions(const char *galvoLabel, int repetitions)CMMCore
setGalvoPosition(const char *galvoLabel, double x, double y)CMMCore
setGalvoPosition(const char *galvoLabel, double x, double y)CMMCore
setGalvoSpotInterval(const char *galvoLabel, double pulseTime_us) (defined in CMMCore)CMMCore
setImageProcessorDevice(const char *procLabel)CMMCore
setImageProcessorDevice(const char *procLabel)CMMCore
setMultiROI(std::vector< unsigned > xs, std::vector< unsigned > ys, std::vector< unsigned > widths, std::vector< unsigned > heights)CMMCore
setOrigin(const char *stageLabel)CMMCore
setOrigin(const char *stageLabel)CMMCore
setOrigin()CMMCore
setOriginX(const char *xyStageLabel)CMMCore
setOriginX(const char *xyStageLabel)CMMCore
setOriginX()CMMCore
setOriginXY(const char *xyStageLabel)CMMCore
setOriginXY(const char *xyStageLabel)CMMCore
setOriginXY()CMMCore
setOriginY(const char *xyStageLabel)CMMCore
setOriginY(const char *xyStageLabel)CMMCore
setOriginY()CMMCore
setParentLabel(const char *deviceLabel, const char *parentHubLabel)CMMCore
setParentLabel(const char *deviceLabel, const char *parentHubLabel)CMMCore
setPixelSizeAffine(const char *resolutionID, std::vector< double > affine)CMMCore
setPixelSizeConfig(const char *resolutionID)CMMCore
setPixelSizeConfig(const char *resolutionID)CMMCore
setPixelSizeUm(const char *resolutionID, double pixSize)CMMCore
setPosition(const char *stageLabel, double position)CMMCore
setPosition(const char *stageLabel, double position)CMMCore
setPosition(double position)CMMCore
setPrimaryLogFile(const char *filename, bool truncate=false)CMMCore
setPrimaryLogFile(const char *filename, bool truncate=false)CMMCore
setProperty(const char *label, const char *propName, const char *propValue)CMMCore
setProperty(const char *label, const char *propName, const bool propValue)CMMCore
setProperty(const char *label, const char *propName, const bool propValue)CMMCore
setProperty(const char *label, const char *propName, const long propValue)CMMCore
setProperty(const char *label, const char *propName, const float propValue)CMMCore
setProperty(const char *label, const char *propName, const float propValue)CMMCore
setProperty(const char *label, const char *propName, const double propValue)CMMCore
setRelativePosition(const char *stageLabel, double d)CMMCore
setRelativePosition(const char *stageLabel, double d)CMMCore
setRelativePosition(double d)CMMCore
setRelativeXYPosition(const char *xyStageLabel, double dx, double dy)CMMCore
setRelativeXYPosition(const char *xyStageLabel, double dx, double dy)CMMCore
setRelativeXYPosition(double dx, double dy)CMMCore
setROI(int x, int y, int xSize, int ySize)CMMCore
setROI(int x, int y, int xSize, int ySize)CMMCore
setROI(const char *label, int x, int y, int xSize, int ySize)CMMCore
setSerialPortCommand(const char *portLabel, const char *command, const char *term)CMMCore
setSerialPortCommand(const char *portLabel, const char *command, const char *term)CMMCore
setSerialProperties(const char *portName, const char *answerTimeout, const char *baudRate, const char *delayBetweenCharsMs, const char *handshaking, const char *parity, const char *stopBits)CMMCore
setShutterDevice(const char *shutterLabel)CMMCore
setShutterDevice(const char *shutterLabel)CMMCore
setShutterOpen(bool state)CMMCore
setShutterOpen(const char *shutterLabel, bool state)CMMCore
setShutterOpen(const char *shutterLabel, bool state)CMMCore
setSLMDevice(const char *slmLabel)CMMCore
setSLMExposure(const char *slmLabel, double exposure_ms)CMMCore
setSLMExposure(const char *slmLabel, double exposure_ms)CMMCore
setSLMImage(const char *slmLabel, unsigned char *pixels)CMMCore
setSLMImage(const char *slmLabel, imgRGB32 pixels)CMMCore
setSLMImage(const char *slmLabel, imgRGB32 pixels)CMMCore
setSLMPixelsTo(const char *slmLabel, unsigned char intensity)CMMCore
setSLMPixelsTo(const char *slmLabel, unsigned char red, unsigned char green, unsigned char blue)CMMCore
setSLMPixelsTo(const char *slmLabel, unsigned char red, unsigned char green, unsigned char blue)CMMCore
setStageLinearSequence(const char *stageLabel, double dZ_um, int nSlices)CMMCore
setState(const char *stateDeviceLabel, long state)CMMCore
setState(const char *stateDeviceLabel, long state)CMMCore
setStateLabel(const char *stateDeviceLabel, const char *stateLabel)CMMCore
setSystemState(const Configuration &conf)CMMCore
setSystemState(const Configuration &conf)CMMCore
setTimeoutMs(long timeoutMs) (defined in CMMCore)CMMCoreinline
setXYPosition(const char *xyStageLabel, double x, double y)CMMCore
setXYPosition(const char *xyStageLabel, double x, double y)CMMCore
setXYPosition(double x, double y)CMMCore
setXYStageDevice(const char *xyStageLabel)CMMCore
setXYStageDevice(const char *xyStageLabel)CMMCore
sleep(double intervalMs) constCMMCore
snapImage()CMMCore
snapImage()CMMCore
startContinuousSequenceAcquisition(double intervalMs)CMMCore
startExposureSequence(const char *cameraLabel)CMMCore
startExposureSequence(const char *cameraLabel)CMMCore
startPropertySequence(const char *label, const char *propName)CMMCore
startSecondaryLogFile(const char *filename, bool enableDebug, bool truncate=true, bool synchronous=false)CMMCore
startSecondaryLogFile(const char *filename, bool enableDebug, bool truncate=true, bool synchronous=false)CMMCore
startSequenceAcquisition(long numImages, double intervalMs, bool stopOnOverflow)CMMCore
startSequenceAcquisition(const char *cameraLabel, long numImages, double intervalMs, bool stopOnOverflow)CMMCore
startSequenceAcquisition(const char *cameraLabel, long numImages, double intervalMs, bool stopOnOverflow)CMMCore
startSLMSequence(const char *slmLabel)CMMCore
startStageSequence(const char *stageLabel)CMMCore
startStageSequence(const char *stageLabel)CMMCore
startXYStageSequence(const char *xyStageLabel)CMMCore
stderrLogEnabled()CMMCore
stderrLogEnabled()CMMCore
stop(const char *xyOrZStageLabel)CMMCore
stopExposureSequence(const char *cameraLabel)CMMCore
stopExposureSequence(const char *cameraLabel)CMMCore
stopPropertySequence(const char *label, const char *propName)CMMCore
stopSecondaryLogFile(int handle)CMMCore
stopSecondaryLogFile(int handle)CMMCore
stopSequenceAcquisition()CMMCore
stopSequenceAcquisition(const char *cameraLabel)CMMCore
stopSequenceAcquisition(const char *cameraLabel)CMMCore
stopSLMSequence(const char *slmLabel)CMMCore
stopStageSequence(const char *stageLabel)CMMCore
stopStageSequence(const char *stageLabel)CMMCore
stopXYStageSequence(const char *xyStageLabel)CMMCore
supportsDeviceDetection(const char *deviceLabel)CMMCore
supportsDeviceDetection(const char *deviceLabel)CMMCore
systemBusy()CMMCore
unloadAllDevices()CMMCore
unloadAllDevices()CMMCore
unloadDevice(const char *label)CMMCore
unloadLibrary(const char *moduleName)CMMCore
unloadLibrary(const char *moduleName)CMMCore
updateCoreProperties()CMMCore
updateSystemStateCache()CMMCore
updateSystemStateCache()CMMCore
usesDeviceDelay(const char *label)CMMCore
waitForConfig(const char *group, const char *configName)CMMCore
waitForConfig(const char *group, const char *configName)CMMCore
waitForDevice(const char *label)CMMCore
waitForDeviceType(MM::DeviceType devType)CMMCore
waitForDeviceType(MM::DeviceType devType)CMMCore
waitForSystem()CMMCore
writeToSerialPort(const char *portLabel, const std::vector< char > &data)CMMCore
writeToSerialPort(const char *portLabel, const std::vector< char > &data)CMMCore
~CMMCore()CMMCore
diff --git a/class_c_m_m_core.html b/class_c_m_m_core.html index 7e1a645..68b929a 100644 --- a/class_c_m_m_core.html +++ b/class_c_m_m_core.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CMMCore Class Reference @@ -16,10 +16,9 @@
- - + @@ -27,15 +26,16 @@
-
MMCore -  10.1.1 +
+
MMCore 10.1.1
- + +/* @license-end */ +
@@ -44,8 +44,7 @@ Static Public Member Functions | Friends | List of all members
-
-
CMMCore Class Reference
+
CMMCore Class Reference
@@ -54,656 +53,656 @@

#include <MMCore.h>

- - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

+

Public Member Functions

 CMMCore ()
 CMMCore ()
 
 ~CMMCore ()
 ~CMMCore ()
 
Initialization and setup.
void loadDevice (const char *label, const char *moduleName, const char *deviceName) throw (CMMError)
void loadDevice (const char *label, const char *moduleName, const char *deviceName) throw (CMMError)
 
void unloadDevice (const char *label) throw (CMMError)
void unloadDevice (const char *label) throw (CMMError)
 
void unloadAllDevices () throw (CMMError)
void unloadAllDevices () throw (CMMError)
 
void initializeAllDevices () throw (CMMError)
void initializeAllDevices () throw (CMMError)
 
void initializeDevice (const char *label) throw (CMMError)
void initializeDevice (const char *label) throw (CMMError)
 
DeviceInitializationState getDeviceInitializationState (const char *label) const throw (CMMError)
DeviceInitializationState getDeviceInitializationState (const char *label) const throw (CMMError)
 
void reset () throw (CMMError)
void reset () throw (CMMError)
 
void unloadLibrary (const char *moduleName) throw (CMMError)
void unloadLibrary (const char *moduleName) throw (CMMError)
 
void updateCoreProperties () throw (CMMError)
void updateCoreProperties () throw (CMMError)
 
std::string getCoreErrorText (int code) const
std::string getCoreErrorText (int code) const
 
std::string getVersionInfo () const
std::string getVersionInfo () const
 
std::string getAPIVersionInfo () const
std::string getAPIVersionInfo () const
 
Configuration getSystemState ()
Configuration getSystemState ()
 
void setSystemState (const Configuration &conf)
void setSystemState (const Configuration &conf)
 
Configuration getConfigState (const char *group, const char *config) throw (CMMError)
Configuration getConfigState (const char *group, const char *config) throw (CMMError)
 
Configuration getConfigGroupState (const char *group) throw (CMMError)
Configuration getConfigGroupState (const char *group) throw (CMMError)
 
void saveSystemState (const char *fileName) throw (CMMError)
void saveSystemState (const char *fileName) throw (CMMError)
 
void loadSystemState (const char *fileName) throw (CMMError)
void loadSystemState (const char *fileName) throw (CMMError)
 
void saveSystemConfiguration (const char *fileName) throw (CMMError)
void saveSystemConfiguration (const char *fileName) throw (CMMError)
 
void loadSystemConfiguration (const char *fileName) throw (CMMError)
void loadSystemConfiguration (const char *fileName) throw (CMMError)
 
void registerCallback (MMEventCallback *cb)
void registerCallback (MMEventCallback *cb)
 
Logging and log management.
void setPrimaryLogFile (const char *filename, bool truncate=false) throw (CMMError)
void setPrimaryLogFile (const char *filename, bool truncate=false) throw (CMMError)
 
std::string getPrimaryLogFile () const
std::string getPrimaryLogFile () const
 
void logMessage (const char *msg)
void logMessage (const char *msg)
 
void logMessage (const char *msg, bool debugOnly)
void logMessage (const char *msg, bool debugOnly)
 
void enableDebugLog (bool enable)
void enableDebugLog (bool enable)
 
bool debugLogEnabled ()
bool debugLogEnabled ()
 
void enableStderrLog (bool enable)
void enableStderrLog (bool enable)
 
bool stderrLogEnabled ()
bool stderrLogEnabled ()
 
int startSecondaryLogFile (const char *filename, bool enableDebug, bool truncate=true, bool synchronous=false) throw (CMMError)
int startSecondaryLogFile (const char *filename, bool enableDebug, bool truncate=true, bool synchronous=false) throw (CMMError)
 
void stopSecondaryLogFile (int handle) throw (CMMError)
void stopSecondaryLogFile (int handle) throw (CMMError)
 
Device listing.
std::vector< std::string > getDeviceAdapterSearchPaths ()
std::vector< std::string > getDeviceAdapterSearchPaths ()
 
void setDeviceAdapterSearchPaths (const std::vector< std::string > &paths)
void setDeviceAdapterSearchPaths (const std::vector< std::string > &paths)
 
std::vector< std::string > getDeviceAdapterNames () throw (CMMError)
std::vector< std::string > getDeviceAdapterNames () throw (CMMError)
 
std::vector< std::string > getAvailableDevices (const char *library) throw (CMMError)
std::vector< std::string > getAvailableDevices (const char *library) throw (CMMError)
 
std::vector< std::string > getAvailableDeviceDescriptions (const char *library) throw (CMMError)
std::vector< std::string > getAvailableDeviceDescriptions (const char *library) throw (CMMError)
 
std::vector< long > getAvailableDeviceTypes (const char *library) throw (CMMError)
std::vector< long > getAvailableDeviceTypes (const char *library) throw (CMMError)
 
Generic device control.

Functionality supported by all devices.

std::vector< std::string > getLoadedDevices () const
std::vector< std::string > getLoadedDevices () const
 
std::vector< std::string > getLoadedDevicesOfType (MM::DeviceType devType) const
std::vector< std::string > getLoadedDevicesOfType (MM::DeviceType devType) const
 
MM::DeviceType getDeviceType (const char *label) throw (CMMError)
MM::DeviceType getDeviceType (const char *label) throw (CMMError)
 
std::string getDeviceLibrary (const char *label) throw (CMMError)
std::string getDeviceLibrary (const char *label) throw (CMMError)
 
std::string getDeviceName (const char *label) throw (CMMError)
std::string getDeviceName (const char *label) throw (CMMError)
 
std::string getDeviceDescription (const char *label) throw (CMMError)
std::string getDeviceDescription (const char *label) throw (CMMError)
 
std::vector< std::string > getDevicePropertyNames (const char *label) throw (CMMError)
std::vector< std::string > getDevicePropertyNames (const char *label) throw (CMMError)
 
bool hasProperty (const char *label, const char *propName) throw (CMMError)
bool hasProperty (const char *label, const char *propName) throw (CMMError)
 
std::string getProperty (const char *label, const char *propName) throw (CMMError)
std::string getProperty (const char *label, const char *propName) throw (CMMError)
 
void setProperty (const char *label, const char *propName, const char *propValue) throw (CMMError)
void setProperty (const char *label, const char *propName, const char *propValue) throw (CMMError)
 
void setProperty (const char *label, const char *propName, const bool propValue) throw (CMMError)
void setProperty (const char *label, const char *propName, const bool propValue) throw (CMMError)
 
void setProperty (const char *label, const char *propName, const long propValue) throw (CMMError)
void setProperty (const char *label, const char *propName, const long propValue) throw (CMMError)
 
void setProperty (const char *label, const char *propName, const float propValue) throw (CMMError)
void setProperty (const char *label, const char *propName, const float propValue) throw (CMMError)
 
void setProperty (const char *label, const char *propName, const double propValue) throw (CMMError)
void setProperty (const char *label, const char *propName, const double propValue) throw (CMMError)
 
std::vector< std::string > getAllowedPropertyValues (const char *label, const char *propName) throw (CMMError)
std::vector< std::string > getAllowedPropertyValues (const char *label, const char *propName) throw (CMMError)
 
bool isPropertyReadOnly (const char *label, const char *propName) throw (CMMError)
bool isPropertyReadOnly (const char *label, const char *propName) throw (CMMError)
 
bool isPropertyPreInit (const char *label, const char *propName) throw (CMMError)
bool isPropertyPreInit (const char *label, const char *propName) throw (CMMError)
 
bool isPropertySequenceable (const char *label, const char *propName) throw (CMMError)
bool isPropertySequenceable (const char *label, const char *propName) throw (CMMError)
 
bool hasPropertyLimits (const char *label, const char *propName) throw (CMMError)
bool hasPropertyLimits (const char *label, const char *propName) throw (CMMError)
 
double getPropertyLowerLimit (const char *label, const char *propName) throw (CMMError)
double getPropertyLowerLimit (const char *label, const char *propName) throw (CMMError)
 
double getPropertyUpperLimit (const char *label, const char *propName) throw (CMMError)
double getPropertyUpperLimit (const char *label, const char *propName) throw (CMMError)
 
MM::PropertyType getPropertyType (const char *label, const char *propName) throw (CMMError)
MM::PropertyType getPropertyType (const char *label, const char *propName) throw (CMMError)
 
void startPropertySequence (const char *label, const char *propName) throw (CMMError)
void startPropertySequence (const char *label, const char *propName) throw (CMMError)
 
void stopPropertySequence (const char *label, const char *propName) throw (CMMError)
void stopPropertySequence (const char *label, const char *propName) throw (CMMError)
 
long getPropertySequenceMaxLength (const char *label, const char *propName) throw (CMMError)
long getPropertySequenceMaxLength (const char *label, const char *propName) throw (CMMError)
 
void loadPropertySequence (const char *label, const char *propName, std::vector< std::string > eventSequence) throw (CMMError)
void loadPropertySequence (const char *label, const char *propName, std::vector< std::string > eventSequence) throw (CMMError)
 
bool deviceBusy (const char *label) throw (CMMError)
bool deviceBusy (const char *label) throw (CMMError)
 
void waitForDevice (const char *label) throw (CMMError)
void waitForDevice (const char *label) throw (CMMError)
 
void waitForConfig (const char *group, const char *configName) throw (CMMError)
void waitForConfig (const char *group, const char *configName) throw (CMMError)
 
bool systemBusy () throw (CMMError)
bool systemBusy () throw (CMMError)
 
void waitForSystem () throw (CMMError)
void waitForSystem () throw (CMMError)
 
bool deviceTypeBusy (MM::DeviceType devType) throw (CMMError)
bool deviceTypeBusy (MM::DeviceType devType) throw (CMMError)
 
void waitForDeviceType (MM::DeviceType devType) throw (CMMError)
void waitForDeviceType (MM::DeviceType devType) throw (CMMError)
 
double getDeviceDelayMs (const char *label) throw (CMMError)
double getDeviceDelayMs (const char *label) throw (CMMError)
 
void setDeviceDelayMs (const char *label, double delayMs) throw (CMMError)
void setDeviceDelayMs (const char *label, double delayMs) throw (CMMError)
 
bool usesDeviceDelay (const char *label) throw (CMMError)
bool usesDeviceDelay (const char *label) throw (CMMError)
 
+
void setTimeoutMs (long timeoutMs)
 
+
long getTimeoutMs ()
 
void sleep (double intervalMs) const
void sleep (double intervalMs) const
 
Management of 'current' device for specific roles.
std::string getCameraDevice ()
std::string getCameraDevice ()
 
std::string getShutterDevice ()
std::string getShutterDevice ()
 
std::string getFocusDevice ()
std::string getFocusDevice ()
 
std::string getXYStageDevice ()
std::string getXYStageDevice ()
 
std::string getAutoFocusDevice ()
std::string getAutoFocusDevice ()
 
std::string getImageProcessorDevice ()
std::string getImageProcessorDevice ()
 
std::string getSLMDevice ()
std::string getSLMDevice ()
 
std::string getGalvoDevice ()
std::string getGalvoDevice ()
 
std::string getChannelGroup ()
std::string getChannelGroup ()
 
void setCameraDevice (const char *cameraLabel) throw (CMMError)
void setCameraDevice (const char *cameraLabel) throw (CMMError)
 
void setShutterDevice (const char *shutterLabel) throw (CMMError)
void setShutterDevice (const char *shutterLabel) throw (CMMError)
 
void setFocusDevice (const char *focusLabel) throw (CMMError)
void setFocusDevice (const char *focusLabel) throw (CMMError)
 
void setXYStageDevice (const char *xyStageLabel) throw (CMMError)
void setXYStageDevice (const char *xyStageLabel) throw (CMMError)
 
void setAutoFocusDevice (const char *focusLabel) throw (CMMError)
void setAutoFocusDevice (const char *focusLabel) throw (CMMError)
 
void setImageProcessorDevice (const char *procLabel) throw (CMMError)
void setImageProcessorDevice (const char *procLabel) throw (CMMError)
 
void setSLMDevice (const char *slmLabel) throw (CMMError)
void setSLMDevice (const char *slmLabel) throw (CMMError)
 
void setGalvoDevice (const char *galvoLabel) throw (CMMError)
void setGalvoDevice (const char *galvoLabel) throw (CMMError)
 
void setChannelGroup (const char *channelGroup) throw (CMMError)
void setChannelGroup (const char *channelGroup) throw (CMMError)
 
System state cache.

The system state cache retains the last-set or last-read value of each device property.

Configuration getSystemStateCache () const
Configuration getSystemStateCache () const
 
void updateSystemStateCache ()
void updateSystemStateCache ()
 
std::string getPropertyFromCache (const char *deviceLabel, const char *propName) const throw (CMMError)
std::string getPropertyFromCache (const char *deviceLabel, const char *propName) const throw (CMMError)
 
std::string getCurrentConfigFromCache (const char *groupName) throw (CMMError)
std::string getCurrentConfigFromCache (const char *groupName) throw (CMMError)
 
Configuration getConfigGroupStateFromCache (const char *group) throw (CMMError)
Configuration getConfigGroupStateFromCache (const char *group) throw (CMMError)
 
Configuration groups.
void defineConfig (const char *groupName, const char *configName) throw (CMMError)
void defineConfig (const char *groupName, const char *configName) throw (CMMError)
 
void defineConfig (const char *groupName, const char *configName, const char *deviceLabel, const char *propName, const char *value) throw (CMMError)
void defineConfig (const char *groupName, const char *configName, const char *deviceLabel, const char *propName, const char *value) throw (CMMError)
 
void defineConfigGroup (const char *groupName) throw (CMMError)
void defineConfigGroup (const char *groupName) throw (CMMError)
 
void deleteConfigGroup (const char *groupName) throw (CMMError)
void deleteConfigGroup (const char *groupName) throw (CMMError)
 
void renameConfigGroup (const char *oldGroupName, const char *newGroupName) throw (CMMError)
void renameConfigGroup (const char *oldGroupName, const char *newGroupName) throw (CMMError)
 
bool isGroupDefined (const char *groupName)
bool isGroupDefined (const char *groupName)
 
bool isConfigDefined (const char *groupName, const char *configName)
bool isConfigDefined (const char *groupName, const char *configName)
 
void setConfig (const char *groupName, const char *configName) throw (CMMError)
void setConfig (const char *groupName, const char *configName) throw (CMMError)
 
void deleteConfig (const char *groupName, const char *configName) throw (CMMError)
void deleteConfig (const char *groupName, const char *configName) throw (CMMError)
 
void deleteConfig (const char *groupName, const char *configName, const char *deviceLabel, const char *propName) throw (CMMError)
void deleteConfig (const char *groupName, const char *configName, const char *deviceLabel, const char *propName) throw (CMMError)
 
void renameConfig (const char *groupName, const char *oldConfigName, const char *newConfigName) throw (CMMError)
void renameConfig (const char *groupName, const char *oldConfigName, const char *newConfigName) throw (CMMError)
 
std::vector< std::string > getAvailableConfigGroups () const
std::vector< std::string > getAvailableConfigGroups () const
 
std::vector< std::string > getAvailableConfigs (const char *configGroup) const
std::vector< std::string > getAvailableConfigs (const char *configGroup) const
 
std::string getCurrentConfig (const char *groupName) throw (CMMError)
std::string getCurrentConfig (const char *groupName) throw (CMMError)
 
Configuration getConfigData (const char *configGroup, const char *configName) throw (CMMError)
Configuration getConfigData (const char *configGroup, const char *configName) throw (CMMError)
 
The pixel size configuration group.
std::string getCurrentPixelSizeConfig () throw (CMMError)
std::string getCurrentPixelSizeConfig () throw (CMMError)
 
std::string getCurrentPixelSizeConfig (bool cached) throw (CMMError)
std::string getCurrentPixelSizeConfig (bool cached) throw (CMMError)
 
double getPixelSizeUm ()
double getPixelSizeUm ()
 
double getPixelSizeUm (bool cached)
double getPixelSizeUm (bool cached)
 
double getPixelSizeUmByID (const char *resolutionID) throw (CMMError)
double getPixelSizeUmByID (const char *resolutionID) throw (CMMError)
 
std::vector< double > getPixelSizeAffine () throw (CMMError)
std::vector< double > getPixelSizeAffine () throw (CMMError)
 
std::vector< double > getPixelSizeAffine (bool cached) throw (CMMError)
std::vector< double > getPixelSizeAffine (bool cached) throw (CMMError)
 
std::vector< double > getPixelSizeAffineByID (const char *resolutionID) throw (CMMError)
std::vector< double > getPixelSizeAffineByID (const char *resolutionID) throw (CMMError)
 
double getMagnificationFactor () const
double getMagnificationFactor () const
 
void setPixelSizeUm (const char *resolutionID, double pixSize) throw (CMMError)
void setPixelSizeUm (const char *resolutionID, double pixSize) throw (CMMError)
 
void setPixelSizeAffine (const char *resolutionID, std::vector< double > affine) throw (CMMError)
void setPixelSizeAffine (const char *resolutionID, std::vector< double > affine) throw (CMMError)
 
void definePixelSizeConfig (const char *resolutionID, const char *deviceLabel, const char *propName, const char *value) throw (CMMError)
void definePixelSizeConfig (const char *resolutionID, const char *deviceLabel, const char *propName, const char *value) throw (CMMError)
 
void definePixelSizeConfig (const char *resolutionID) throw (CMMError)
void definePixelSizeConfig (const char *resolutionID) throw (CMMError)
 
std::vector< std::string > getAvailablePixelSizeConfigs () const
std::vector< std::string > getAvailablePixelSizeConfigs () const
 
bool isPixelSizeConfigDefined (const char *resolutionID) const throw (CMMError)
bool isPixelSizeConfigDefined (const char *resolutionID) const throw (CMMError)
 
void setPixelSizeConfig (const char *resolutionID) throw (CMMError)
void setPixelSizeConfig (const char *resolutionID) throw (CMMError)
 
void renamePixelSizeConfig (const char *oldConfigName, const char *newConfigName) throw (CMMError)
void renamePixelSizeConfig (const char *oldConfigName, const char *newConfigName) throw (CMMError)
 
void deletePixelSizeConfig (const char *configName) throw (CMMError)
void deletePixelSizeConfig (const char *configName) throw (CMMError)
 
Configuration getPixelSizeConfigData (const char *configName) throw (CMMError)
Configuration getPixelSizeConfigData (const char *configName) throw (CMMError)
 
Image acquisition.
void setROI (int x, int y, int xSize, int ySize) throw (CMMError)
void setROI (int x, int y, int xSize, int ySize) throw (CMMError)
 
void setROI (const char *label, int x, int y, int xSize, int ySize) throw (CMMError)
void setROI (const char *label, int x, int y, int xSize, int ySize) throw (CMMError)
 
void getROI (int &x, int &y, int &xSize, int &ySize) throw (CMMError)
void getROI (int &x, int &y, int &xSize, int &ySize) throw (CMMError)
 
void getROI (const char *label, int &x, int &y, int &xSize, int &ySize) throw (CMMError)
void getROI (const char *label, int &x, int &y, int &xSize, int &ySize) throw (CMMError)
 
void clearROI () throw (CMMError)
void clearROI () throw (CMMError)
 
bool isMultiROISupported () throw (CMMError)
bool isMultiROISupported () throw (CMMError)
 
bool isMultiROIEnabled () throw (CMMError)
bool isMultiROIEnabled () throw (CMMError)
 
void setMultiROI (std::vector< unsigned > xs, std::vector< unsigned > ys, std::vector< unsigned > widths, std::vector< unsigned > heights) throw (CMMError)
void setMultiROI (std::vector< unsigned > xs, std::vector< unsigned > ys, std::vector< unsigned > widths, std::vector< unsigned > heights) throw (CMMError)
 
void getMultiROI (std::vector< unsigned > &xs, std::vector< unsigned > &ys, std::vector< unsigned > &widths, std::vector< unsigned > &heights) throw (CMMError)
void getMultiROI (std::vector< unsigned > &xs, std::vector< unsigned > &ys, std::vector< unsigned > &widths, std::vector< unsigned > &heights) throw (CMMError)
 
void setExposure (double exp) throw (CMMError)
void setExposure (double exp) throw (CMMError)
 
void setExposure (const char *cameraLabel, double dExp) throw (CMMError)
void setExposure (const char *cameraLabel, double dExp) throw (CMMError)
 
double getExposure () throw (CMMError)
double getExposure () throw (CMMError)
 
double getExposure (const char *label) throw (CMMError)
double getExposure (const char *label) throw (CMMError)
 
void snapImage () throw (CMMError)
void snapImage () throw (CMMError)
 
void * getImage () throw (CMMError)
void * getImage () throw (CMMError)
 
void * getImage (unsigned numChannel) throw (CMMError)
void * getImage (unsigned numChannel) throw (CMMError)
 
unsigned getImageWidth ()
unsigned getImageWidth ()
 
unsigned getImageHeight ()
unsigned getImageHeight ()
 
unsigned getBytesPerPixel ()
unsigned getBytesPerPixel ()
 
unsigned getImageBitDepth ()
unsigned getImageBitDepth ()
 
unsigned getNumberOfComponents ()
unsigned getNumberOfComponents ()
 
unsigned getNumberOfCameraChannels ()
unsigned getNumberOfCameraChannels ()
 
std::string getCameraChannelName (unsigned int channelNr)
std::string getCameraChannelName (unsigned int channelNr)
 
long getImageBufferSize ()
long getImageBufferSize ()
 
void setAutoShutter (bool state)
void setAutoShutter (bool state)
 
bool getAutoShutter ()
bool getAutoShutter ()
 
void setShutterOpen (bool state) throw (CMMError)
void setShutterOpen (bool state) throw (CMMError)
 
bool getShutterOpen () throw (CMMError)
bool getShutterOpen () throw (CMMError)
 
void setShutterOpen (const char *shutterLabel, bool state) throw (CMMError)
void setShutterOpen (const char *shutterLabel, bool state) throw (CMMError)
 
bool getShutterOpen (const char *shutterLabel) throw (CMMError)
bool getShutterOpen (const char *shutterLabel) throw (CMMError)
 
void startSequenceAcquisition (long numImages, double intervalMs, bool stopOnOverflow) throw (CMMError)
void startSequenceAcquisition (long numImages, double intervalMs, bool stopOnOverflow) throw (CMMError)
 
void startSequenceAcquisition (const char *cameraLabel, long numImages, double intervalMs, bool stopOnOverflow) throw (CMMError)
void startSequenceAcquisition (const char *cameraLabel, long numImages, double intervalMs, bool stopOnOverflow) throw (CMMError)
 
void prepareSequenceAcquisition (const char *cameraLabel) throw (CMMError)
void prepareSequenceAcquisition (const char *cameraLabel) throw (CMMError)
 
void startContinuousSequenceAcquisition (double intervalMs) throw (CMMError)
void startContinuousSequenceAcquisition (double intervalMs) throw (CMMError)
 
void stopSequenceAcquisition () throw (CMMError)
void stopSequenceAcquisition () throw (CMMError)
 
void stopSequenceAcquisition (const char *cameraLabel) throw (CMMError)
void stopSequenceAcquisition (const char *cameraLabel) throw (CMMError)
 
bool isSequenceRunning () throw ()
bool isSequenceRunning () throw ()
 
bool isSequenceRunning (const char *cameraLabel) throw (CMMError)
bool isSequenceRunning (const char *cameraLabel) throw (CMMError)
 
void * getLastImage () throw (CMMError)
void * getLastImage () throw (CMMError)
 
void * popNextImage () throw (CMMError)
void * popNextImage () throw (CMMError)
 
-void * getLastImageMD (unsigned channel, unsigned slice, Metadata &md) const throw (CMMError)
+void * getLastImageMD (unsigned channel, unsigned slice, Metadata &md) const throw (CMMError)
 
void * popNextImageMD (unsigned channel, unsigned slice, Metadata &md) throw (CMMError)
void * popNextImageMD (unsigned channel, unsigned slice, Metadata &md) throw (CMMError)
 
void * getLastImageMD (Metadata &md) const throw (CMMError)
void * getLastImageMD (Metadata &md) const throw (CMMError)
 
void * getNBeforeLastImageMD (unsigned long n, Metadata &md) const throw (CMMError)
void * getNBeforeLastImageMD (unsigned long n, Metadata &md) const throw (CMMError)
 
void * popNextImageMD (Metadata &md) throw (CMMError)
void * popNextImageMD (Metadata &md) throw (CMMError)
 
long getRemainingImageCount ()
long getRemainingImageCount ()
 
long getBufferTotalCapacity ()
long getBufferTotalCapacity ()
 
long getBufferFreeCapacity ()
long getBufferFreeCapacity ()
 
bool isBufferOverflowed () const
bool isBufferOverflowed () const
 
void setCircularBufferMemoryFootprint (unsigned sizeMB) throw (CMMError)
void setCircularBufferMemoryFootprint (unsigned sizeMB) throw (CMMError)
 
unsigned getCircularBufferMemoryFootprint ()
unsigned getCircularBufferMemoryFootprint ()
 
void initializeCircularBuffer () throw (CMMError)
void initializeCircularBuffer () throw (CMMError)
 
void clearCircularBuffer () throw (CMMError)
void clearCircularBuffer () throw (CMMError)
 
bool isExposureSequenceable (const char *cameraLabel) throw (CMMError)
bool isExposureSequenceable (const char *cameraLabel) throw (CMMError)
 
void startExposureSequence (const char *cameraLabel) throw (CMMError)
void startExposureSequence (const char *cameraLabel) throw (CMMError)
 
void stopExposureSequence (const char *cameraLabel) throw (CMMError)
void stopExposureSequence (const char *cameraLabel) throw (CMMError)
 
long getExposureSequenceMaxLength (const char *cameraLabel) throw (CMMError)
long getExposureSequenceMaxLength (const char *cameraLabel) throw (CMMError)
 
void loadExposureSequence (const char *cameraLabel, std::vector< double > exposureSequence_ms) throw (CMMError)
void loadExposureSequence (const char *cameraLabel, std::vector< double > exposureSequence_ms) throw (CMMError)
 
Autofocus control.
double getLastFocusScore ()
double getLastFocusScore ()
 
double getCurrentFocusScore ()
double getCurrentFocusScore ()
 
void enableContinuousFocus (bool enable) throw (CMMError)
void enableContinuousFocus (bool enable) throw (CMMError)
 
bool isContinuousFocusEnabled () throw (CMMError)
bool isContinuousFocusEnabled () throw (CMMError)
 
bool isContinuousFocusLocked () throw (CMMError)
bool isContinuousFocusLocked () throw (CMMError)
 
bool isContinuousFocusDrive (const char *stageLabel) throw (CMMError)
bool isContinuousFocusDrive (const char *stageLabel) throw (CMMError)
 
void fullFocus () throw (CMMError)
void fullFocus () throw (CMMError)
 
void incrementalFocus () throw (CMMError)
void incrementalFocus () throw (CMMError)
 
void setAutoFocusOffset (double offset) throw (CMMError)
void setAutoFocusOffset (double offset) throw (CMMError)
 
double getAutoFocusOffset () throw (CMMError)
double getAutoFocusOffset () throw (CMMError)
 
State device control.
void setState (const char *stateDeviceLabel, long state) throw (CMMError)
void setState (const char *stateDeviceLabel, long state) throw (CMMError)
 
long getState (const char *stateDeviceLabel) throw (CMMError)
long getState (const char *stateDeviceLabel) throw (CMMError)
 
long getNumberOfStates (const char *stateDeviceLabel)
long getNumberOfStates (const char *stateDeviceLabel)
 
void setStateLabel (const char *stateDeviceLabel, const char *stateLabel) throw (CMMError)
void setStateLabel (const char *stateDeviceLabel, const char *stateLabel) throw (CMMError)
 
std::string getStateLabel (const char *stateDeviceLabel) throw (CMMError)
std::string getStateLabel (const char *stateDeviceLabel) throw (CMMError)
 
void defineStateLabel (const char *stateDeviceLabel, long state, const char *stateLabel) throw (CMMError)
void defineStateLabel (const char *stateDeviceLabel, long state, const char *stateLabel) throw (CMMError)
 
std::vector< std::string > getStateLabels (const char *stateDeviceLabel) throw (CMMError)
std::vector< std::string > getStateLabels (const char *stateDeviceLabel) throw (CMMError)
 
long getStateFromLabel (const char *stateDeviceLabel, const char *stateLabel) throw (CMMError)
long getStateFromLabel (const char *stateDeviceLabel, const char *stateLabel) throw (CMMError)
 
Focus (Z) stage control.
void setPosition (const char *stageLabel, double position) throw (CMMError)
void setPosition (const char *stageLabel, double position) throw (CMMError)
 
void setPosition (double position) throw (CMMError)
void setPosition (double position) throw (CMMError)
 
double getPosition (const char *stageLabel) throw (CMMError)
double getPosition (const char *stageLabel) throw (CMMError)
 
double getPosition () throw (CMMError)
double getPosition () throw (CMMError)
 
void setRelativePosition (const char *stageLabel, double d) throw (CMMError)
void setRelativePosition (const char *stageLabel, double d) throw (CMMError)
 
void setRelativePosition (double d) throw (CMMError)
void setRelativePosition (double d) throw (CMMError)
 
void setOrigin (const char *stageLabel) throw (CMMError)
void setOrigin (const char *stageLabel) throw (CMMError)
 
void setOrigin () throw (CMMError)
void setOrigin () throw (CMMError)
 
void setAdapterOrigin (const char *stageLabel, double newZUm) throw (CMMError)
void setAdapterOrigin (const char *stageLabel, double newZUm) throw (CMMError)
 
void setAdapterOrigin (double newZUm) throw (CMMError)
void setAdapterOrigin (double newZUm) throw (CMMError)
 
void setFocusDirection (const char *stageLabel, int sign)
 Set the focus direction of a stage. More...
void setFocusDirection (const char *stageLabel, int sign)
 Set the focus direction of a stage.
 
int getFocusDirection (const char *stageLabel) throw (CMMError)
 Get the focus direction of a stage. More...
int getFocusDirection (const char *stageLabel) throw (CMMError)
 Get the focus direction of a stage.
 
bool isStageSequenceable (const char *stageLabel) throw (CMMError)
bool isStageSequenceable (const char *stageLabel) throw (CMMError)
 
bool isStageLinearSequenceable (const char *stageLabel) throw (CMMError)
bool isStageLinearSequenceable (const char *stageLabel) throw (CMMError)
 
void startStageSequence (const char *stageLabel) throw (CMMError)
void startStageSequence (const char *stageLabel) throw (CMMError)
 
void stopStageSequence (const char *stageLabel) throw (CMMError)
void stopStageSequence (const char *stageLabel) throw (CMMError)
 
long getStageSequenceMaxLength (const char *stageLabel) throw (CMMError)
long getStageSequenceMaxLength (const char *stageLabel) throw (CMMError)
 
void loadStageSequence (const char *stageLabel, std::vector< double > positionSequence) throw (CMMError)
void loadStageSequence (const char *stageLabel, std::vector< double > positionSequence) throw (CMMError)
 
void setStageLinearSequence (const char *stageLabel, double dZ_um, int nSlices) throw (CMMError)
void setStageLinearSequence (const char *stageLabel, double dZ_um, int nSlices) throw (CMMError)
 
XY stage control.
void setXYPosition (const char *xyStageLabel, double x, double y) throw (CMMError)
void setXYPosition (const char *xyStageLabel, double x, double y) throw (CMMError)
 
void setXYPosition (double x, double y) throw (CMMError)
void setXYPosition (double x, double y) throw (CMMError)
 
void setRelativeXYPosition (const char *xyStageLabel, double dx, double dy) throw (CMMError)
void setRelativeXYPosition (const char *xyStageLabel, double dx, double dy) throw (CMMError)
 
void setRelativeXYPosition (double dx, double dy) throw (CMMError)
void setRelativeXYPosition (double dx, double dy) throw (CMMError)
 
void getXYPosition (const char *xyStageLabel, double &x_stage, double &y_stage) throw (CMMError)
void getXYPosition (const char *xyStageLabel, double &x_stage, double &y_stage) throw (CMMError)
 
void getXYPosition (double &x_stage, double &y_stage) throw (CMMError)
void getXYPosition (double &x_stage, double &y_stage) throw (CMMError)
 
double getXPosition (const char *xyStageLabel) throw (CMMError)
double getXPosition (const char *xyStageLabel) throw (CMMError)
 
double getYPosition (const char *xyStageLabel) throw (CMMError)
double getYPosition (const char *xyStageLabel) throw (CMMError)
 
double getXPosition () throw (CMMError)
double getXPosition () throw (CMMError)
 
double getYPosition () throw (CMMError)
double getYPosition () throw (CMMError)
 
void stop (const char *xyOrZStageLabel) throw (CMMError)
void stop (const char *xyOrZStageLabel) throw (CMMError)
 
void home (const char *xyOrZStageLabel) throw (CMMError)
void home (const char *xyOrZStageLabel) throw (CMMError)
 
void setOriginXY (const char *xyStageLabel) throw (CMMError)
void setOriginXY (const char *xyStageLabel) throw (CMMError)
 
void setOriginXY () throw (CMMError)
void setOriginXY () throw (CMMError)
 
void setOriginX (const char *xyStageLabel) throw (CMMError)
void setOriginX (const char *xyStageLabel) throw (CMMError)
 
void setOriginX () throw (CMMError)
void setOriginX () throw (CMMError)
 
void setOriginY (const char *xyStageLabel) throw (CMMError)
void setOriginY (const char *xyStageLabel) throw (CMMError)
 
void setOriginY () throw (CMMError)
void setOriginY () throw (CMMError)
 
void setAdapterOriginXY (const char *xyStageLabel, double newXUm, double newYUm) throw (CMMError)
void setAdapterOriginXY (const char *xyStageLabel, double newXUm, double newYUm) throw (CMMError)
 
void setAdapterOriginXY (double newXUm, double newYUm) throw (CMMError)
void setAdapterOriginXY (double newXUm, double newYUm) throw (CMMError)
 
bool isXYStageSequenceable (const char *xyStageLabel) throw (CMMError)
bool isXYStageSequenceable (const char *xyStageLabel) throw (CMMError)
 
void startXYStageSequence (const char *xyStageLabel) throw (CMMError)
void startXYStageSequence (const char *xyStageLabel) throw (CMMError)
 
void stopXYStageSequence (const char *xyStageLabel) throw (CMMError)
void stopXYStageSequence (const char *xyStageLabel) throw (CMMError)
 
long getXYStageSequenceMaxLength (const char *xyStageLabel) throw (CMMError)
long getXYStageSequenceMaxLength (const char *xyStageLabel) throw (CMMError)
 
void loadXYStageSequence (const char *xyStageLabel, std::vector< double > xSequence, std::vector< double > ySequence) throw (CMMError)
void loadXYStageSequence (const char *xyStageLabel, std::vector< double > xSequence, std::vector< double > ySequence) throw (CMMError)
 
Serial port control.
void setSerialProperties (const char *portName, const char *answerTimeout, const char *baudRate, const char *delayBetweenCharsMs, const char *handshaking, const char *parity, const char *stopBits) throw (CMMError)
void setSerialProperties (const char *portName, const char *answerTimeout, const char *baudRate, const char *delayBetweenCharsMs, const char *handshaking, const char *parity, const char *stopBits) throw (CMMError)
 
void setSerialPortCommand (const char *portLabel, const char *command, const char *term) throw (CMMError)
void setSerialPortCommand (const char *portLabel, const char *command, const char *term) throw (CMMError)
 
std::string getSerialPortAnswer (const char *portLabel, const char *term) throw (CMMError)
std::string getSerialPortAnswer (const char *portLabel, const char *term) throw (CMMError)
 
void writeToSerialPort (const char *portLabel, const std::vector< char > &data) throw (CMMError)
void writeToSerialPort (const char *portLabel, const std::vector< char > &data) throw (CMMError)
 
std::vector< char > readFromSerialPort (const char *portLabel) throw (CMMError)
std::vector< char > readFromSerialPort (const char *portLabel) throw (CMMError)
 
SLM control.

Control of spatial light modulators such as liquid crystal on silicon (LCoS), digital micromirror devices (DMD), or multimedia projectors.

void setSLMImage (const char *slmLabel, unsigned char *pixels) throw (CMMError)
void setSLMImage (const char *slmLabel, unsigned char *pixels) throw (CMMError)
 
void setSLMImage (const char *slmLabel, imgRGB32 pixels) throw (CMMError)
void setSLMImage (const char *slmLabel, imgRGB32 pixels) throw (CMMError)
 
void setSLMPixelsTo (const char *slmLabel, unsigned char intensity) throw (CMMError)
void setSLMPixelsTo (const char *slmLabel, unsigned char intensity) throw (CMMError)
 
void setSLMPixelsTo (const char *slmLabel, unsigned char red, unsigned char green, unsigned char blue) throw (CMMError)
void setSLMPixelsTo (const char *slmLabel, unsigned char red, unsigned char green, unsigned char blue) throw (CMMError)
 
void displaySLMImage (const char *slmLabel) throw (CMMError)
void displaySLMImage (const char *slmLabel) throw (CMMError)
 
void setSLMExposure (const char *slmLabel, double exposure_ms) throw (CMMError)
void setSLMExposure (const char *slmLabel, double exposure_ms) throw (CMMError)
 
double getSLMExposure (const char *slmLabel) throw (CMMError)
double getSLMExposure (const char *slmLabel) throw (CMMError)
 
unsigned getSLMWidth (const char *slmLabel) throw (CMMError)
unsigned getSLMWidth (const char *slmLabel) throw (CMMError)
 
unsigned getSLMHeight (const char *slmLabel) throw (CMMError)
unsigned getSLMHeight (const char *slmLabel) throw (CMMError)
 
unsigned getSLMNumberOfComponents (const char *slmLabel) throw (CMMError)
unsigned getSLMNumberOfComponents (const char *slmLabel) throw (CMMError)
 
unsigned getSLMBytesPerPixel (const char *slmLabel) throw (CMMError)
unsigned getSLMBytesPerPixel (const char *slmLabel) throw (CMMError)
 
long getSLMSequenceMaxLength (const char *slmLabel) throw (CMMError)
long getSLMSequenceMaxLength (const char *slmLabel) throw (CMMError)
 
void startSLMSequence (const char *slmLabel) throw (CMMError)
void startSLMSequence (const char *slmLabel) throw (CMMError)
 
void stopSLMSequence (const char *slmLabel) throw (CMMError)
void stopSLMSequence (const char *slmLabel) throw (CMMError)
 
void loadSLMSequence (const char *slmLabel, std::vector< unsigned char * > imageSequence) throw (CMMError)
void loadSLMSequence (const char *slmLabel, std::vector< unsigned char * > imageSequence) throw (CMMError)
 
Galvo control.

Control of beam-steering devices.

void pointGalvoAndFire (const char *galvoLabel, double x, double y, double pulseTime_us) throw (CMMError)
void pointGalvoAndFire (const char *galvoLabel, double x, double y, double pulseTime_us) throw (CMMError)
 
-void setGalvoSpotInterval (const char *galvoLabel, double pulseTime_us) throw (CMMError)
+void setGalvoSpotInterval (const char *galvoLabel, double pulseTime_us) throw (CMMError)
 
void setGalvoPosition (const char *galvoLabel, double x, double y) throw (CMMError)
void setGalvoPosition (const char *galvoLabel, double x, double y) throw (CMMError)
 
void getGalvoPosition (const char *galvoLabel, double &x_stage, double &y_stage) throw (CMMError)
void getGalvoPosition (const char *galvoLabel, double &x_stage, double &y_stage) throw (CMMError)
 
void setGalvoIlluminationState (const char *galvoLabel, bool on) throw (CMMError)
void setGalvoIlluminationState (const char *galvoLabel, bool on) throw (CMMError)
 
double getGalvoXRange (const char *galvoLabel) throw (CMMError)
double getGalvoXRange (const char *galvoLabel) throw (CMMError)
 
double getGalvoXMinimum (const char *galvoLabel) throw (CMMError)
double getGalvoXMinimum (const char *galvoLabel) throw (CMMError)
 
double getGalvoYRange (const char *galvoLabel) throw (CMMError)
double getGalvoYRange (const char *galvoLabel) throw (CMMError)
 
double getGalvoYMinimum (const char *galvoLabel) throw (CMMError)
double getGalvoYMinimum (const char *galvoLabel) throw (CMMError)
 
void addGalvoPolygonVertex (const char *galvoLabel, int polygonIndex, double x, double y) throw (CMMError)
void addGalvoPolygonVertex (const char *galvoLabel, int polygonIndex, double x, double y) throw (CMMError)
 
void deleteGalvoPolygons (const char *galvoLabel) throw (CMMError)
void deleteGalvoPolygons (const char *galvoLabel) throw (CMMError)
 
void loadGalvoPolygons (const char *galvoLabel) throw (CMMError)
void loadGalvoPolygons (const char *galvoLabel) throw (CMMError)
 
void setGalvoPolygonRepetitions (const char *galvoLabel, int repetitions) throw (CMMError)
void setGalvoPolygonRepetitions (const char *galvoLabel, int repetitions) throw (CMMError)
 
void runGalvoPolygons (const char *galvoLabel) throw (CMMError)
void runGalvoPolygons (const char *galvoLabel) throw (CMMError)
 
void runGalvoSequence (const char *galvoLabel) throw (CMMError)
void runGalvoSequence (const char *galvoLabel) throw (CMMError)
 
std::string getGalvoChannel (const char *galvoLabel) throw (CMMError)
std::string getGalvoChannel (const char *galvoLabel) throw (CMMError)
 
Device discovery.
bool supportsDeviceDetection (const char *deviceLabel)
bool supportsDeviceDetection (const char *deviceLabel)
 
MM::DeviceDetectionStatus detectDevice (const char *deviceLabel)
MM::DeviceDetectionStatus detectDevice (const char *deviceLabel)
 
Hub and peripheral devices.
std::string getParentLabel (const char *peripheralLabel) throw (CMMError)
std::string getParentLabel (const char *peripheralLabel) throw (CMMError)
 
void setParentLabel (const char *deviceLabel, const char *parentHubLabel) throw (CMMError)
void setParentLabel (const char *deviceLabel, const char *parentHubLabel) throw (CMMError)
 
std::vector< std::string > getInstalledDevices (const char *hubLabel) throw (CMMError)
std::vector< std::string > getInstalledDevices (const char *hubLabel) throw (CMMError)
 
-std::string getInstalledDeviceDescription (const char *hubLabel, const char *peripheralLabel) throw (CMMError)
+std::string getInstalledDeviceDescription (const char *hubLabel, const char *peripheralLabel) throw (CMMError)
 
-std::vector< std::string > getLoadedPeripheralDevices (const char *hubLabel) throw (CMMError)
+std::vector< std::string > getLoadedPeripheralDevices (const char *hubLabel) throw (CMMError)
 
- - - + + - + - +

+

Static Public Member Functions

static void noop ()
 A static method that does nothing. More...
static void noop ()
 A static method that does nothing.
 
Core feature control.
static void enableFeature (const char *name, bool enable) throw (CMMError)
static void enableFeature (const char *name, bool enable) throw (CMMError)
 
static bool isFeatureEnabled (const char *name) throw (CMMError)
static bool isFeatureEnabled (const char *name) throw (CMMError)
 
- - -

+

Friends

+
class CoreCallback
 
+
class CorePropertyCollection
 
@@ -712,8 +711,8 @@

Provides a device-independent interface for hardware control. Additionally, provides some facilities (such as configuration groups) for application programming.

The signatures of most of the public member functions are designed to be wrapped by SWIG with minimal manual configuration.

Constructor & Destructor Documentation

- -

◆ CMMCore()

+ +

◆ CMMCore()

@@ -730,8 +729,8 @@

-

◆ ~CMMCore()

+ +

◆ ~CMMCore()

@@ -751,8 +750,8 @@

Member Function Documentation

- -

◆ addGalvoPolygonVertex()

+ +

◆ addGalvoPolygonVertex()

@@ -798,8 +797,8 @@

-

◆ clearCircularBuffer()

+ +

◆ clearCircularBuffer()

@@ -823,8 +822,8 @@

-

◆ clearROI()

+ +

◆ clearROI()

@@ -848,8 +847,8 @@

-

◆ debugLogEnabled()

+ +

◆ debugLogEnabled()

@@ -866,8 +865,8 @@

-

◆ defineConfig() [1/2]

+ +

◆ defineConfig() [1/2]

@@ -908,8 +907,8 @@

-

◆ defineConfig() [2/2]

+ +

◆ defineConfig() [2/2]

@@ -971,8 +970,8 @@

-

◆ defineConfigGroup()

+ +

◆ defineConfigGroup()

@@ -996,8 +995,8 @@

-

◆ definePixelSizeConfig() [1/2]

+ +

◆ definePixelSizeConfig() [1/2]

@@ -1021,8 +1020,8 @@

-

◆ definePixelSizeConfig() [2/2]

+ +

◆ definePixelSizeConfig() [2/2]

@@ -1077,8 +1076,8 @@

-

◆ defineStateLabel()

+ +

◆ defineStateLabel()

@@ -1128,8 +1127,8 @@

-

◆ deleteConfig() [1/2]

+ +

◆ deleteConfig() [1/2]

@@ -1163,8 +1162,8 @@

-

◆ deleteConfig() [2/2]

+ +

◆ deleteConfig() [2/2]

@@ -1210,8 +1209,8 @@

-

◆ deleteConfigGroup()

+ +

◆ deleteConfigGroup()

@@ -1235,8 +1234,8 @@

-

◆ deleteGalvoPolygons()

+ +

◆ deleteGalvoPolygons()

@@ -1260,8 +1259,8 @@

-

◆ deletePixelSizeConfig()

+ +

◆ deletePixelSizeConfig()

@@ -1285,8 +1284,8 @@

-

◆ detectDevice()

+ +

◆ detectDevice()

@@ -1313,8 +1312,8 @@

-

◆ deviceBusy()

+ +

◆ deviceBusy()

@@ -1344,8 +1343,8 @@

-

◆ deviceTypeBusy()

+ +

◆ deviceTypeBusy()

@@ -1378,8 +1377,8 @@

-

◆ displaySLMImage()

+ +

◆ displaySLMImage()

@@ -1403,8 +1402,8 @@

-

◆ enableContinuousFocus()

+ +

◆ enableContinuousFocus()

@@ -1428,8 +1427,8 @@

-

◆ enableDebugLog()

+ +

◆ enableDebugLog()

@@ -1452,8 +1451,8 @@

-

◆ enableFeature()

+ +

◆ enableFeature()

@@ -1519,8 +1518,8 @@

-

◆ enableStderrLog()

+ +

◆ enableStderrLog()

@@ -1543,8 +1542,8 @@

-

◆ fullFocus()

+ +

◆ fullFocus()

@@ -1569,8 +1568,8 @@

-

◆ getAllowedPropertyValues()

+ +

◆ getAllowedPropertyValues()

@@ -1612,8 +1611,8 @@

-

◆ getAPIVersionInfo()

+ +

◆ getAPIVersionInfo()

@@ -1630,8 +1629,8 @@

-

◆ getAutoFocusDevice()

+ +

◆ getAutoFocusDevice()

@@ -1648,8 +1647,8 @@

-

◆ getAutoFocusOffset()

+ +

◆ getAutoFocusOffset()

@@ -1674,8 +1673,8 @@

-

◆ getAutoShutter()

+ +

◆ getAutoShutter()

@@ -1692,8 +1691,8 @@

-

◆ getAvailableConfigGroups()

+ +

◆ getAvailableConfigGroups()

- -

◆ getAvailableConfigs()

+ +

◆ getAvailableConfigs()

- -

◆ getAvailableDeviceDescriptions()

+ +

◆ getAvailableDeviceDescriptions()

@@ -1764,8 +1763,8 @@

-

◆ getAvailableDevices()

+ +

◆ getAvailableDevices()

@@ -1789,8 +1788,8 @@

-

◆ getAvailableDeviceTypes()

+ +

◆ getAvailableDeviceTypes()

@@ -1814,8 +1813,8 @@

-

◆ getAvailablePixelSizeConfigs()

+ +

◆ getAvailablePixelSizeConfigs()

- -

◆ getBufferFreeCapacity()

+ +

◆ getBufferFreeCapacity()

@@ -1854,8 +1853,8 @@

-

◆ getBufferTotalCapacity()

+ +

◆ getBufferTotalCapacity()

@@ -1872,8 +1871,8 @@

-

◆ getBytesPerPixel()

+ +

◆ getBytesPerPixel()

@@ -1890,8 +1889,8 @@

-

◆ getCameraChannelName()

+ +

◆ getCameraChannelName()

@@ -1909,8 +1908,8 @@

-

◆ getCameraDevice()

+ +

◆ getCameraDevice()

@@ -1927,8 +1926,8 @@

-

◆ getChannelGroup()

+ +

◆ getChannelGroup()

@@ -1945,8 +1944,8 @@

-

◆ getCircularBufferMemoryFootprint()

+ +

◆ getCircularBufferMemoryFootprint()

@@ -1963,8 +1962,8 @@

-

◆ getConfigData()

+ +

◆ getConfigData()

@@ -2001,8 +2000,8 @@

-

◆ getConfigGroupState()

+ +

◆ getConfigGroupState()

@@ -2026,8 +2025,8 @@

-

◆ getConfigGroupStateFromCache()

+ +

◆ getConfigGroupStateFromCache()

@@ -2051,8 +2050,8 @@

-

◆ getConfigState()

+ +

◆ getConfigState()

@@ -2088,8 +2087,8 @@

-

◆ getCoreErrorText()

+ +

◆ getCoreErrorText()

@@ -2109,8 +2108,8 @@

-

◆ getCurrentConfig()

+ +

◆ getCurrentConfig()

@@ -2137,8 +2136,8 @@

-

◆ getCurrentConfigFromCache()

+ +

◆ getCurrentConfigFromCache()

@@ -2167,8 +2166,8 @@

-

◆ getCurrentFocusScore()

+ +

◆ getCurrentFocusScore()

@@ -2185,8 +2184,8 @@

-

◆ getCurrentPixelSizeConfig() [1/2]

+ +

◆ getCurrentPixelSizeConfig() [1/2]

- -

◆ getCurrentPixelSizeConfig() [2/2]

+ +

◆ getCurrentPixelSizeConfig() [2/2]

@@ -2238,8 +2239,8 @@

-

◆ getDeviceAdapterNames()

+ +

◆ getDeviceAdapterNames()

@@ -2263,8 +2264,8 @@

-

◆ getDeviceAdapterSearchPaths()

+ +

◆ getDeviceAdapterSearchPaths()

@@ -2281,8 +2282,8 @@

-

◆ getDeviceDelayMs()

+ +

◆ getDeviceDelayMs()

@@ -2313,8 +2314,8 @@

-

◆ getDeviceDescription()

+ +

◆ getDeviceDescription()

@@ -2338,8 +2339,8 @@

-

◆ getDeviceInitializationState()

+ +

◆ getDeviceInitializationState()

@@ -2369,8 +2370,8 @@

-

◆ getDeviceLibrary()

+ +

◆ getDeviceLibrary()

@@ -2394,8 +2395,8 @@

-

◆ getDeviceName()

+ +

◆ getDeviceName()

@@ -2421,8 +2422,8 @@

-

◆ getDevicePropertyNames()

+ +

◆ getDevicePropertyNames()

@@ -2453,8 +2454,8 @@

-

◆ getDeviceType()

+ +

◆ getDeviceType()

@@ -2478,8 +2479,8 @@

-

◆ getExposure() [1/2]

+ +

◆ getExposure() [1/2]

@@ -2502,8 +2503,8 @@

-

◆ getExposure() [2/2]

+ +

◆ getExposure() [2/2]

@@ -2533,8 +2534,8 @@

-

◆ getExposureSequenceMaxLength()

+ +

◆ getExposureSequenceMaxLength()

@@ -2563,8 +2564,8 @@

-

◆ getFocusDevice()

+ +

◆ getFocusDevice()

@@ -2583,8 +2584,8 @@

-

◆ getFocusDirection()

+ +

◆ getFocusDirection()

@@ -2612,8 +2613,8 @@

-

◆ getGalvoChannel()

+ +

◆ getGalvoChannel()

@@ -2637,8 +2638,8 @@

-

◆ getGalvoDevice()

+ +

◆ getGalvoDevice()

@@ -2655,8 +2656,8 @@

-

◆ getGalvoPosition()

+ +

◆ getGalvoPosition()

@@ -2696,8 +2697,8 @@

-

◆ getGalvoXMinimum()

+ +

◆ getGalvoXMinimum()

@@ -2721,8 +2722,8 @@

-

◆ getGalvoXRange()

+ +

◆ getGalvoXRange()

@@ -2746,8 +2747,8 @@

-

◆ getGalvoYMinimum()

+ +

◆ getGalvoYMinimum()

@@ -2771,8 +2772,8 @@

-

◆ getGalvoYRange()

+ +

◆ getGalvoYRange()

@@ -2796,8 +2797,8 @@

-

◆ getImage() [1/2]

+ +

◆ getImage() [1/2]

@@ -2834,8 +2835,8 @@

-

◆ getImage() [2/2]

+ +

◆ getImage() [2/2]

@@ -2868,8 +2869,8 @@

-

◆ getImageBitDepth()

+ +

◆ getImageBitDepth()

@@ -2887,8 +2888,8 @@

-

◆ getImageBufferSize()

+ +

◆ getImageBufferSize()

@@ -2906,8 +2907,8 @@

-

◆ getImageHeight()

+ +

◆ getImageHeight()

@@ -2924,8 +2925,8 @@

-

◆ getImageProcessorDevice()

+ +

◆ getImageProcessorDevice()

@@ -2942,8 +2943,8 @@

-

◆ getImageWidth()

+ +

◆ getImageWidth()

@@ -2960,8 +2961,8 @@

-

◆ getInstalledDevices()

+ +

◆ getInstalledDevices()

@@ -2992,8 +2993,8 @@

-

◆ getLastFocusScore()

+ +

◆ getLastFocusScore()

@@ -3010,8 +3011,8 @@

-

◆ getLastImage()

+ +

◆ getLastImage()

@@ -3036,8 +3037,8 @@

-

◆ getLastImageMD()

+ +

◆ getLastImageMD()

@@ -3063,8 +3064,8 @@

-

◆ getLoadedDevices()

+ +

◆ getLoadedDevices()

@@ -3081,8 +3082,8 @@

-

◆ getLoadedDevicesOfType()

+ +

◆ getLoadedDevicesOfType()

@@ -3108,8 +3109,8 @@

-

◆ getMagnificationFactor()

+ +

◆ getMagnificationFactor()

@@ -3131,8 +3132,8 @@

-

◆ getMultiROI()

+ +

◆ getMultiROI()

@@ -3186,8 +3187,8 @@

-

◆ getNBeforeLastImageMD()

+ +

◆ getNBeforeLastImageMD()

@@ -3223,8 +3224,8 @@

-

◆ getNumberOfCameraChannels()

+ +

◆ getNumberOfCameraChannels()

@@ -3241,8 +3242,8 @@

-

◆ getNumberOfComponents()

+ +

◆ getNumberOfComponents()

@@ -3259,8 +3260,8 @@

-

◆ getNumberOfStates()

+ +

◆ getNumberOfStates()

@@ -3279,8 +3280,8 @@

-

◆ getParentLabel()

+ +

◆ getParentLabel()

@@ -3304,8 +3305,8 @@

-

◆ getPixelSizeAffine() [1/2]

+ +

◆ getPixelSizeAffine() [1/2]

- -

◆ getPixelSizeAffine() [2/2]

+ +

◆ getPixelSizeAffine() [2/2]

@@ -3355,8 +3358,8 @@

-

◆ getPixelSizeAffineByID()

+ +

◆ getPixelSizeAffineByID()

@@ -3380,8 +3383,8 @@

-

◆ getPixelSizeConfigData()

+ +

◆ getPixelSizeConfigData()

@@ -3407,8 +3410,8 @@

-

◆ getPixelSizeUm() [1/2]

+ +

◆ getPixelSizeUm() [1/2]

- -

◆ getPixelSizeUm() [2/2]

+ +

◆ getPixelSizeUm() [2/2]

- -

◆ getPixelSizeUmByID()

+ +

◆ getPixelSizeUmByID()

@@ -3474,8 +3479,8 @@

-

◆ getPosition() [1/2]

+ +

◆ getPosition() [1/2]

- -

◆ getPosition() [2/2]

+ +

◆ getPosition() [2/2]

@@ -3531,8 +3538,8 @@

-

◆ getPrimaryLogFile()

+ +

◆ getPrimaryLogFile()

@@ -3549,8 +3556,8 @@

-

◆ getProperty()

+ +

◆ getProperty()

@@ -3594,8 +3601,8 @@

-

◆ getPropertyFromCache()

+ +

◆ getPropertyFromCache()

@@ -3639,8 +3646,8 @@

-

◆ getPropertyLowerLimit()

+ +

◆ getPropertyLowerLimit()

@@ -3674,8 +3681,8 @@

-

◆ getPropertySequenceMaxLength()

+ +

◆ getPropertySequenceMaxLength()

@@ -3715,8 +3722,8 @@

-

◆ getPropertyType()

+ +

◆ getPropertyType()

@@ -3750,8 +3757,8 @@

-

◆ getPropertyUpperLimit()

+ +

◆ getPropertyUpperLimit()

@@ -3785,8 +3792,8 @@

-

◆ getRemainingImageCount()

+ +

◆ getRemainingImageCount()

@@ -3803,8 +3810,8 @@

-

◆ getROI() [1/2]

+ +

◆ getROI() [1/2]

@@ -3866,8 +3873,8 @@

-

◆ getROI() [2/2]

+ +

◆ getROI() [2/2]

@@ -3923,8 +3930,8 @@

-

◆ getSerialPortAnswer()

+ +

◆ getSerialPortAnswer()

@@ -3960,8 +3967,8 @@

-

◆ getShutterDevice()

+ +

◆ getShutterDevice()

@@ -3980,8 +3987,8 @@

-

◆ getShutterOpen() [1/2]

+ +

◆ getShutterOpen() [1/2]

- -

◆ getShutterOpen() [2/2]

+ +

◆ getShutterOpen() [2/2]

@@ -4036,8 +4045,8 @@

-

◆ getSLMBytesPerPixel()

+ +

◆ getSLMBytesPerPixel()

@@ -4067,8 +4076,8 @@

-

◆ getSLMDevice()

+ +

◆ getSLMDevice()

@@ -4085,8 +4094,8 @@

-

◆ getSLMExposure()

+ +

◆ getSLMExposure()

@@ -4110,8 +4119,8 @@

-

◆ getSLMHeight()

+ +

◆ getSLMHeight()

@@ -4141,8 +4150,8 @@

-

◆ getSLMNumberOfComponents()

+ +

◆ getSLMNumberOfComponents()

@@ -4172,8 +4181,8 @@

-

◆ getSLMSequenceMaxLength()

+ +

◆ getSLMSequenceMaxLength()

@@ -4203,8 +4212,8 @@

-

◆ getSLMWidth()

+ +

◆ getSLMWidth()

@@ -4234,8 +4243,8 @@

-

◆ getStageSequenceMaxLength()

+ +

◆ getStageSequenceMaxLength()

@@ -4265,8 +4274,8 @@

-

◆ getState()

+ +

◆ getState()

@@ -4297,8 +4306,8 @@

-

◆ getStateFromLabel()

+ +

◆ getStateFromLabel()

@@ -4340,8 +4349,8 @@

-

◆ getStateLabel()

+ +

◆ getStateLabel()

@@ -4372,8 +4381,8 @@

-

◆ getStateLabels()

+ +

◆ getStateLabels()

@@ -4404,8 +4413,8 @@

-

◆ getSystemState()

+ +

◆ getSystemState()

@@ -4428,8 +4437,8 @@

-

◆ getSystemStateCache()

+ +

◆ getSystemStateCache()

@@ -4446,8 +4455,8 @@

-

◆ getVersionInfo()

+ +

◆ getVersionInfo()

@@ -4464,8 +4473,8 @@

-

◆ getXPosition() [1/2]

+ +

◆ getXPosition() [1/2]

@@ -4492,12 +4501,14 @@

References getXYStageDevice().

+

References getXPosition(), and getXYStageDevice().

+ +

Referenced by getXPosition().

- -

◆ getXPosition() [2/2]

+ +

◆ getXPosition() [2/2]

@@ -4527,8 +4538,8 @@

-

◆ getXYPosition() [1/2]

+ +

◆ getXYPosition() [1/2]

@@ -4575,8 +4586,8 @@

-

◆ getXYPosition() [2/2]

+ +

◆ getXYPosition() [2/2]

@@ -4616,8 +4627,8 @@

-

◆ getXYStageDevice()

+ +

◆ getXYStageDevice()

@@ -4636,8 +4647,8 @@

-

◆ getXYStageSequenceMaxLength()

+ +

◆ getXYStageSequenceMaxLength()

@@ -4667,8 +4678,8 @@

-

◆ getYPosition() [1/2]

+ +

◆ getYPosition() [1/2]

@@ -4695,12 +4706,14 @@

References getXYStageDevice().

+

References getXYStageDevice(), and getYPosition().

+ +

Referenced by getYPosition().

- -

◆ getYPosition() [2/2]

+ +

◆ getYPosition() [2/2]

@@ -4730,8 +4743,8 @@

-

◆ hasProperty()

+ +

◆ hasProperty()

@@ -4765,8 +4778,8 @@

-

◆ hasPropertyLimits()

+ +

◆ hasPropertyLimits()

@@ -4806,8 +4819,8 @@

-

◆ home()

+ +

◆ home()

@@ -4838,8 +4851,8 @@

-

◆ incrementalFocus()

+ +

◆ incrementalFocus()

@@ -4864,8 +4877,8 @@

-

◆ initializeAllDevices()

+ +

◆ initializeAllDevices()

@@ -4890,8 +4903,8 @@

-

◆ initializeCircularBuffer()

+ +

◆ initializeCircularBuffer()

@@ -4916,8 +4929,8 @@

-

◆ initializeDevice()

+ +

◆ initializeDevice()

@@ -4953,8 +4966,8 @@

-

◆ isBufferOverflowed()

+ +

◆ isBufferOverflowed()

@@ -4971,8 +4984,8 @@

-

◆ isConfigDefined()

+ +

◆ isConfigDefined()

- -

◆ isContinuousFocusDrive()

+ +

◆ isContinuousFocusDrive()

@@ -5030,8 +5043,8 @@

-

◆ isContinuousFocusEnabled()

+ +

◆ isContinuousFocusEnabled()

@@ -5056,8 +5069,8 @@

-

◆ isContinuousFocusLocked()

+ +

◆ isContinuousFocusLocked()

@@ -5080,8 +5093,8 @@

-

◆ isExposureSequenceable()

+ +

◆ isExposureSequenceable()

@@ -5111,8 +5124,8 @@

-

◆ isFeatureEnabled()

+ +

◆ isFeatureEnabled()

@@ -5160,8 +5173,8 @@

-

◆ isGroupDefined()

+ +

◆ isGroupDefined()

@@ -5182,8 +5195,8 @@

-

◆ isMultiROIEnabled()

+ +

◆ isMultiROIEnabled()

@@ -5208,8 +5221,8 @@

-

◆ isMultiROISupported()

+ +

◆ isMultiROISupported()

@@ -5234,8 +5247,8 @@

-

◆ isPixelSizeConfigDefined()

+ +

◆ isPixelSizeConfigDefined()

@@ -5260,8 +5273,8 @@

-

◆ isPropertyPreInit()

+ +

◆ isPropertyPreInit()

@@ -5303,8 +5316,8 @@

-

◆ isPropertyReadOnly()

+ +

◆ isPropertyReadOnly()

@@ -5346,8 +5359,8 @@

-

◆ isPropertySequenceable()

+ +

◆ isPropertySequenceable()

@@ -5387,8 +5400,8 @@

-

◆ isSequenceRunning() [1/2]

+ +

◆ isSequenceRunning() [1/2]

@@ -5411,8 +5424,8 @@

-

◆ isSequenceRunning() [2/2]

+ +

◆ isSequenceRunning() [2/2]

@@ -5436,8 +5449,8 @@

-

◆ isStageLinearSequenceable()

+ +

◆ isStageLinearSequenceable()

@@ -5467,8 +5480,8 @@

-

◆ isStageSequenceable()

+ +

◆ isStageSequenceable()

@@ -5498,8 +5511,8 @@

-

◆ isXYStageSequenceable()

+ +

◆ isXYStageSequenceable()

@@ -5528,8 +5541,8 @@

-

◆ loadDevice()

+ +

◆ loadDevice()

@@ -5576,8 +5589,8 @@

-

◆ loadExposureSequence()

+ +

◆ loadExposureSequence()

@@ -5617,8 +5630,8 @@

-

◆ loadGalvoPolygons()

+ +

◆ loadGalvoPolygons()

@@ -5642,8 +5655,8 @@

-

◆ loadPropertySequence()

+ +

◆ loadPropertySequence()

@@ -5690,8 +5703,8 @@

-

◆ loadSLMSequence()

+ +

◆ loadSLMSequence()

@@ -5732,8 +5745,8 @@

-

◆ loadStageSequence()

+ +

◆ loadStageSequence()

@@ -5773,8 +5786,8 @@

-

◆ loadSystemConfiguration()

+ +

◆ loadSystemConfiguration()

@@ -5802,8 +5815,8 @@

-

◆ loadSystemState()

+ +

◆ loadSystemState()

@@ -5828,8 +5841,8 @@

-

◆ loadXYStageSequence()

+ +

◆ loadXYStageSequence()

@@ -5876,8 +5889,8 @@

-

◆ logMessage() [1/2]

+ +

◆ logMessage() [1/2]

@@ -5895,8 +5908,8 @@

-

◆ logMessage() [2/2]

+ +

◆ logMessage() [2/2]

@@ -5924,8 +5937,8 @@

-

◆ noop()

+ +

◆ noop()

@@ -5952,8 +5965,8 @@

-

◆ pointGalvoAndFire()

+ +

◆ pointGalvoAndFire()

@@ -5999,8 +6012,8 @@

-

◆ popNextImage()

+ +

◆ popNextImage()

@@ -6027,8 +6040,8 @@

-

◆ popNextImageMD() [1/2]

+ +

◆ popNextImageMD() [1/2]

@@ -6052,8 +6065,8 @@

-

◆ popNextImageMD() [2/2]

+ +

◆ popNextImageMD() [2/2]

@@ -6093,8 +6106,8 @@

-

◆ prepareSequenceAcquisition()

+ +

◆ prepareSequenceAcquisition()

@@ -6118,8 +6131,8 @@

-

◆ readFromSerialPort()

+ +

◆ readFromSerialPort()

@@ -6143,8 +6156,8 @@

-

◆ registerCallback()

+ +

◆ registerCallback()

@@ -6162,8 +6175,8 @@

-

◆ renameConfig()

+ +

◆ renameConfig()

@@ -6203,8 +6216,8 @@

-

◆ renameConfigGroup()

+ +

◆ renameConfigGroup()

@@ -6238,8 +6251,8 @@

-

◆ renamePixelSizeConfig()

+ +

◆ renamePixelSizeConfig()

@@ -6273,8 +6286,8 @@

-

◆ reset()

+ +

◆ reset()

@@ -6301,8 +6314,8 @@

-

◆ runGalvoPolygons()

+ +

◆ runGalvoPolygons()

@@ -6326,8 +6339,8 @@

-

◆ runGalvoSequence()

+ +

◆ runGalvoSequence()

@@ -6351,8 +6364,8 @@

-

◆ saveSystemConfiguration()

+ +

◆ saveSystemConfiguration()

@@ -6378,8 +6391,8 @@

-

◆ saveSystemState()

+ +

◆ saveSystemState()

@@ -6405,8 +6418,8 @@

-

◆ setAdapterOrigin() [1/2]

+ +

◆ setAdapterOrigin() [1/2]

@@ -6448,8 +6461,8 @@

-

◆ setAdapterOrigin() [2/2]

+ +

◆ setAdapterOrigin() [2/2]

@@ -6480,8 +6493,8 @@

-

◆ setAdapterOriginXY() [1/2]

+ +

◆ setAdapterOriginXY() [1/2]

@@ -6530,8 +6543,8 @@

-

◆ setAdapterOriginXY() [2/2]

+ +

◆ setAdapterOriginXY() [2/2]

@@ -6573,8 +6586,8 @@

-

◆ setAutoFocusDevice()

+ +

◆ setAutoFocusDevice()

@@ -6598,8 +6611,8 @@

-

◆ setAutoFocusOffset()

+ +

◆ setAutoFocusOffset()

@@ -6623,8 +6636,8 @@

-

◆ setAutoShutter()

+ +

◆ setAutoShutter()

@@ -6649,8 +6662,8 @@

-

◆ setCameraDevice()

+ +

◆ setCameraDevice()

@@ -6679,8 +6692,8 @@

-

◆ setChannelGroup()

+ +

◆ setChannelGroup()

@@ -6704,8 +6717,8 @@

-

◆ setCircularBufferMemoryFootprint()

+ +

◆ setCircularBufferMemoryFootprint()

@@ -6735,8 +6748,8 @@

-

◆ setConfig()

+ +

◆ setConfig()

@@ -6779,8 +6792,8 @@

-

◆ setDeviceAdapterSearchPaths()

+ +

◆ setDeviceAdapterSearchPaths()

@@ -6806,8 +6819,8 @@

-

◆ setDeviceDelayMs()

+ +

◆ setDeviceDelayMs()

@@ -6848,8 +6861,8 @@

-

◆ setExposure() [1/2]

+ +

◆ setExposure() [1/2]

@@ -6889,8 +6902,8 @@

-

◆ setExposure() [2/2]

+ +

◆ setExposure() [2/2]

@@ -6919,8 +6932,8 @@

-

◆ setFocusDevice()

+ +

◆ setFocusDevice()

@@ -6949,8 +6962,8 @@

-

◆ setFocusDirection()

+ +

◆ setFocusDirection()

@@ -6982,8 +6995,8 @@

-

◆ setGalvoDevice()

+ +

◆ setGalvoDevice()

@@ -7007,8 +7020,8 @@

-

◆ setGalvoIlluminationState()

+ +

◆ setGalvoIlluminationState()

@@ -7042,8 +7055,8 @@

-

◆ setGalvoPolygonRepetitions()

+ +

◆ setGalvoPolygonRepetitions()

@@ -7077,8 +7090,8 @@

-

◆ setGalvoPosition()

+ +

◆ setGalvoPosition()

@@ -7118,8 +7131,8 @@

-

◆ setImageProcessorDevice()

+ +

◆ setImageProcessorDevice()

@@ -7143,8 +7156,8 @@

-

◆ setMultiROI()

+ +

◆ setMultiROI()

@@ -7199,8 +7212,8 @@

-

◆ setOrigin() [1/2]

+ +

◆ setOrigin() [1/2]

@@ -7222,12 +7235,14 @@

setAdapterOrigin().

-

References getFocusDevice().

+

References getFocusDevice(), and setOrigin().

+ +

Referenced by setOrigin().

- -

◆ setOrigin() [2/2]

+ +

◆ setOrigin() [2/2]

@@ -7258,8 +7273,8 @@

-

◆ setOriginX() [1/2]

+ +

◆ setOriginX() [1/2]

@@ -7281,12 +7296,14 @@

References getXYStageDevice().

+

References getXYStageDevice(), and setOriginX().

+ +

Referenced by setOriginX().

- -

◆ setOriginX() [2/2]

+ +

◆ setOriginX() [2/2]

@@ -7317,8 +7334,8 @@

-

◆ setOriginXY() [1/2]

+ +

◆ setOriginXY() [1/2]

@@ -7340,12 +7357,14 @@

setAdapterOriginXY().

-

References getXYStageDevice().

+

References getXYStageDevice(), and setOriginXY().

+ +

Referenced by setOriginXY().

- -

◆ setOriginXY() [2/2]

+ +

◆ setOriginXY() [2/2]

@@ -7376,8 +7395,8 @@

-

◆ setOriginY() [1/2]

+ +

◆ setOriginY() [1/2]

@@ -7399,12 +7418,14 @@

References getXYStageDevice().

+

References getXYStageDevice(), and setOriginY().

+ +

Referenced by setOriginY().

- -

◆ setOriginY() [2/2]

+ +

◆ setOriginY() [2/2]

@@ -7435,8 +7456,8 @@

-

◆ setParentLabel()

+ +

◆ setParentLabel()

@@ -7470,8 +7491,8 @@

-

◆ setPixelSizeAffine()

+ +

◆ setPixelSizeAffine()

@@ -7505,8 +7526,8 @@

-

◆ setPixelSizeConfig()

+ +

◆ setPixelSizeConfig()

@@ -7539,8 +7560,8 @@

-

◆ setPixelSizeUm()

+ +

◆ setPixelSizeUm()

@@ -7574,8 +7595,8 @@

-

◆ setPosition() [1/2]

+ +

◆ setPosition() [1/2]

@@ -7615,8 +7636,8 @@

-

◆ setPosition() [2/2]

+ +

◆ setPosition() [2/2]

@@ -7645,8 +7666,8 @@

-

◆ setPrimaryLogFile()

+ +

◆ setPrimaryLogFile()

@@ -7686,8 +7707,8 @@

-

◆ setProperty() [1/5]

+ +

◆ setProperty() [1/5]

@@ -7735,8 +7756,8 @@

-

◆ setProperty() [2/5]

+ +

◆ setProperty() [2/5]

@@ -7786,8 +7807,8 @@

-

◆ setProperty() [3/5]

+ +

◆ setProperty() [3/5]

@@ -7835,8 +7856,8 @@

-

◆ setProperty() [4/5]

+ +

◆ setProperty() [4/5]

@@ -7884,8 +7905,8 @@

-

◆ setProperty() [5/5]

+ +

◆ setProperty() [5/5]

@@ -7933,8 +7954,8 @@

-

◆ setRelativePosition() [1/2]

+ +

◆ setRelativePosition() [1/2]

@@ -7974,8 +7995,8 @@

-

◆ setRelativePosition() [2/2]

+ +

◆ setRelativePosition() [2/2]

@@ -8004,8 +8025,8 @@

-

◆ setRelativeXYPosition() [1/2]

+ +

◆ setRelativeXYPosition() [1/2]

@@ -8052,8 +8073,8 @@

-

◆ setRelativeXYPosition() [2/2]

+ +

◆ setRelativeXYPosition() [2/2]

@@ -8093,8 +8114,8 @@

-

◆ setROI() [1/2]

+ +

◆ setROI() [1/2]

@@ -8160,8 +8181,8 @@

-

◆ setROI() [2/2]

+ +

◆ setROI() [2/2]

@@ -8219,8 +8240,8 @@

-

◆ setSerialPortCommand()

+ +

◆ setSerialPortCommand()

@@ -8262,8 +8283,8 @@

-

◆ setSerialProperties()

+ +

◆ setSerialProperties()

@@ -8327,8 +8348,8 @@

-

◆ setShutterDevice()

+ +

◆ setShutterDevice()

@@ -8357,8 +8378,8 @@

-

◆ setShutterOpen() [1/2]

+ +

◆ setShutterOpen() [1/2]

@@ -8387,8 +8408,8 @@

-

◆ setShutterOpen() [2/2]

+ +

◆ setShutterOpen() [2/2]

@@ -8427,8 +8448,8 @@

-

◆ setSLMDevice()

+ +

◆ setSLMDevice()

@@ -8452,8 +8473,8 @@

-

◆ setSLMExposure()

+ +

◆ setSLMExposure()

@@ -8487,8 +8508,8 @@

-

◆ setSLMImage() [1/2]

+ +

◆ setSLMImage() [1/2]

@@ -8522,8 +8543,8 @@

-

◆ setSLMImage() [2/2]

+ +

◆ setSLMImage() [2/2]

@@ -8557,8 +8578,8 @@

-

◆ setSLMPixelsTo() [1/2]

+ +

◆ setSLMPixelsTo() [1/2]

@@ -8592,8 +8613,8 @@

-

◆ setSLMPixelsTo() [2/2]

+ +

◆ setSLMPixelsTo() [2/2]

@@ -8639,8 +8660,8 @@

-

◆ setStageLinearSequence()

+ +

◆ setStageLinearSequence()

@@ -8687,8 +8708,8 @@

-

◆ setState()

+ +

◆ setState()

@@ -8729,8 +8750,8 @@

-

◆ setStateLabel()

+ +

◆ setStateLabel()

@@ -8771,8 +8792,8 @@

-

◆ setSystemState()

+ +

◆ setSystemState()

@@ -8798,8 +8819,8 @@

-

◆ setXYPosition() [1/2]

+ +

◆ setXYPosition() [1/2]

@@ -8846,8 +8867,8 @@

-

◆ setXYPosition() [2/2]

+ +

◆ setXYPosition() [2/2]

@@ -8887,8 +8908,8 @@

-

◆ setXYStageDevice()

+ +

◆ setXYStageDevice()

@@ -8912,8 +8933,8 @@

-

◆ sleep()

+ +

◆ sleep()

@@ -8936,8 +8957,8 @@

-

◆ snapImage()

+ +

◆ snapImage()

@@ -8962,8 +8983,8 @@

-

◆ startContinuousSequenceAcquisition()

+ +

◆ startContinuousSequenceAcquisition()

@@ -8987,8 +9008,8 @@

-

◆ startExposureSequence()

+ +

◆ startExposureSequence()

@@ -9017,8 +9038,8 @@

-

◆ startPropertySequence()

+ +

◆ startPropertySequence()

@@ -9058,8 +9079,8 @@

-

◆ startSecondaryLogFile()

+ +

◆ startSecondaryLogFile()

@@ -9115,8 +9136,8 @@

-

◆ startSequenceAcquisition() [1/2]

+ +

◆ startSequenceAcquisition() [1/2]

@@ -9162,8 +9183,8 @@

-

◆ startSequenceAcquisition() [2/2]

+ +

◆ startSequenceAcquisition() [2/2]

@@ -9211,8 +9232,8 @@

-

◆ startSLMSequence()

+ +

◆ startSLMSequence()

@@ -9242,8 +9263,8 @@

-

◆ startStageSequence()

+ +

◆ startStageSequence()

@@ -9272,8 +9293,8 @@

-

◆ startXYStageSequence()

+ +

◆ startXYStageSequence()

@@ -9302,8 +9323,8 @@

-

◆ stderrLogEnabled()

+ +

◆ stderrLogEnabled()

@@ -9320,8 +9341,8 @@

-

◆ stop()

+ +

◆ stop()

@@ -9352,8 +9373,8 @@

-

◆ stopExposureSequence()

+ +

◆ stopExposureSequence()

@@ -9382,8 +9403,8 @@

-

◆ stopPropertySequence()

+ +

◆ stopPropertySequence()

@@ -9423,8 +9444,8 @@

-

◆ stopSecondaryLogFile()

+ +

◆ stopSecondaryLogFile()

@@ -9454,8 +9475,8 @@

-

◆ stopSequenceAcquisition() [1/2]

+ +

◆ stopSequenceAcquisition() [1/2]

@@ -9480,8 +9501,8 @@

-

◆ stopSequenceAcquisition() [2/2]

+ +

◆ stopSequenceAcquisition() [2/2]

@@ -9510,8 +9531,8 @@

-

◆ stopSLMSequence()

+ +

◆ stopSLMSequence()

@@ -9541,8 +9562,8 @@

-

◆ stopStageSequence()

+ +

◆ stopStageSequence()

@@ -9571,8 +9592,8 @@

-

◆ stopXYStageSequence()

+ +

◆ stopXYStageSequence()

@@ -9601,8 +9622,8 @@

-

◆ supportsDeviceDetection()

+ +

◆ supportsDeviceDetection()

@@ -9621,8 +9642,8 @@

-

◆ systemBusy()

+ +

◆ systemBusy()

@@ -9647,8 +9668,8 @@

-

◆ unloadAllDevices()

+ +

◆ unloadAllDevices()

- -

◆ unloadDevice()

+ +

◆ unloadDevice()

@@ -9708,8 +9729,8 @@

-

◆ unloadLibrary()

+ +

◆ unloadLibrary()

@@ -9733,8 +9754,8 @@

-

◆ updateCoreProperties()

+ +

◆ updateCoreProperties()

@@ -9757,8 +9778,8 @@

-

◆ updateSystemStateCache()

+ +

◆ updateSystemStateCache()

@@ -9779,8 +9800,8 @@

-

◆ usesDeviceDelay()

+ +

◆ usesDeviceDelay()

@@ -9811,8 +9832,8 @@

-

◆ waitForConfig()

+ +

◆ waitForConfig()

@@ -9854,8 +9875,8 @@

-

◆ waitForDevice()

+ +

◆ waitForDevice()

@@ -9886,8 +9907,8 @@

-

◆ waitForDeviceType()

+ +

◆ waitForDeviceType()

@@ -9918,8 +9939,8 @@

-

◆ waitForSystem()

+ +

◆ waitForSystem()

@@ -9946,8 +9967,8 @@

-

◆ writeToSerialPort()

+ +

◆ writeToSerialPort()

@@ -9983,12 +10004,12 @@

MMCore.h -
  • MMCore.cpp
  • +
  • MMCore.cpp
  • diff --git a/class_c_m_m_error-members.html b/class_c_m_m_error-members.html index bb0251b..f69b112 100644 --- a/class_c_m_m_error-members.html +++ b/class_c_m_m_error-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,44 +26,44 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    CMMError Member List
    +
    CMMError Member List

    This is the complete list of members for CMMError, including all inherited members.

    - + - + - + - + - + - + - +
    CMMError(const std::string &msg, Code code=MMERR_GENERIC)CMMErrorexplicit
    CMMError(const char *msg, Code code=MMERR_GENERIC)CMMErrorexplicit
    CMMError(const char *msg, Code code=MMERR_GENERIC)CMMErrorexplicit
    CMMError(const std::string &msg, Code code, const CMMError &underlyingError)CMMError
    CMMError(const char *msg, Code code, const CMMError &underlyingError)CMMError
    CMMError(const char *msg, Code code, const CMMError &underlyingError)CMMError
    CMMError(const std::string &msg, const CMMError &underlyingError)CMMError
    CMMError(const char *msg, const CMMError &underlyingError)CMMError
    CMMError(const char *msg, const CMMError &underlyingError)CMMError
    CMMError(const CMMError &other)CMMError
    Code typedefCMMError
    Code typedefCMMError
    getCode() constCMMErrorinlinevirtual
    getFullMsg() constCMMErrorvirtual
    getFullMsg() constCMMErrorvirtual
    getMsg() constCMMErrorvirtual
    getSpecificCode() constCMMErrorvirtual
    getSpecificCode() constCMMErrorvirtual
    getUnderlyingError() constCMMErrorvirtual
    what() constCMMErrorinlinevirtual
    what() constCMMErrorinlinevirtual
    ~CMMError() (defined in CMMError)CMMErrorinlinevirtual
    diff --git a/class_c_m_m_error.html b/class_c_m_m_error.html index 9e50630..8ebb570 100644 --- a/class_c_m_m_error.html +++ b/class_c_m_m_error.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CMMError Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    CMMError Class Reference
    +
    CMMError Class Reference
    @@ -59,58 +58,58 @@

    - - +

    +

    Public Types

    -typedef int Code
    +typedef int Code
     Error code type.
     
    - - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - + + + + - + - + - - + + - - + +

    +

    Public Member Functions

     CMMError (const std::string &msg, Code code=MMERR_GENERIC)
     Construct with error message and optionally an error code. More...
     CMMError (const std::string &msg, Code code=MMERR_GENERIC)
     Construct with error message and optionally an error code.
     
     CMMError (const char *msg, Code code=MMERR_GENERIC)
     Construct with error message and optionally an error code. More...
     CMMError (const char *msg, Code code=MMERR_GENERIC)
     Construct with error message and optionally an error code.
     
     CMMError (const std::string &msg, Code code, const CMMError &underlyingError)
     Construct with an error code and underlying (chained/wrapped) error. More...
     CMMError (const std::string &msg, Code code, const CMMError &underlyingError)
     Construct with an error code and underlying (chained/wrapped) error.
     
     CMMError (const char *msg, Code code, const CMMError &underlyingError)
     Construct with an error code and underlying (chained/wrapped) error. More...
     CMMError (const char *msg, Code code, const CMMError &underlyingError)
     Construct with an error code and underlying (chained/wrapped) error.
     
     CMMError (const std::string &msg, const CMMError &underlyingError)
     Construct with an underlying (chained/wrapped) error. More...
     CMMError (const std::string &msg, const CMMError &underlyingError)
     Construct with an underlying (chained/wrapped) error.
     
     CMMError (const char *msg, const CMMError &underlyingError)
     Construct with an underlying (chained/wrapped) error. More...
     CMMError (const char *msg, const CMMError &underlyingError)
     Construct with an underlying (chained/wrapped) error.
     
    CMMError (const CMMError &other)
    CMMError (const CMMError &other)
     Copy constructor (perform a deep copy).
     
    -virtual const char * what () const throw ()
     Implements std::exception interface.
     
    -virtual std::string getMsg () const
    +virtual const char * what () const throw ()
     Implements std::exception interface.
     
    +virtual std::string getMsg () const
     Get the error message for this error.
     
    -virtual std::string getFullMsg () const
    +virtual std::string getFullMsg () const
     Get a message containing the messages from all chained errors.
     
    -virtual Code getCode () const
    +virtual Code getCode () const
     Get the error code for this error.
     
    virtual Code getSpecificCode () const
     Search the chain of underlying errors for the first specific error code. More...
    virtual Code getSpecificCode () const
     Search the chain of underlying errors for the first specific error code.
     
    virtual const CMMErrorgetUnderlyingError () const
     Access the underlying error. More...
    virtual const CMMErrorgetUnderlyingError () const
     Access the underlying error.
     

    Detailed Description

    @@ -121,8 +120,8 @@

    Error codes are optional and are used to distinguish between well known errors by calling code. They are only useful if it is important that the calling code can determine the type of error and take appropriate action.

    Note: Although, strictly speaking, exception class constructors are not supposed to throw, we relax this rule and ignore the possibility of a std::bad_alloc. If memory is low enough that error message strings cannot be copied, we're not going to get very far anyway.

    Constructor & Destructor Documentation

    - -

    ◆ CMMError() [1/6]

    + +

    ◆ CMMError() [1/6]

    @@ -158,12 +157,10 @@

    Referenced by CMMError().

    -

    - -

    ◆ CMMError() [2/6]

    + +

    ◆ CMMError() [2/6]

    @@ -201,8 +198,8 @@

    -

    ◆ CMMError() [3/6]

    + +

    ◆ CMMError() [3/6]

    @@ -239,8 +236,8 @@

    -

    ◆ CMMError() [4/6]

    + +

    ◆ CMMError() [4/6]

    @@ -277,8 +274,8 @@

    -

    ◆ CMMError() [5/6]

    + +

    ◆ CMMError() [5/6]

    @@ -308,8 +305,8 @@

    -

    ◆ CMMError() [6/6]

    + +

    ◆ CMMError() [6/6]

    @@ -341,8 +338,8 @@

    Member Function Documentation

    - -

    ◆ getSpecificCode()

    + +

    ◆ getSpecificCode()

    @@ -373,8 +370,8 @@

    -

    ◆ getUnderlyingError()

    + +

    ◆ getUnderlyingError()

    @@ -406,12 +403,12 @@

    Error.h -
  • Error.cpp
  • +
  • Error.cpp
  • diff --git a/class_c_m_m_error.png b/class_c_m_m_error.png index e20bedb..a04f14e 100644 Binary files a/class_c_m_m_error.png and b/class_c_m_m_error.png differ diff --git a/class_c_plugin_manager-members.html b/class_c_plugin_manager-members.html index 158afbc..5ee2832 100644 --- a/class_c_plugin_manager-members.html +++ b/class_c_plugin_manager-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,37 +26,37 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    CPluginManager Member List
    +
    CPluginManager Member List

    This is the complete list of members for CPluginManager, including all inherited members.

    - + - + - + - +
    CPluginManager() (defined in CPluginManager)CPluginManager
    GetAvailableDeviceAdapters()CPluginManager
    GetAvailableDeviceAdapters()CPluginManager
    GetDeviceAdapter(const std::string &moduleName)CPluginManager
    GetDeviceAdapter(const char *moduleName) (defined in CPluginManager)CPluginManager
    GetDeviceAdapter(const char *moduleName) (defined in CPluginManager)CPluginManager
    GetSearchPaths() const (defined in CPluginManager)CPluginManagerinline
    SetSearchPaths(TStringIter begin, TStringIter end) (defined in CPluginManager)CPluginManagerinline
    SetSearchPaths(TStringIter begin, TStringIter end) (defined in CPluginManager)CPluginManagerinline
    UnloadPluginLibrary(const char *moduleName)CPluginManager
    ~CPluginManager() (defined in CPluginManager)CPluginManager
    ~CPluginManager() (defined in CPluginManager)CPluginManager
    diff --git a/class_c_plugin_manager.html b/class_c_plugin_manager.html index 87db8f6..398715a 100644 --- a/class_c_plugin_manager.html +++ b/class_c_plugin_manager.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CPluginManager Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,48 +26,48 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    CPluginManager Class Reference
    +
    CPluginManager Class Reference
    - - + - - - - + + - + -

    +

    Public Member Functions

    void UnloadPluginLibrary (const char *moduleName)
    void UnloadPluginLibrary (const char *moduleName)
     
    +
    template<typename TStringIter >
    void SetSearchPaths (TStringIter begin, TStringIter end)
     
    +
    std::vector< std::string > GetSearchPaths () const
     
    std::vector< std::string > GetAvailableDeviceAdapters ()
     
    std::vector< std::string > GetAvailableDeviceAdapters ()
     
    std::shared_ptr< LoadedDeviceAdapter > GetDeviceAdapter (const std::string &moduleName)
    std::shared_ptr< LoadedDeviceAdapter > GetDeviceAdapter (const std::string &moduleName)
     
    +
    std::shared_ptr< LoadedDeviceAdapter > GetDeviceAdapter (const char *moduleName)
     

    Member Function Documentation

    - -

    ◆ GetAvailableDeviceAdapters()

    + +

    ◆ GetAvailableDeviceAdapters()

    @@ -85,8 +84,8 @@

    -

    ◆ GetDeviceAdapter()

    + +

    ◆ GetDeviceAdapter()

    @@ -114,8 +113,8 @@

    -

    ◆ UnloadPluginLibrary()

    + +

    ◆ UnloadPluginLibrary()

    @@ -135,12 +134,12 @@

    PluginManager.h -
  • PluginManager.cpp
  • +
  • PluginManager.cpp
  • diff --git a/class_circular_buffer-members.html b/class_circular_buffer-members.html index bfe3a5c..aed3001 100644 --- a/class_circular_buffer-members.html +++ b/class_circular_buffer-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,53 +26,53 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    CircularBuffer Member List
    +
    CircularBuffer Member List

    This is the complete list of members for CircularBuffer, including all inherited members.

    - + - + - + - + - + - + - + - + - + - + - + - +
    CircularBuffer(unsigned int memorySizeMB) (defined in CircularBuffer)CircularBuffer
    Clear() (defined in CircularBuffer)CircularBuffer
    Clear() (defined in CircularBuffer)CircularBuffer
    Depth() const (defined in CircularBuffer)CircularBufferinline
    g_bufferLock (defined in CircularBuffer)CircularBuffermutable
    g_bufferLock (defined in CircularBuffer)CircularBuffermutable
    g_insertLock (defined in CircularBuffer)CircularBuffermutable
    GetFreeSize() const (defined in CircularBuffer)CircularBuffer
    GetFreeSize() const (defined in CircularBuffer)CircularBuffer
    GetMemorySizeMB() const (defined in CircularBuffer)CircularBufferinline
    GetNextImage() (defined in CircularBuffer)CircularBuffer
    GetNextImage() (defined in CircularBuffer)CircularBuffer
    GetNextImageBuffer(unsigned channel) (defined in CircularBuffer)CircularBuffer
    GetNthFromTopImageBuffer(unsigned long n) const (defined in CircularBuffer)CircularBuffer
    GetNthFromTopImageBuffer(unsigned long n) const (defined in CircularBuffer)CircularBuffer
    GetNthFromTopImageBuffer(long n, unsigned channel) const (defined in CircularBuffer)CircularBuffer
    GetRemainingImageCount() const (defined in CircularBuffer)CircularBuffer
    GetRemainingImageCount() const (defined in CircularBuffer)CircularBuffer
    GetSize() const (defined in CircularBuffer)CircularBuffer
    GetTopImage() const (defined in CircularBuffer)CircularBuffer
    GetTopImage() const (defined in CircularBuffer)CircularBuffer
    GetTopImageBuffer(unsigned channel) const (defined in CircularBuffer)CircularBuffer
    Height() const (defined in CircularBuffer)CircularBufferinline
    Height() const (defined in CircularBuffer)CircularBufferinline
    Initialize(unsigned channels, unsigned int xSize, unsigned int ySize, unsigned int pixDepth) (defined in CircularBuffer)CircularBuffer
    InsertImage(const unsigned char *pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd)CircularBuffer
    InsertImage(const unsigned char *pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd)CircularBuffer
    InsertImage(const unsigned char *pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, unsigned int nComponents, const Metadata *pMd)CircularBuffer
    InsertMultiChannel(const unsigned char *pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd)CircularBuffer
    InsertMultiChannel(const unsigned char *pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd)CircularBuffer
    InsertMultiChannel(const unsigned char *pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, unsigned int nComponents, const Metadata *pMd)CircularBuffer
    Overflow() (defined in CircularBuffer)CircularBufferinline
    Overflow() (defined in CircularBuffer)CircularBufferinline
    Width() const (defined in CircularBuffer)CircularBufferinline
    ~CircularBuffer() (defined in CircularBuffer)CircularBuffer
    ~CircularBuffer() (defined in CircularBuffer)CircularBuffer
    diff --git a/class_circular_buffer.html b/class_circular_buffer.html index ee8f172..281bec2 100644 --- a/class_circular_buffer.html +++ b/class_circular_buffer.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CircularBuffer Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    CircularBuffer Class Reference
    +
    CircularBuffer Class Reference
    - - - - - - - - - - - + - + - + - + - - - - - - - -

    +

    Public Member Functions

    +
     CircularBuffer (unsigned int memorySizeMB)
     
    +
    unsigned GetMemorySizeMB () const
     
    +
    bool Initialize (unsigned channels, unsigned int xSize, unsigned int ySize, unsigned int pixDepth)
     
    +
    unsigned long GetSize () const
     
    +
    unsigned long GetFreeSize () const
     
    +
    unsigned long GetRemainingImageCount () const
     
    +
    unsigned int Width () const
     
    +
    unsigned int Height () const
     
    +
    unsigned int Depth () const
     
    bool InsertImage (const unsigned char *pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd) throw (CMMError)
    bool InsertImage (const unsigned char *pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd) throw (CMMError)
     
    bool InsertMultiChannel (const unsigned char *pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd) throw (CMMError)
    bool InsertMultiChannel (const unsigned char *pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, const Metadata *pMd) throw (CMMError)
     
    bool InsertImage (const unsigned char *pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, unsigned int nComponents, const Metadata *pMd) throw (CMMError)
    bool InsertImage (const unsigned char *pixArray, unsigned int width, unsigned int height, unsigned int byteDepth, unsigned int nComponents, const Metadata *pMd) throw (CMMError)
     
    bool InsertMultiChannel (const unsigned char *pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, unsigned int nComponents, const Metadata *pMd) throw (CMMError)
    bool InsertMultiChannel (const unsigned char *pixArray, unsigned int numChannels, unsigned int width, unsigned int height, unsigned int byteDepth, unsigned int nComponents, const Metadata *pMd) throw (CMMError)
     
    +
    const unsigned char * GetTopImage () const
     
    +
    const unsigned char * GetNextImage ()
     
    +
    const mm::ImgBufferGetTopImageBuffer (unsigned channel) const
     
    +
    const mm::ImgBufferGetNthFromTopImageBuffer (unsigned long n) const
     
    +
    const mm::ImgBufferGetNthFromTopImageBuffer (long n, unsigned channel) const
     
    +
    const mm::ImgBufferGetNextImageBuffer (unsigned channel)
     
    +
    void Clear ()
     
    +
    bool Overflow ()
     
    - - -

    +

    Public Attributes

    +
    MMThreadLock g_bufferLock
     
    +
    MMThreadLock g_insertLock
     

    Member Function Documentation

    - -

    ◆ InsertImage() [1/2]

    + +

    ◆ InsertImage() [1/2]

    @@ -173,8 +172,8 @@

    -

    ◆ InsertImage() [2/2]

    + +

    ◆ InsertImage() [2/2]

    @@ -232,8 +231,8 @@

    -

    ◆ InsertMultiChannel() [1/2]

    + +

    ◆ InsertMultiChannel() [1/2]

    @@ -291,8 +290,8 @@

    -

    ◆ InsertMultiChannel() [2/2]

    + +

    ◆ InsertMultiChannel() [2/2]

    @@ -358,12 +357,12 @@

    CircularBuffer.h -
  • CircularBuffer.cpp
  • +
  • CircularBuffer.cpp
  • diff --git a/class_config_group-members.html b/class_config_group-members.html index 2178d99..bafe0ac 100644 --- a/class_config_group-members.html +++ b/class_config_group-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,40 +26,36 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    ConfigGroup Member List
    +
    ConfigGroup Member List

    This is the complete list of members for ConfigGroup, including all inherited members.

    - - - + - - - - - - + + + +
    ConfigGroupBase() (defined in ConfigGroupBase< Configuration >)ConfigGroupBase< Configuration >inlineprotected
    configs_ (defined in ConfigGroupBase< Configuration >)ConfigGroupBase< Configuration >protected
    Define(const char *configName)ConfigGroupBase< Configuration >inline
    Define(const char *configName, const char *deviceLabel, const char *propName, const char *value)ConfigGroupBase< Configuration >inline
    Define(const char *configName, const char *deviceLabel, const char *propName, const char *value)ConfigGroupBase< Configuration >inline
    Delete(const char *configName)ConfigGroupBase< Configuration >inline
    Delete(const char *configName, const char *deviceLabel, const char *propName)ConfigGroupBase< Configuration >inline
    Find(const char *configName)ConfigGroupBase< Configuration >inline
    GetAvailable() constConfigGroupBase< Configuration >inline
    IsEmpty() (defined in ConfigGroupBase< Configuration >)ConfigGroupBase< Configuration >inline
    Rename(const char *oldConfigName, const char *newConfigName)ConfigGroupBase< Configuration >inline
    ~ConfigGroupBase() (defined in ConfigGroupBase< Configuration >)ConfigGroupBase< Configuration >inlineprotectedvirtual
    Delete(const char *configName, const char *deviceLabel, const char *propName)ConfigGroupBase< Configuration >inline
    Find(const char *configName)ConfigGroupBase< Configuration >inline
    GetAvailable() constConfigGroupBase< Configuration >inline
    Rename(const char *oldConfigName, const char *newConfigName)ConfigGroupBase< Configuration >inline
    diff --git a/class_config_group.html b/class_config_group.html index 1e37cdd..8b7264b 100644 --- a/class_config_group.html +++ b/class_config_group.html @@ -1,9 +1,9 @@ - + - - + + MMCore: ConfigGroup Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,22 +26,22 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    ConfigGroup Class Reference
    +
    ConfigGroup Class Reference
    @@ -57,28 +56,28 @@
    - - + - + - - - + + + - + - + - - - + + -

    +

    Additional Inherited Members

    - Public Member Functions inherited from ConfigGroupBase< Configuration >
    void Define (const char *configName)
    void Define (const char *configName)
     
    void Define (const char *configName, const char *deviceLabel, const char *propName, const char *value)
    void Define (const char *configName, const char *deviceLabel, const char *propName, const char *value)
     
    ConfigurationFind (const char *configName)
     
    bool Rename (const char *oldConfigName, const char *newConfigName)
    ConfigurationFind (const char *configName)
     
    bool Rename (const char *oldConfigName, const char *newConfigName)
     
    bool Delete (const char *configName)
    bool Delete (const char *configName)
     
    bool Delete (const char *configName, const char *deviceLabel, const char *propName)
    bool Delete (const char *configName, const char *deviceLabel, const char *propName)
     
    std::vector< std::string > GetAvailable () const
     
    +
    std::vector< std::string > GetAvailable () const
     
    bool IsEmpty ()
     
    - Protected Attributes inherited from ConfigGroupBase< Configuration >
    +
    std::map< std::string, Configurationconfigs_
     
    @@ -90,7 +89,7 @@

    diff --git a/class_config_group.png b/class_config_group.png index dab6c15..232e09b 100644 Binary files a/class_config_group.png and b/class_config_group.png differ diff --git a/class_config_group_base-members.html b/class_config_group_base-members.html index 0ca21ac..2e0a2a3 100644 --- a/class_config_group_base-members.html +++ b/class_config_group_base-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,40 +26,40 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    ConfigGroupBase< T > Member List
    +
    ConfigGroupBase< T > Member List

    This is the complete list of members for ConfigGroupBase< T >, including all inherited members.

    - + - + - - - + + + - +
    ConfigGroupBase() (defined in ConfigGroupBase< T >)ConfigGroupBase< T >inlineprotected
    configs_ (defined in ConfigGroupBase< T >)ConfigGroupBase< T >protected
    configs_ (defined in ConfigGroupBase< T >)ConfigGroupBase< T >protected
    Define(const char *configName)ConfigGroupBase< T >inline
    Define(const char *configName, const char *deviceLabel, const char *propName, const char *value)ConfigGroupBase< T >inline
    Define(const char *configName, const char *deviceLabel, const char *propName, const char *value)ConfigGroupBase< T >inline
    Delete(const char *configName)ConfigGroupBase< T >inline
    Delete(const char *configName, const char *deviceLabel, const char *propName)ConfigGroupBase< T >inline
    Find(const char *configName)ConfigGroupBase< T >inline
    GetAvailable() constConfigGroupBase< T >inline
    Delete(const char *configName, const char *deviceLabel, const char *propName)ConfigGroupBase< T >inline
    Find(const char *configName)ConfigGroupBase< T >inline
    GetAvailable() constConfigGroupBase< T >inline
    IsEmpty() (defined in ConfigGroupBase< T >)ConfigGroupBase< T >inline
    Rename(const char *oldConfigName, const char *newConfigName)ConfigGroupBase< T >inline
    Rename(const char *oldConfigName, const char *newConfigName)ConfigGroupBase< T >inline
    ~ConfigGroupBase() (defined in ConfigGroupBase< T >)ConfigGroupBase< T >inlineprotectedvirtual
    diff --git a/class_config_group_base.html b/class_config_group_base.html index 7cb7d7e..2def4e6 100644 --- a/class_config_group_base.html +++ b/class_config_group_base.html @@ -1,9 +1,9 @@ - + - - + + MMCore: ConfigGroupBase< T > Class Template Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    ConfigGroupBase< T > Class Template Reference
    +
    ConfigGroupBase< T > Class Template Reference

    #include <ConfigGroup.h>

    - - + - + - - - + + + - + - + - - - + +

    +

    Public Member Functions

    void Define (const char *configName)
    void Define (const char *configName)
     
    void Define (const char *configName, const char *deviceLabel, const char *propName, const char *value)
    void Define (const char *configName, const char *deviceLabel, const char *propName, const char *value)
     
    T * Find (const char *configName)
     
    bool Rename (const char *oldConfigName, const char *newConfigName)
    T * Find (const char *configName)
     
    bool Rename (const char *oldConfigName, const char *newConfigName)
     
    bool Delete (const char *configName)
    bool Delete (const char *configName)
     
    bool Delete (const char *configName, const char *deviceLabel, const char *propName)
    bool Delete (const char *configName, const char *deviceLabel, const char *propName)
     
    std::vector< std::string > GetAvailable () const
     
    +
    std::vector< std::string > GetAvailable () const
     
    bool IsEmpty ()
     
    - -

    +

    Protected Attributes

    +
    std::map< std::string, T > configs_
     

    Detailed Description

    -

    template<class T>
    -class ConfigGroupBase< T >

    - -

    Encapsulates a collection (map) of user-defined presets.

    +
    template<class T>
    +class ConfigGroupBase< T >

    Encapsulates a collection (map) of user-defined presets.

    Member Function Documentation

    - -

    ◆ Define() [1/2]

    + +

    ◆ Define() [1/2]

    @@ -111,8 +108,8 @@

    -

    ◆ Define() [2/2]

    + +

    ◆ Define() [2/2]

    @@ -162,8 +159,8 @@

    -

    ◆ Delete() [1/2]

    + +

    ◆ Delete() [1/2]

    @@ -193,8 +190,8 @@

    -

    ◆ Delete() [2/2]

    + +

    ◆ Delete() [2/2]

    @@ -238,8 +235,8 @@

    -

    ◆ Find()

    + +

    ◆ Find()

    @@ -250,7 +247,7 @@

    - + @@ -269,8 +266,8 @@

    -

    ◆ GetAvailable()

    + +

    ◆ GetAvailable()

    @@ -281,7 +278,7 @@

    T* ConfigGroupBase< T >::Find T * ConfigGroupBase< T >::Find ( const char *  configName)
    - + @@ -299,8 +296,8 @@

    -

    ◆ Rename()

    + +

    ◆ Rename()

    @@ -344,7 +341,7 @@

    diff --git a/class_config_group_collection-members.html b/class_config_group_collection-members.html index e375503..efdeba2 100644 --- a/class_config_group_collection-members.html +++ b/class_config_group_collection-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@

    std::vector<std::string> ConfigGroupBase< T >::GetAvailable std::vector< std::string > ConfigGroupBase< T >::GetAvailable ( ) const
    - - + @@ -27,44 +26,44 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1

    - + +/* @license-end */ +
    -
    -
    ConfigGroupCollection Member List
    +
    ConfigGroupCollection Member List

    This is the complete list of members for ConfigGroupCollection, including all inherited members.

    - + - + - + - - - - - + + + + + - +
    Clear() (defined in ConfigGroupCollection)ConfigGroupCollectioninline
    ConfigGroupCollection() (defined in ConfigGroupCollection)ConfigGroupCollectioninline
    ConfigGroupCollection() (defined in ConfigGroupCollection)ConfigGroupCollectioninline
    Define(const char *groupName, const char *configName)ConfigGroupCollectioninline
    Define(const char *groupName, const char *configName, const char *deviceLabel, const char *propName, const char *value)ConfigGroupCollectioninline
    Define(const char *groupName, const char *configName, const char *deviceLabel, const char *propName, const char *value)ConfigGroupCollectioninline
    Define(const char *groupName)ConfigGroupCollectioninline
    Delete(const char *groupName, const char *configName, const char *deviceLabel, const char *propName)ConfigGroupCollectioninline
    Delete(const char *groupName, const char *configName, const char *deviceLabel, const char *propName)ConfigGroupCollectioninline
    Delete(const char *groupName, const char *configName)ConfigGroupCollectioninline
    Delete(const char *groupName)ConfigGroupCollectioninline
    Find(const char *groupName, const char *configName)ConfigGroupCollectioninline
    GetAvailableConfigs(const char *groupName) constConfigGroupCollectioninline
    GetAvailableGroups() constConfigGroupCollectioninline
    isDefined(const char *groupName)ConfigGroupCollectioninline
    Delete(const char *groupName)ConfigGroupCollectioninline
    Find(const char *groupName, const char *configName)ConfigGroupCollectioninline
    GetAvailableConfigs(const char *groupName) constConfigGroupCollectioninline
    GetAvailableGroups() constConfigGroupCollectioninline
    isDefined(const char *groupName)ConfigGroupCollectioninline
    RenameConfig(const char *groupName, const char *oldConfigName, const char *newConfigName)ConfigGroupCollectioninline
    RenameGroup(const char *oldGroupName, const char *newGroupName)ConfigGroupCollectioninline
    RenameGroup(const char *oldGroupName, const char *newGroupName)ConfigGroupCollectioninline
    ~ConfigGroupCollection() (defined in ConfigGroupCollection)ConfigGroupCollectioninline
    diff --git a/class_config_group_collection.html b/class_config_group_collection.html index ca70462..efe32af 100644 --- a/class_config_group_collection.html +++ b/class_config_group_collection.html @@ -1,9 +1,9 @@ - + - - + + MMCore: ConfigGroupCollection Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,63 +26,63 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    ConfigGroupCollection Class Reference
    +
    ConfigGroupCollection Class Reference

    #include <ConfigGroup.h>

    - - + - + - + - - - + + + - + - + - + - + - + - - - - - + + + +

    +

    Public Member Functions

    void Define (const char *groupName, const char *configName)
    void Define (const char *groupName, const char *configName)
     
    void Define (const char *groupName, const char *configName, const char *deviceLabel, const char *propName, const char *value)
    void Define (const char *groupName, const char *configName, const char *deviceLabel, const char *propName, const char *value)
     
    bool Define (const char *groupName)
    bool Define (const char *groupName)
     
    ConfigurationFind (const char *groupName, const char *configName)
     
    bool isDefined (const char *groupName)
    ConfigurationFind (const char *groupName, const char *configName)
     
    bool isDefined (const char *groupName)
     
    bool RenameConfig (const char *groupName, const char *oldConfigName, const char *newConfigName)
    bool RenameConfig (const char *groupName, const char *oldConfigName, const char *newConfigName)
     
    bool Delete (const char *groupName, const char *configName, const char *deviceLabel, const char *propName)
    bool Delete (const char *groupName, const char *configName, const char *deviceLabel, const char *propName)
     
    bool Delete (const char *groupName, const char *configName)
    bool Delete (const char *groupName, const char *configName)
     
    bool Delete (const char *groupName)
    bool Delete (const char *groupName)
     
    bool RenameGroup (const char *oldGroupName, const char *newGroupName)
    bool RenameGroup (const char *oldGroupName, const char *newGroupName)
     
    std::vector< std::string > GetAvailableGroups () const
     
    std::vector< std::string > GetAvailableConfigs (const char *groupName) const
     
    +
    std::vector< std::string > GetAvailableGroups () const
     
    std::vector< std::string > GetAvailableConfigs (const char *groupName) const
     
    void Clear ()
     

    Detailed Description

    Encapsulates a collection of preset groups.

    Member Function Documentation

    - -

    ◆ Define() [1/3]

    + +

    ◆ Define() [1/3]

    @@ -109,8 +108,8 @@

    -

    ◆ Define() [2/3]

    + +

    ◆ Define() [2/3]

    @@ -146,8 +145,8 @@

    -

    ◆ Define() [3/3]

    + +

    ◆ Define() [3/3]

    @@ -201,8 +200,8 @@

    -

    ◆ Delete() [1/3]

    + +

    ◆ Delete() [1/3]

    @@ -228,8 +227,8 @@

    -

    ◆ Delete() [2/3]

    + +

    ◆ Delete() [2/3]

    @@ -265,8 +264,8 @@

    -

    ◆ Delete() [3/3]

    + +

    ◆ Delete() [3/3]

    @@ -314,8 +313,8 @@

    -

    ◆ Find()

    + +

    ◆ Find()

    @@ -324,7 +323,7 @@

    - + @@ -353,8 +352,8 @@

    -

    ◆ GetAvailableConfigs()

    + +

    ◆ GetAvailableConfigs()

    @@ -363,7 +362,7 @@

    Configuration* ConfigGroupCollection::Find Configuration * ConfigGroupCollection::Find ( const char *  groupName,
    - + @@ -382,8 +381,8 @@

    -

    ◆ GetAvailableGroups()

    + +

    ◆ GetAvailableGroups()

    @@ -392,7 +391,7 @@

    std::vector<std::string> ConfigGroupCollection::GetAvailableConfigs std::vector< std::string > ConfigGroupCollection::GetAvailableConfigs ( const char *  groupName)
    - + @@ -410,8 +409,8 @@

    -

    ◆ isDefined()

    + +

    ◆ isDefined()

    @@ -439,8 +438,8 @@

    -

    ◆ RenameConfig()

    + +

    ◆ RenameConfig()

    @@ -482,8 +481,8 @@

    -

    ◆ RenameGroup()

    + +

    ◆ RenameGroup()

    @@ -525,7 +524,7 @@

    diff --git a/class_configuration-members.html b/class_configuration-members.html index ea6000b..853ef2e 100644 --- a/class_configuration-members.html +++ b/class_configuration-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@

    std::vector<std::string> ConfigGroupCollection::GetAvailableGroups std::vector< std::string > ConfigGroupCollection::GetAvailableGroups ( ) const
    - - + @@ -27,40 +26,40 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1

    - + +/* @license-end */ +
    -
    -
    Configuration Member List
    +
    Configuration Member List

    This is the complete list of members for Configuration, including all inherited members.

    - + - + - + - + - +
    addSetting(const PropertySetting &setting)Configuration
    Configuration() (defined in Configuration)Configurationinline
    Configuration() (defined in Configuration)Configurationinline
    deleteSetting(const char *device, const char *prop)Configuration
    getSetting(size_t index) constConfiguration
    getSetting(size_t index) constConfiguration
    getSetting(const char *device, const char *prop)Configuration
    getVerbose() constConfiguration
    getVerbose() constConfiguration
    isConfigurationIncluded(const Configuration &cfg)Configuration
    isPropertyIncluded(const char *device, const char *property)Configuration
    isPropertyIncluded(const char *device, const char *property)Configuration
    isSettingIncluded(const PropertySetting &ps)Configuration
    size() constConfigurationinline
    size() constConfigurationinline
    ~Configuration() (defined in Configuration)Configurationinline
    diff --git a/class_configuration.html b/class_configuration.html index d538f6d..cd4ee64 100644 --- a/class_configuration.html +++ b/class_configuration.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Configuration Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,23 +26,23 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    Configuration Class Reference
    +
    Configuration Class Reference
    @@ -58,32 +57,32 @@
    - - + - + - + - + - + - + - + - + - +

    +

    Public Member Functions

    void addSetting (const PropertySetting &setting)
    void addSetting (const PropertySetting &setting)
     
    void deleteSetting (const char *device, const char *prop)
    void deleteSetting (const char *device, const char *prop)
     
    bool isPropertyIncluded (const char *device, const char *property)
    bool isPropertyIncluded (const char *device, const char *property)
     
    bool isSettingIncluded (const PropertySetting &ps)
    bool isSettingIncluded (const PropertySetting &ps)
     
    bool isConfigurationIncluded (const Configuration &cfg)
    bool isConfigurationIncluded (const Configuration &cfg)
     
    PropertySetting getSetting (size_t index) const throw (CMMError)
    PropertySetting getSetting (size_t index) const throw (CMMError)
     
    PropertySetting getSetting (const char *device, const char *prop)
    PropertySetting getSetting (const char *device, const char *prop)
     
    size_t size () const
    size_t size () const
     
    std::string getVerbose () const
    std::string getVerbose () const
     

    Detailed Description

    Encapsulation of the configuration information. Designed to be wrapped by SWIG. A collection of configuration settings.

    Member Function Documentation

    - -

    ◆ addSetting()

    + +

    ◆ addSetting()

    @@ -103,8 +102,8 @@

    -

    ◆ deleteSetting()

    + +

    ◆ deleteSetting()

    @@ -132,8 +131,8 @@

    -

    ◆ getSetting() [1/2]

    + +

    ◆ getSetting() [1/2]

    @@ -161,8 +160,8 @@

    -

    ◆ getSetting() [2/2]

    + +

    ◆ getSetting() [2/2]

    @@ -188,8 +187,8 @@

    -

    ◆ getVerbose()

    + +

    ◆ getVerbose()

    @@ -206,8 +205,8 @@

    -

    ◆ isConfigurationIncluded()

    + +

    ◆ isConfigurationIncluded()

    @@ -229,8 +228,8 @@

    -

    ◆ isPropertyIncluded()

    + +

    ◆ isPropertyIncluded()

    @@ -260,8 +259,8 @@

    -

    ◆ isSettingIncluded()

    + +

    ◆ isSettingIncluded()

    @@ -283,8 +282,8 @@

    -

    ◆ size()

    + +

    ◆ size()

    @@ -313,12 +312,12 @@

    Configuration.h -
  • Configuration.cpp
  • +
  • Configuration.cpp
  • diff --git a/class_configuration.png b/class_configuration.png index b828f15..066b6ab 100644 Binary files a/class_configuration.png and b/class_configuration.png differ diff --git a/class_core_callback-members.html b/class_core_callback-members.html index b746636..4a6e510 100644 --- a/class_core_callback-members.html +++ b/class_core_callback-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,84 +26,84 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    CoreCallback Member List
    +
    CoreCallback Member List

    This is the complete list of members for CoreCallback, including all inherited members.

    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
    AcqFinished(const MM::Device *caller, int statusCode) (defined in CoreCallback)CoreCallback
    ClearImageBuffer(const MM::Device *caller) (defined in CoreCallback)CoreCallback
    ClearImageBuffer(const MM::Device *caller) (defined in CoreCallback)CoreCallback
    ClearPostedErrors() (defined in CoreCallback)CoreCallback
    CoreCallback(CMMCore *c) (defined in CoreCallback)CoreCallback
    CoreCallback(CMMCore *c) (defined in CoreCallback)CoreCallback
    GetAutoFocus(const MM::Device *caller) (defined in CoreCallback)CoreCallback
    GetChannelConfig(char *channelConfigName, const unsigned int channelConfigIterator) (defined in CoreCallback)CoreCallback
    GetChannelConfig(char *channelConfigName, const unsigned int channelConfigIterator) (defined in CoreCallback)CoreCallback
    GetClockTicksUs(const MM::Device *caller)CoreCallback
    GetCurrentConfig(const char *group, int bufLen, char *name) (defined in CoreCallback)CoreCallback
    GetCurrentConfig(const char *group, int bufLen, char *name) (defined in CoreCallback)CoreCallback
    GetCurrentMMTime() (defined in CoreCallback)CoreCallback
    GetDevice(const MM::Device *caller, const char *label)CoreCallback
    GetDevice(const MM::Device *caller, const char *label)CoreCallback
    GetDeviceProperty(const char *deviceName, const char *propName, char *value) (defined in CoreCallback)CoreCallback
    GetExposure(double &expMs) (defined in CoreCallback)CoreCallback
    GetExposure(double &expMs) (defined in CoreCallback)CoreCallback
    GetFocusPosition(double &pos) (defined in CoreCallback)CoreCallback
    GetImage() (defined in CoreCallback)CoreCallback
    GetImage() (defined in CoreCallback)CoreCallback
    GetImageDimensions(int &width, int &height, int &depth) (defined in CoreCallback)CoreCallback
    GetImageProcessor(const MM::Device *caller) (defined in CoreCallback)CoreCallback
    GetImageProcessor(const MM::Device *caller) (defined in CoreCallback)CoreCallback
    GetLoadedDeviceOfType(const MM::Device *caller, MM::DeviceType devType, char *deviceName, const unsigned int deviceIterator) (defined in CoreCallback)CoreCallback
    GetParentHub(const MM::Device *caller) const (defined in CoreCallback)CoreCallback
    GetParentHub(const MM::Device *caller) const (defined in CoreCallback)CoreCallback
    GetSerialAnswer(const MM::Device *, const char *portName, unsigned long ansLength, char *answerTxt, const char *term)CoreCallback
    GetSerialPortType(const char *portName) const (defined in CoreCallback)CoreCallback
    GetSerialPortType(const char *portName) const (defined in CoreCallback)CoreCallback
    GetSignalIODevice(const MM::Device *caller, const char *label) (defined in CoreCallback)CoreCallback
    GetStateDevice(const MM::Device *caller, const char *label) (defined in CoreCallback)CoreCallback
    GetStateDevice(const MM::Device *caller, const char *label) (defined in CoreCallback)CoreCallback
    GetXYPosition(double &x, double &y) (defined in CoreCallback)CoreCallback
    InitializeImageBuffer(unsigned channels, unsigned slices, unsigned int w, unsigned int h, unsigned int pixDepth) (defined in CoreCallback)CoreCallback
    InitializeImageBuffer(unsigned channels, unsigned slices, unsigned int w, unsigned int h, unsigned int pixDepth) (defined in CoreCallback)CoreCallback
    InsertImage(const MM::Device *caller, const ImgBuffer &imgBuf) (defined in CoreCallback)CoreCallback
    InsertImage(const MM::Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, const char *serializedMetadata, const bool doProcess=true) (defined in CoreCallback)CoreCallback
    InsertImage(const MM::Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, const char *serializedMetadata, const bool doProcess=true) (defined in CoreCallback)CoreCallback
    InsertImage(const MM::Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, unsigned nComponents, const char *serializedMetadata, const bool doProcess=true) (defined in CoreCallback)CoreCallback
    InsertImage(const MM::Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, const Metadata *pMd=0, const bool doProcess=true) (defined in CoreCallback)CoreCallback
    InsertImage(const MM::Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, const Metadata *pMd=0, const bool doProcess=true) (defined in CoreCallback)CoreCallback
    InsertImage(const MM::Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, unsigned nComponents, const Metadata *pMd=0, const bool doProcess=true) (defined in CoreCallback)CoreCallback
    InsertMultiChannel(const MM::Device *caller, const unsigned char *buf, unsigned numChannels, unsigned width, unsigned height, unsigned byteDepth, Metadata *pMd=0) (defined in CoreCallback)CoreCallback
    InsertMultiChannel(const MM::Device *caller, const unsigned char *buf, unsigned numChannels, unsigned width, unsigned height, unsigned byteDepth, Metadata *pMd=0) (defined in CoreCallback)CoreCallback
    LogMessage(const MM::Device *caller, const char *msg, bool debugOnly) constCoreCallback
    MoveFocus(double v) (defined in CoreCallback)CoreCallback
    MoveFocus(double v) (defined in CoreCallback)CoreCallback
    MoveXYStage(double vX, double vY) (defined in CoreCallback)CoreCallback
    NextPostedError(int &errorCode, char *pMessage, int maxlen, int &messageLength) (defined in CoreCallback)CoreCallback
    NextPostedError(int &errorCode, char *pMessage, int maxlen, int &messageLength) (defined in CoreCallback)CoreCallback
    OnExposureChanged(const MM::Device *device, double newExposure)CoreCallback
    OnMagnifierChanged(const MM::Device *device)CoreCallback
    OnMagnifierChanged(const MM::Device *device)CoreCallback
    OnPropertiesChanged(const MM::Device *caller)CoreCallback
    OnPropertyChanged(const MM::Device *device, const char *propName, const char *value)CoreCallback
    OnPropertyChanged(const MM::Device *device, const char *propName, const char *value)CoreCallback
    OnSLMExposureChanged(const MM::Device *device, double newExposure)CoreCallback
    OnStagePositionChanged(const MM::Device *device, double pos)CoreCallback
    OnStagePositionChanged(const MM::Device *device, double pos)CoreCallback
    OnXYStagePositionChanged(const MM::Device *device, double xpos, double ypos)CoreCallback
    PostError(const int errorCode, const char *pMessage) (defined in CoreCallback)CoreCallback
    PostError(const int errorCode, const char *pMessage) (defined in CoreCallback)CoreCallback
    PrepareForAcq(const MM::Device *caller) (defined in CoreCallback)CoreCallback
    PurgeSerial(const MM::Device *caller, const char *portName)CoreCallback
    PurgeSerial(const MM::Device *caller, const char *portName)CoreCallback
    ReadFromSerial(const MM::Device *caller, const char *portName, unsigned char *buf, unsigned long bufLength, unsigned long &bytesRead)CoreCallback
    SetConfig(const char *group, const char *name) (defined in CoreCallback)CoreCallback
    SetConfig(const char *group, const char *name) (defined in CoreCallback)CoreCallback
    SetDeviceProperty(const char *deviceName, const char *propName, const char *value) (defined in CoreCallback)CoreCallback
    SetExposure(double expMs) (defined in CoreCallback)CoreCallback
    SetExposure(double expMs) (defined in CoreCallback)CoreCallback
    SetFocusPosition(double pos) (defined in CoreCallback)CoreCallback
    SetSerialCommand(const MM::Device *, const char *portName, const char *command, const char *term)CoreCallback
    SetSerialCommand(const MM::Device *, const char *portName, const char *command, const char *term)CoreCallback
    SetSerialProperties(const char *portName, const char *answerTimeout, const char *baudRate, const char *delayBetweenCharsMs, const char *handshaking, const char *parity, const char *stopBits) (defined in CoreCallback)CoreCallback
    SetXYPosition(double x, double y) (defined in CoreCallback)CoreCallback
    SetXYPosition(double x, double y) (defined in CoreCallback)CoreCallback
    Sleep(const MM::Device *caller, double intervalMs) (defined in CoreCallback)CoreCallback
    WriteToSerial(const MM::Device *caller, const char *portName, const unsigned char *buf, unsigned long length)CoreCallback
    WriteToSerial(const MM::Device *caller, const char *portName, const unsigned char *buf, unsigned long length)CoreCallback
    ~CoreCallback() (defined in CoreCallback)CoreCallback
    diff --git a/class_core_callback.html b/class_core_callback.html index f925399..4aca9b1 100644 --- a/class_core_callback.html +++ b/class_core_callback.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CoreCallback Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,23 +26,23 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    CoreCallback Class Reference
    +
    CoreCallback Class Reference
    @@ -53,159 +52,159 @@
    - - - - - + - + - - - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - - - - - - - - -

    +

    Public Member Functions

    +
     CoreCallback (CMMCore *c)
     
    +
    int GetDeviceProperty (const char *deviceName, const char *propName, char *value)
     
    +
    int SetDeviceProperty (const char *deviceName, const char *propName, const char *value)
     
    int LogMessage (const MM::Device *caller, const char *msg, bool debugOnly) const
    int LogMessage (const MM::Device *caller, const char *msg, bool debugOnly) const
     
    MM::Device * GetDevice (const MM::Device *caller, const char *label)
    MM::Device * GetDevice (const MM::Device *caller, const char *label)
     
    +
    MM::PortType GetSerialPortType (const char *portName) const
     
    +
    int SetSerialProperties (const char *portName, const char *answerTimeout, const char *baudRate, const char *delayBetweenCharsMs, const char *handshaking, const char *parity, const char *stopBits)
     
    int WriteToSerial (const MM::Device *caller, const char *portName, const unsigned char *buf, unsigned long length)
    int WriteToSerial (const MM::Device *caller, const char *portName, const unsigned char *buf, unsigned long length)
     
    int ReadFromSerial (const MM::Device *caller, const char *portName, unsigned char *buf, unsigned long bufLength, unsigned long &bytesRead)
    int ReadFromSerial (const MM::Device *caller, const char *portName, unsigned char *buf, unsigned long bufLength, unsigned long &bytesRead)
     
    int PurgeSerial (const MM::Device *caller, const char *portName)
    int PurgeSerial (const MM::Device *caller, const char *portName)
     
    int SetSerialCommand (const MM::Device *, const char *portName, const char *command, const char *term)
    int SetSerialCommand (const MM::Device *, const char *portName, const char *command, const char *term)
     
    int GetSerialAnswer (const MM::Device *, const char *portName, unsigned long ansLength, char *answerTxt, const char *term)
    int GetSerialAnswer (const MM::Device *, const char *portName, unsigned long ansLength, char *answerTxt, const char *term)
     
    unsigned long GetClockTicksUs (const MM::Device *caller)
    unsigned long GetClockTicksUs (const MM::Device *caller)
     
    +
    MM::MMTime GetCurrentMMTime ()
     
    +
    void Sleep (const MM::Device *caller, double intervalMs)
     
    +
    int InsertImage (const MM::Device *caller, const ImgBuffer &imgBuf)
     
    +
    int InsertImage (const MM::Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, const char *serializedMetadata, const bool doProcess=true)
     
    +
    int InsertImage (const MM::Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, unsigned nComponents, const char *serializedMetadata, const bool doProcess=true)
     
    +
    int InsertImage (const MM::Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, const Metadata *pMd=0, const bool doProcess=true)
     
    +
    int InsertImage (const MM::Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, unsigned nComponents, const Metadata *pMd=0, const bool doProcess=true)
     
    +
    int InsertMultiChannel (const MM::Device *caller, const unsigned char *buf, unsigned numChannels, unsigned width, unsigned height, unsigned byteDepth, Metadata *pMd=0)
     
    +
    void ClearImageBuffer (const MM::Device *caller)
     
    +
    bool InitializeImageBuffer (unsigned channels, unsigned slices, unsigned int w, unsigned int h, unsigned int pixDepth)
     
    +
    int AcqFinished (const MM::Device *caller, int statusCode)
     
    +
    int PrepareForAcq (const MM::Device *caller)
     
    +
    const char * GetImage ()
     
    +
    int GetImageDimensions (int &width, int &height, int &depth)
     
    +
    int GetFocusPosition (double &pos)
     
    +
    int SetFocusPosition (double pos)
     
    +
    int MoveFocus (double v)
     
    +
    int SetXYPosition (double x, double y)
     
    +
    int GetXYPosition (double &x, double &y)
     
    +
    int MoveXYStage (double vX, double vY)
     
    +
    int SetExposure (double expMs)
     
    +
    int GetExposure (double &expMs)
     
    +
    int SetConfig (const char *group, const char *name)
     
    +
    int GetCurrentConfig (const char *group, int bufLen, char *name)
     
    +
    int GetChannelConfig (char *channelConfigName, const unsigned int channelConfigIterator)
     
    int OnPropertiesChanged (const MM::Device *caller)
    int OnPropertiesChanged (const MM::Device *caller)
     
    int OnPropertyChanged (const MM::Device *device, const char *propName, const char *value)
    int OnPropertyChanged (const MM::Device *device, const char *propName, const char *value)
     
    int OnStagePositionChanged (const MM::Device *device, double pos)
    int OnStagePositionChanged (const MM::Device *device, double pos)
     
    int OnXYStagePositionChanged (const MM::Device *device, double xpos, double ypos)
    int OnXYStagePositionChanged (const MM::Device *device, double xpos, double ypos)
     
    int OnExposureChanged (const MM::Device *device, double newExposure)
    int OnExposureChanged (const MM::Device *device, double newExposure)
     
    int OnSLMExposureChanged (const MM::Device *device, double newExposure)
    int OnSLMExposureChanged (const MM::Device *device, double newExposure)
     
    int OnMagnifierChanged (const MM::Device *device)
    int OnMagnifierChanged (const MM::Device *device)
     
    +
    void NextPostedError (int &errorCode, char *pMessage, int maxlen, int &messageLength)
     
    +
    void PostError (const int errorCode, const char *pMessage)
     
    +
    void ClearPostedErrors ()
     
    +
    MM::ImageProcessor * GetImageProcessor (const MM::Device *caller)
     
    +
    MM::State * GetStateDevice (const MM::Device *caller, const char *label)
     
    +
    MM::SignalIO * GetSignalIODevice (const MM::Device *caller, const char *label)
     
    +
    MM::AutoFocus * GetAutoFocus (const MM::Device *caller)
     
    +
    MM::Hub * GetParentHub (const MM::Device *caller) const
     
    +
    void GetLoadedDeviceOfType (const MM::Device *caller, MM::DeviceType devType, char *deviceName, const unsigned int deviceIterator)
     

    Member Function Documentation

    - -

    ◆ GetClockTicksUs()

    + +

    ◆ GetClockTicksUs()

    @@ -224,8 +223,8 @@

    -

    ◆ GetDevice()

    + +

    ◆ GetDevice()

    @@ -253,8 +252,8 @@

    -

    ◆ GetSerialAnswer()

    + +

    ◆ GetSerialAnswer()

    @@ -302,8 +301,8 @@

    -

    ◆ LogMessage()

    + +

    ◆ LogMessage()

    @@ -337,8 +336,8 @@

    -

    ◆ OnExposureChanged()

    + +

    ◆ OnExposureChanged()

    @@ -366,8 +365,8 @@

    -

    ◆ OnMagnifierChanged()

    + +

    ◆ OnMagnifierChanged()

    @@ -387,8 +386,8 @@

    -

    ◆ OnPropertiesChanged()

    + +

    ◆ OnPropertiesChanged()

    @@ -406,8 +405,8 @@

    -

    ◆ OnPropertyChanged()

    + +

    ◆ OnPropertyChanged()

    @@ -443,8 +442,8 @@

    -

    ◆ OnSLMExposureChanged()

    + +

    ◆ OnSLMExposureChanged()

    @@ -472,8 +471,8 @@

    -

    ◆ OnStagePositionChanged()

    + +

    ◆ OnStagePositionChanged()

    @@ -501,8 +500,8 @@

    -

    ◆ OnXYStagePositionChanged()

    + +

    ◆ OnXYStagePositionChanged()

    @@ -536,8 +535,8 @@

    -

    ◆ PurgeSerial()

    + +

    ◆ PurgeSerial()

    @@ -567,8 +566,8 @@

    -

    ◆ ReadFromSerial()

    + +

    ◆ ReadFromSerial()

    @@ -616,8 +615,8 @@

    -

    ◆ SetSerialCommand()

    + +

    ◆ SetSerialCommand()

    @@ -659,8 +658,8 @@

    -

    ◆ WriteToSerial()

    + +

    ◆ WriteToSerial()

    @@ -704,12 +703,12 @@

    CoreCallback.h -
  • CoreCallback.cpp
  • +
  • CoreCallback.cpp
  • diff --git a/class_core_callback.png b/class_core_callback.png index 7c1d0be..f9016fe 100644 Binary files a/class_core_callback.png and b/class_core_callback.png differ diff --git a/class_core_property-members.html b/class_core_property-members.html index 245ee08..0cfae72 100644 --- a/class_core_property-members.html +++ b/class_core_property-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,43 +26,43 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    CoreProperty Member List
    +
    CoreProperty Member List

    This is the complete list of members for CoreProperty, including all inherited members.

    - + - + - + - + - + - + - +
    AddAllowedValue(const char *value) (defined in CoreProperty)CoreProperty
    AddAllowedValue(const char *value, long data) (defined in CoreProperty)CoreProperty
    AddAllowedValue(const char *value, long data) (defined in CoreProperty)CoreProperty
    ClearAllowedValues() (defined in CoreProperty)CorePropertyinline
    CoreProperty() (defined in CoreProperty)CorePropertyinline
    CoreProperty() (defined in CoreProperty)CorePropertyinline
    CoreProperty(const char *v, bool ro) (defined in CoreProperty)CorePropertyinline
    Get() const (defined in CoreProperty)CoreProperty
    Get() const (defined in CoreProperty)CoreProperty
    GetAllowedValues() const (defined in CoreProperty)CoreProperty
    IsAllowed(const char *value) const (defined in CoreProperty)CoreProperty
    IsAllowed(const char *value) const (defined in CoreProperty)CoreProperty
    IsReadOnly() const (defined in CoreProperty)CorePropertyinline
    readOnly_ (defined in CoreProperty)CorePropertyprotected
    readOnly_ (defined in CoreProperty)CorePropertyprotected
    Set(const char *value) (defined in CoreProperty)CoreProperty
    value_ (defined in CoreProperty)CorePropertyprotected
    value_ (defined in CoreProperty)CorePropertyprotected
    values_ (defined in CoreProperty)CorePropertyprotected
    ~CoreProperty() (defined in CoreProperty)CorePropertyinline
    ~CoreProperty() (defined in CoreProperty)CorePropertyinline
    diff --git a/class_core_property.html b/class_core_property.html index 8179460..7508849 100644 --- a/class_core_property.html +++ b/class_core_property.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CoreProperty Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    CoreProperty Class Reference
    +
    CoreProperty Class Reference
    - - - - - - - - - -

    +

    Public Member Functions

    +
     CoreProperty (const char *v, bool ro)
     
    +
    bool IsReadOnly () const
     
    +
    bool Set (const char *value)
     
    +
    std::string Get () const
     
    +
    std::vector< std::string > GetAllowedValues () const
     
    +
    void AddAllowedValue (const char *value)
     
    +
    void AddAllowedValue (const char *value, long data)
     
    +
    bool IsAllowed (const char *value) const
     
    +
    void ClearAllowedValues ()
     
    - - - -

    +

    Protected Attributes

    +
    std::string value_
     
    +
    bool readOnly_
     
    +
    std::set< std::string > values_
     

    The documentation for this class was generated from the following files:
    diff --git a/class_core_property_collection-members.html b/class_core_property_collection-members.html index d497c48..8abc05e 100644 --- a/class_core_property_collection-members.html +++ b/class_core_property_collection-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,43 +26,43 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    CorePropertyCollection Member List
    +
    CorePropertyCollection Member List

    This is the complete list of members for CorePropertyCollection, including all inherited members.

    - + - + - + - + - + - + - +
    Add(const char *name, CoreProperty &p) (defined in CorePropertyCollection)CorePropertyCollectioninline
    AddAllowedValue(const char *propName, const char *value) (defined in CorePropertyCollection)CorePropertyCollection
    AddAllowedValue(const char *propName, const char *value) (defined in CorePropertyCollection)CorePropertyCollection
    Clear() (defined in CorePropertyCollection)CorePropertyCollectioninline
    ClearAllowedValues(const char *propName) (defined in CorePropertyCollection)CorePropertyCollection
    ClearAllowedValues(const char *propName) (defined in CorePropertyCollection)CorePropertyCollection
    CorePropertyCollection(CMMCore *core) (defined in CorePropertyCollection)CorePropertyCollectioninline
    Execute(const char *PropName, const char *Value) (defined in CorePropertyCollection)CorePropertyCollection
    Execute(const char *PropName, const char *Value) (defined in CorePropertyCollection)CorePropertyCollection
    Get(const char *PropName) const (defined in CorePropertyCollection)CorePropertyCollection
    GetAllowedValues(const char *propName) const (defined in CorePropertyCollection)CorePropertyCollection
    GetAllowedValues(const char *propName) const (defined in CorePropertyCollection)CorePropertyCollection
    GetNames() const (defined in CorePropertyCollection)CorePropertyCollection
    Has(const char *name) const (defined in CorePropertyCollection)CorePropertyCollection
    Has(const char *name) const (defined in CorePropertyCollection)CorePropertyCollection
    IsReadOnly(const char *propName) const (defined in CorePropertyCollection)CorePropertyCollection
    Refresh() (defined in CorePropertyCollection)CorePropertyCollection
    Refresh() (defined in CorePropertyCollection)CorePropertyCollection
    Set(const char *PropName, const char *Value) (defined in CorePropertyCollection)CorePropertyCollection
    ~CorePropertyCollection() (defined in CorePropertyCollection)CorePropertyCollectioninline
    ~CorePropertyCollection() (defined in CorePropertyCollection)CorePropertyCollectioninline
    diff --git a/class_core_property_collection.html b/class_core_property_collection.html index cbd255a..d4abca4 100644 --- a/class_core_property_collection.html +++ b/class_core_property_collection.html @@ -1,9 +1,9 @@ - + - - + + MMCore: CorePropertyCollection Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,76 +26,76 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    CorePropertyCollection Class Reference
    +
    CorePropertyCollection Class Reference
    - - - - - - - - - - - - - -

    +

    Public Member Functions

    +
     CorePropertyCollection (CMMCore *core)
     
    +
    std::string Get (const char *PropName) const
     
    +
    bool Has (const char *name) const
     
    +
    std::vector< std::string > GetAllowedValues (const char *propName) const
     
    +
    void ClearAllowedValues (const char *propName)
     
    +
    void AddAllowedValue (const char *propName, const char *value)
     
    +
    bool IsReadOnly (const char *propName) const
     
    +
    std::vector< std::string > GetNames () const
     
    +
    void Add (const char *name, CoreProperty &p)
     
    +
    void Refresh ()
     
    +
    void Execute (const char *PropName, const char *Value)
     
    +
    void Set (const char *PropName, const char *Value)
     
    +
    void Clear ()
     

    The documentation for this class was generated from the following files:
    diff --git a/class_m_m_event_callback-members.html b/class_m_m_event_callback-members.html index 678a452..7495377 100644 --- a/class_m_m_event_callback-members.html +++ b/class_m_m_event_callback-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,42 +26,42 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    MMEventCallback Member List
    +
    MMEventCallback Member List

    This is the complete list of members for MMEventCallback, including all inherited members.

    - + - + - + - + - + - +
    MMEventCallback() (defined in MMEventCallback)MMEventCallbackinline
    onChannelGroupChanged(const char *newChannelGroupName) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onChannelGroupChanged(const char *newChannelGroupName) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onConfigGroupChanged(const char *groupName, const char *newConfigName) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onExposureChanged(char *name, double newExposure) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onExposureChanged(char *name, double newExposure) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onPixelSizeAffineChanged(double v0, double v1, double v2, double v3, double v4, double v5) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onPixelSizeChanged(double newPixelSizeUm) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onPixelSizeChanged(double newPixelSizeUm) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onPropertiesChanged() (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onPropertyChanged(const char *name, const char *propName, const char *propValue) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onPropertyChanged(const char *name, const char *propName, const char *propValue) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onSLMExposureChanged(char *name, double newExposure) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onStagePositionChanged(char *name, double pos) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onStagePositionChanged(char *name, double pos) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onSystemConfigurationLoaded() (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onXYStagePositionChanged(char *name, double xpos, double ypos) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    onXYStagePositionChanged(char *name, double xpos, double ypos) (defined in MMEventCallback)MMEventCallbackinlinevirtual
    ~MMEventCallback() (defined in MMEventCallback)MMEventCallbackinlinevirtual
    diff --git a/class_m_m_event_callback.html b/class_m_m_event_callback.html index 097ce0b..e624d98 100644 --- a/class_m_m_event_callback.html +++ b/class_m_m_event_callback.html @@ -1,9 +1,9 @@ - + - - + + MMCore: MMEventCallback Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,59 +26,59 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    MMEventCallback Class Reference
    +
    MMEventCallback Class Reference
    - - - - - - - - - - - -

    +

    Public Member Functions

    +
    virtual void onPropertiesChanged ()
     
    +
    virtual void onPropertyChanged (const char *name, const char *propName, const char *propValue)
     
    +
    virtual void onChannelGroupChanged (const char *newChannelGroupName)
     
    +
    virtual void onConfigGroupChanged (const char *groupName, const char *newConfigName)
     
    +
    virtual void onSystemConfigurationLoaded ()
     
    +
    virtual void onPixelSizeChanged (double newPixelSizeUm)
     
    +
    virtual void onPixelSizeAffineChanged (double v0, double v1, double v2, double v3, double v4, double v5)
     
    +
    virtual void onStagePositionChanged (char *name, double pos)
     
    +
    virtual void onXYStagePositionChanged (char *name, double xpos, double ypos)
     
    +
    virtual void onExposureChanged (char *name, double newExposure)
     
    +
    virtual void onSLMExposureChanged (char *name, double newExposure)
     
    @@ -89,7 +88,7 @@
    diff --git a/class_pixel_size_config_group-members.html b/class_pixel_size_config_group-members.html index c099db6..2400750 100644 --- a/class_pixel_size_config_group-members.html +++ b/class_pixel_size_config_group-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,41 +26,37 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    PixelSizeConfigGroup Member List
    +
    PixelSizeConfigGroup Member List

    This is the complete list of members for PixelSizeConfigGroup, including all inherited members.

    - - - + - + - - - - - + + +
    ConfigGroupBase() (defined in ConfigGroupBase< PixelSizeConfiguration >)ConfigGroupBase< PixelSizeConfiguration >inlineprotected
    configs_ (defined in ConfigGroupBase< PixelSizeConfiguration >)ConfigGroupBase< PixelSizeConfiguration >protected
    Define(const char *configName)ConfigGroupBase< PixelSizeConfiguration >inline
    Define(const char *configName, const char *deviceLabel, const char *propName, const char *value)ConfigGroupBase< PixelSizeConfiguration >inline
    Define(const char *configName, const char *deviceLabel, const char *propName, const char *value)ConfigGroupBase< PixelSizeConfiguration >inline
    DefinePixelSize(const char *resolutionID, const char *deviceLabel, const char *propName, const char *value, double pixSizeUm)PixelSizeConfigGroupinline
    Delete(const char *configName)ConfigGroupBase< PixelSizeConfiguration >inline
    Delete(const char *configName)ConfigGroupBase< PixelSizeConfiguration >inline
    Delete(const char *configName, const char *deviceLabel, const char *propName)ConfigGroupBase< PixelSizeConfiguration >inline
    Find(const char *configName)ConfigGroupBase< PixelSizeConfiguration >inline
    GetAvailable() constConfigGroupBase< PixelSizeConfiguration >inline
    IsEmpty() (defined in ConfigGroupBase< PixelSizeConfiguration >)ConfigGroupBase< PixelSizeConfiguration >inline
    Rename(const char *oldConfigName, const char *newConfigName)ConfigGroupBase< PixelSizeConfiguration >inline
    ~ConfigGroupBase() (defined in ConfigGroupBase< PixelSizeConfiguration >)ConfigGroupBase< PixelSizeConfiguration >inlineprotectedvirtual
    Find(const char *configName)ConfigGroupBase< PixelSizeConfiguration >inline
    GetAvailable() constConfigGroupBase< PixelSizeConfiguration >inline
    Rename(const char *oldConfigName, const char *newConfigName)ConfigGroupBase< PixelSizeConfiguration >inline
    diff --git a/class_pixel_size_config_group.html b/class_pixel_size_config_group.html index ae16b16..a73ffb8 100644 --- a/class_pixel_size_config_group.html +++ b/class_pixel_size_config_group.html @@ -1,9 +1,9 @@ - + - - + + MMCore: PixelSizeConfigGroup Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,23 +26,23 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    PixelSizeConfigGroup Class Reference
    +
    PixelSizeConfigGroup Class Reference
    @@ -58,41 +57,41 @@

    - - + - + - + - - - + + + - + - + - - - + +

    +

    Public Member Functions

    bool DefinePixelSize (const char *resolutionID, const char *deviceLabel, const char *propName, const char *value, double pixSizeUm)
    bool DefinePixelSize (const char *resolutionID, const char *deviceLabel, const char *propName, const char *value, double pixSizeUm)
     
    - Public Member Functions inherited from ConfigGroupBase< PixelSizeConfiguration >
    void Define (const char *configName)
    void Define (const char *configName)
     
    void Define (const char *configName, const char *deviceLabel, const char *propName, const char *value)
    void Define (const char *configName, const char *deviceLabel, const char *propName, const char *value)
     
    PixelSizeConfigurationFind (const char *configName)
     
    bool Rename (const char *oldConfigName, const char *newConfigName)
    PixelSizeConfigurationFind (const char *configName)
     
    bool Rename (const char *oldConfigName, const char *newConfigName)
     
    bool Delete (const char *configName)
    bool Delete (const char *configName)
     
    bool Delete (const char *configName, const char *deviceLabel, const char *propName)
    bool Delete (const char *configName, const char *deviceLabel, const char *propName)
     
    std::vector< std::string > GetAvailable () const
     
    +
    std::vector< std::string > GetAvailable () const
     
    bool IsEmpty ()
     
    - -

    +

    Additional Inherited Members

    - Protected Attributes inherited from ConfigGroupBase< PixelSizeConfiguration >
    +
    std::map< std::string, PixelSizeConfigurationconfigs_
     

    Detailed Description

    Encapsulates a collection (map) of user-defined pixel size presets.

    Member Function Documentation

    - -

    ◆ DefinePixelSize()

    + +

    ◆ DefinePixelSize()

    @@ -152,7 +151,7 @@

    diff --git a/class_pixel_size_config_group.png b/class_pixel_size_config_group.png index d14f0d3..038e2c6 100644 Binary files a/class_pixel_size_config_group.png and b/class_pixel_size_config_group.png differ diff --git a/class_pixel_size_configuration-members.html b/class_pixel_size_configuration-members.html index 188e4b3..ab627ee 100644 --- a/class_pixel_size_configuration-members.html +++ b/class_pixel_size_configuration-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,46 +26,46 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    PixelSizeConfiguration Member List
    +
    PixelSizeConfiguration Member List

    This is the complete list of members for PixelSizeConfiguration, including all inherited members.

    - + - + - + - + - + - + - + - +
    addSetting(const PropertySetting &setting)Configuration
    Configuration() (defined in Configuration)Configurationinline
    Configuration() (defined in Configuration)Configurationinline
    deleteSetting(const char *device, const char *prop)Configuration
    getPixelConfigAffineMatrix() (defined in PixelSizeConfiguration)PixelSizeConfigurationinline
    getPixelConfigAffineMatrix() (defined in PixelSizeConfiguration)PixelSizeConfigurationinline
    getPixelSizeUm() const (defined in PixelSizeConfiguration)PixelSizeConfigurationinline
    getSetting(size_t index) constConfiguration
    getSetting(size_t index) constConfiguration
    getSetting(const char *device, const char *prop)Configuration
    getVerbose() constConfiguration
    getVerbose() constConfiguration
    isConfigurationIncluded(const Configuration &cfg)Configuration
    isPropertyIncluded(const char *device, const char *property)Configuration
    isPropertyIncluded(const char *device, const char *property)Configuration
    isSettingIncluded(const PropertySetting &ps)Configuration
    PixelSizeConfiguration() (defined in PixelSizeConfiguration)PixelSizeConfigurationinline
    PixelSizeConfiguration() (defined in PixelSizeConfiguration)PixelSizeConfigurationinline
    setPixelConfigAffineMatrix(std::vector< double > &affineMatrix) (defined in PixelSizeConfiguration)PixelSizeConfigurationinline
    setPixelSizeUm(double pixSize) (defined in PixelSizeConfiguration)PixelSizeConfigurationinline
    setPixelSizeUm(double pixSize) (defined in PixelSizeConfiguration)PixelSizeConfigurationinline
    size() constConfigurationinline
    ~Configuration() (defined in Configuration)Configurationinline
    ~Configuration() (defined in Configuration)Configurationinline
    ~PixelSizeConfiguration() (defined in PixelSizeConfiguration)PixelSizeConfigurationinline
    diff --git a/class_pixel_size_configuration.html b/class_pixel_size_configuration.html index aadb73c..6cfe320 100644 --- a/class_pixel_size_configuration.html +++ b/class_pixel_size_configuration.html @@ -1,9 +1,9 @@ - + - - + + MMCore: PixelSizeConfiguration Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,23 +26,23 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    PixelSizeConfiguration Class Reference
    +
    PixelSizeConfiguration Class Reference
    @@ -58,38 +57,38 @@
    - - - - + - - + - + - + - + - + - + - + - + - + - +

    +

    Public Member Functions

    +
    void setPixelSizeUm (double pixSize)
     
    +
    double getPixelSizeUm () const
     
    -void setPixelConfigAffineMatrix (std::vector< double > &affineMatrix) throw (CMMError)
    +void setPixelConfigAffineMatrix (std::vector< double > &affineMatrix) throw (CMMError)
     
    +
    std::vector< double > getPixelConfigAffineMatrix ()
     
     
    - Public Member Functions inherited from Configuration
    void addSetting (const PropertySetting &setting)
    void addSetting (const PropertySetting &setting)
     
    void deleteSetting (const char *device, const char *prop)
    void deleteSetting (const char *device, const char *prop)
     
    bool isPropertyIncluded (const char *device, const char *property)
    bool isPropertyIncluded (const char *device, const char *property)
     
    bool isSettingIncluded (const PropertySetting &ps)
    bool isSettingIncluded (const PropertySetting &ps)
     
    bool isConfigurationIncluded (const Configuration &cfg)
    bool isConfigurationIncluded (const Configuration &cfg)
     
    PropertySetting getSetting (size_t index) const throw (CMMError)
    PropertySetting getSetting (size_t index) const throw (CMMError)
     
    PropertySetting getSetting (const char *device, const char *prop)
    PropertySetting getSetting (const char *device, const char *prop)
     
    size_t size () const
    size_t size () const
     
    std::string getVerbose () const
    std::string getVerbose () const
     

    Detailed Description

    @@ -100,7 +99,7 @@

    diff --git a/class_pixel_size_configuration.png b/class_pixel_size_configuration.png index 122191d..a8667d2 100644 Binary files a/class_pixel_size_configuration.png and b/class_pixel_size_configuration.png differ diff --git a/class_semaphore-members.html b/class_semaphore-members.html index 53bdb72..eeb4499 100644 --- a/class_semaphore-members.html +++ b/class_semaphore-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,33 +26,33 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    Semaphore Member List
    +
    Semaphore Member List

    This is the complete list of members for Semaphore, including all inherited members.

    - + - +
    Release(size_t count=1) (defined in Semaphore)Semaphore
    Semaphore() (defined in Semaphore)Semaphoreexplicit
    Semaphore() (defined in Semaphore)Semaphoreexplicit
    Semaphore(size_t initCount) (defined in Semaphore)Semaphoreexplicit
    Wait(size_t count=1) (defined in Semaphore)Semaphore
    Wait(size_t count=1) (defined in Semaphore)Semaphore
    diff --git a/class_semaphore.html b/class_semaphore.html index c8739d7..e223d43 100644 --- a/class_semaphore.html +++ b/class_semaphore.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Semaphore Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,46 +26,46 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    Semaphore Class Referencefinal
    +
    Semaphore Class Referencefinal
    - - - -

    +

    Public Member Functions

    +
     Semaphore (size_t initCount)
     
    +
    void Wait (size_t count=1)
     
    +
    void Release (size_t count=1)
     

    The documentation for this class was generated from the following files:
    diff --git a/class_task-members.html b/class_task-members.html index 42dacf1..83fba20 100644 --- a/class_task-members.html +++ b/class_task-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,38 +26,38 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    Task Member List
    +
    Task Member List

    This is the complete list of members for Task, including all inherited members.

    - + - + - + - +
    Done() (defined in Task)Task
    Execute()=0 (defined in Task)Taskpure virtual
    Execute()=0 (defined in Task)Taskpure virtual
    operator=(const Task &)=delete (defined in Task)Task
    Task(std::shared_ptr< Semaphore > semaphore, size_t taskIndex, size_t totalTaskCount) (defined in Task)Taskexplicit
    Task(std::shared_ptr< Semaphore > semaphore, size_t taskIndex, size_t totalTaskCount) (defined in Task)Taskexplicit
    Task(const Task &)=delete (defined in Task)Task
    taskIndex_ (defined in Task)Taskprotected
    taskIndex_ (defined in Task)Taskprotected
    totalTaskCount_ (defined in Task)Taskprotected
    usedTaskCount_ (defined in Task)Taskprotected
    usedTaskCount_ (defined in Task)Taskprotected
    ~Task() (defined in Task)Taskvirtual
    diff --git a/class_task.html b/class_task.html index 12d82b7..9dfd09a 100644 --- a/class_task.html +++ b/class_task.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Task Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    Task Class Referenceabstract
    +
    Task Class Referenceabstract
    - - - - - - + -

    +

    Public Member Functions

    +
     Task (std::shared_ptr< Semaphore > semaphore, size_t taskIndex, size_t totalTaskCount)
     
    +
     Task (const Task &)=delete
     
    +
    Taskoperator= (const Task &)=delete
     
    +
     
    virtual void Execute ()=0
     
    +
    void Done ()
     
    - - - -

    +

    Protected Attributes

    +
    const size_t taskIndex_
     
    +
    const size_t totalTaskCount_
     
    +
    size_t usedTaskCount_
     

    The documentation for this class was generated from the following files:
    diff --git a/class_task_set-members.html b/class_task_set-members.html index 43416dc..8ac7f7d 100644 --- a/class_task_set-members.html +++ b/class_task_set-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,41 +26,41 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    TaskSet Member List
    +
    TaskSet Member List

    This is the complete list of members for TaskSet, including all inherited members.

    - + - + - + - + - + - +
    CreateTasks() (defined in TaskSet)TaskSetinlineprotected
    Execute() (defined in TaskSet)TaskSetvirtual
    Execute() (defined in TaskSet)TaskSetvirtual
    GetUsedTaskCount() const (defined in TaskSet)TaskSet
    operator=(const TaskSet &)=delete (defined in TaskSet)TaskSet
    operator=(const TaskSet &)=delete (defined in TaskSet)TaskSet
    pool_ (defined in TaskSet)TaskSetprotected
    semaphore_ (defined in TaskSet)TaskSetprotected
    semaphore_ (defined in TaskSet)TaskSetprotected
    tasks_ (defined in TaskSet)TaskSetprotected
    TaskSet(std::shared_ptr< ThreadPool > pool) (defined in TaskSet)TaskSetexplicit
    TaskSet(std::shared_ptr< ThreadPool > pool) (defined in TaskSet)TaskSetexplicit
    TaskSet(const TaskSet &)=delete (defined in TaskSet)TaskSet
    usedTaskCount_ (defined in TaskSet)TaskSetprotected
    usedTaskCount_ (defined in TaskSet)TaskSetprotected
    Wait() (defined in TaskSet)TaskSetvirtual
    ~TaskSet() (defined in TaskSet)TaskSetvirtual
    ~TaskSet() (defined in TaskSet)TaskSetvirtual
    diff --git a/class_task_set.html b/class_task_set.html index f7c7450..4a4f264 100644 --- a/class_task_set.html +++ b/class_task_set.html @@ -1,9 +1,9 @@ - + - - + + MMCore: TaskSet Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    TaskSet Class Reference
    +
    TaskSet Class Reference

    @@ -58,57 +57,57 @@
    - - - - - - + - -

    +

    Public Member Functions

    +
     TaskSet (std::shared_ptr< ThreadPool > pool)
     
    +
     TaskSet (const TaskSet &)=delete
     
    +
    TaskSetoperator= (const TaskSet &)=delete
     
    +
     
    size_t GetUsedTaskCount () const
     
    +
    virtual void Execute ()
     
    +
    virtual void Wait ()
     
    - - +

    +

    Protected Member Functions

    -template<class T , typename std::enable_if< std::is_base_of< Task, T >::value, int >::type = 0>
    +template<class T , typename std::enable_if< std::is_base_of< Task, T >::value, int >::type = 0>
    void CreateTasks ()
     
    - - - - -

    +

    Protected Attributes

    +
    const std::shared_ptr< ThreadPoolpool_
     
    +
    const std::shared_ptr< Semaphoresemaphore_
     
    +
    std::vector< Task * > tasks_ {}
     
    +
    size_t usedTaskCount_ { 0 }
     

    The documentation for this class was generated from the following files:
    diff --git a/class_task_set.png b/class_task_set.png index 9562b4b..d52d2be 100644 Binary files a/class_task_set.png and b/class_task_set.png differ diff --git a/class_task_set___copy_memory-members.html b/class_task_set___copy_memory-members.html index 7720108..9c30be1 100644 --- a/class_task_set___copy_memory-members.html +++ b/class_task_set___copy_memory-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,44 +26,44 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    TaskSet_CopyMemory Member List
    +
    TaskSet_CopyMemory Member List

    This is the complete list of members for TaskSet_CopyMemory, including all inherited members.

    - + - + - + - + - + - + - +
    CreateTasks() (defined in TaskSet)TaskSetinlineprotected
    Execute() override (defined in TaskSet_CopyMemory)TaskSet_CopyMemoryvirtual
    Execute() override (defined in TaskSet_CopyMemory)TaskSet_CopyMemoryvirtual
    GetUsedTaskCount() const (defined in TaskSet)TaskSet
    MemCopy(void *dst, const void *src, size_t bytes) (defined in TaskSet_CopyMemory)TaskSet_CopyMemory
    MemCopy(void *dst, const void *src, size_t bytes) (defined in TaskSet_CopyMemory)TaskSet_CopyMemory
    operator=(const TaskSet &)=delete (defined in TaskSet)TaskSet
    pool_ (defined in TaskSet)TaskSetprotected
    pool_ (defined in TaskSet)TaskSetprotected
    semaphore_ (defined in TaskSet)TaskSetprotected
    SetUp(void *dst, const void *src, size_t bytes) (defined in TaskSet_CopyMemory)TaskSet_CopyMemory
    SetUp(void *dst, const void *src, size_t bytes) (defined in TaskSet_CopyMemory)TaskSet_CopyMemory
    tasks_ (defined in TaskSet)TaskSetprotected
    TaskSet(std::shared_ptr< ThreadPool > pool) (defined in TaskSet)TaskSetexplicit
    TaskSet(std::shared_ptr< ThreadPool > pool) (defined in TaskSet)TaskSetexplicit
    TaskSet(const TaskSet &)=delete (defined in TaskSet)TaskSet
    TaskSet_CopyMemory(std::shared_ptr< ThreadPool > pool) (defined in TaskSet_CopyMemory)TaskSet_CopyMemoryexplicit
    TaskSet_CopyMemory(std::shared_ptr< ThreadPool > pool) (defined in TaskSet_CopyMemory)TaskSet_CopyMemoryexplicit
    usedTaskCount_ (defined in TaskSet)TaskSetprotected
    Wait() override (defined in TaskSet_CopyMemory)TaskSet_CopyMemoryvirtual
    Wait() override (defined in TaskSet_CopyMemory)TaskSet_CopyMemoryvirtual
    ~TaskSet() (defined in TaskSet)TaskSetvirtual
    diff --git a/class_task_set___copy_memory.html b/class_task_set___copy_memory.html index 7ede5a8..ceaffd6 100644 --- a/class_task_set___copy_memory.html +++ b/class_task_set___copy_memory.html @@ -1,9 +1,9 @@ - + - - + + MMCore: TaskSet_CopyMemory Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    TaskSet_CopyMemory Class Reference
    +
    TaskSet_CopyMemory Class Reference

    @@ -57,66 +56,119 @@
    - - - - + - + - - - - - - +

    +

    Public Member Functions

    +
     TaskSet_CopyMemory (std::shared_ptr< ThreadPool > pool)
     
    +
    void SetUp (void *dst, const void *src, size_t bytes)
     
    -virtual void Execute () override
    virtual void Execute () override
     
    -virtual void Wait () override
    virtual void Wait () override
     
    +
    void MemCopy (void *dst, const void *src, size_t bytes)
     
    - Public Member Functions inherited from TaskSet
    +
     TaskSet (std::shared_ptr< ThreadPool > pool)
     
    +
     TaskSet (const TaskSet &)=delete
     
    +
    TaskSetoperator= (const TaskSet &)=delete
     
    +
     
    size_t GetUsedTaskCount () const
     
    - - + - - - -

    +

    Additional Inherited Members

    - Protected Member Functions inherited from TaskSet
    -template<class T , typename std::enable_if< std::is_base_of< Task, T >::value, int >::type = 0>
    +template<class T , typename std::enable_if< std::is_base_of< Task, T >::value, int >::type = 0>
    void CreateTasks ()
     
    - Protected Attributes inherited from TaskSet
    +
    const std::shared_ptr< ThreadPoolpool_
     
    +
    const std::shared_ptr< Semaphoresemaphore_
     
    +
    std::vector< Task * > tasks_ {}
     
    +
    size_t usedTaskCount_ { 0 }
     
    +

    Member Function Documentation

    + +

    ◆ Execute()

    + +
    +
    + + + + + +
    + + + + + + + +
    void TaskSet_CopyMemory::Execute ()
    +
    +overridevirtual
    +
    + +

    Reimplemented from TaskSet.

    + +
    +
    + +

    ◆ Wait()

    + +
    +
    + + + + + +
    + + + + + + + +
    void TaskSet_CopyMemory::Wait ()
    +
    +overridevirtual
    +
    + +

    Reimplemented from TaskSet.

    + +
    +

    The documentation for this class was generated from the following files:
    diff --git a/class_task_set___copy_memory.png b/class_task_set___copy_memory.png index 9d21f02..3cfe250 100644 Binary files a/class_task_set___copy_memory.png and b/class_task_set___copy_memory.png differ diff --git a/class_thread_pool-members.html b/class_thread_pool-members.html index 47d14d6..bd3c187 100644 --- a/class_thread_pool-members.html +++ b/class_thread_pool-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,34 +26,34 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    ThreadPool Member List
    +
    ThreadPool Member List

    This is the complete list of members for ThreadPool, including all inherited members.

    - + - +
    Execute(Task *task) (defined in ThreadPool)ThreadPool
    Execute(const std::vector< Task * > &tasks) (defined in ThreadPool)ThreadPool
    Execute(const std::vector< Task * > &tasks) (defined in ThreadPool)ThreadPool
    GetSize() const (defined in ThreadPool)ThreadPool
    ThreadPool() (defined in ThreadPool)ThreadPoolexplicit
    ThreadPool() (defined in ThreadPool)ThreadPoolexplicit
    ~ThreadPool() (defined in ThreadPool)ThreadPool
    diff --git a/class_thread_pool.html b/class_thread_pool.html index 9ad5503..649bf71 100644 --- a/class_thread_pool.html +++ b/class_thread_pool.html @@ -1,9 +1,9 @@ - + - - + + MMCore: ThreadPool Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,46 +26,46 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    ThreadPool Class Referencefinal
    +
    ThreadPool Class Referencefinal
    - - - -

    +

    Public Member Functions

    +
    size_t GetSize () const
     
    +
    void Execute (Task *task)
     
    +
    void Execute (const std::vector< Task * > &tasks)
     

    The documentation for this class was generated from the following files:
    diff --git a/classes.html b/classes.html index 9367752..5f07b1f 100644 --- a/classes.html +++ b/classes.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Index @@ -16,10 +16,9 @@
    - - + @@ -27,56 +26,56 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    Class Index
    +
    Class Index
    diff --git a/classmm_1_1_device_manager-members.html b/classmm_1_1_device_manager-members.html index f9eb76c..bb9eaac 100644 --- a/classmm_1_1_device_manager-members.html +++ b/classmm_1_1_device_manager-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    mm::DeviceManager Member List
    +
    mm::DeviceManager Member List

    This is the complete list of members for mm::DeviceManager, including all inherited members.

    - + - - - + + + - + - + - +
    GetDevice(const std::string &label) constmm::DeviceManager
    GetDevice(const char *label) const (defined in mm::DeviceManager)mm::DeviceManager
    GetDevice(const char *label) const (defined in mm::DeviceManager)mm::DeviceManager
    GetDevice(const MM::Device *rawPtr) constmm::DeviceManager
    GetDeviceList(MM::DeviceType t=MM::AnyType) constmm::DeviceManager
    GetDeviceOfType(std::shared_ptr< DeviceInstance > device) constmm::DeviceManagerinline
    GetDeviceOfType(const std::string &label) const (defined in mm::DeviceManager)mm::DeviceManagerinline
    GetDeviceList(MM::DeviceType t=MM::AnyType) constmm::DeviceManager
    GetDeviceOfType(std::shared_ptr< DeviceInstance > device) constmm::DeviceManagerinline
    GetDeviceOfType(const std::string &label) const (defined in mm::DeviceManager)mm::DeviceManagerinline
    GetDeviceOfType(const char *label) const (defined in mm::DeviceManager)mm::DeviceManagerinline
    GetLoadedPeripherals(const char *hubLabel) constmm::DeviceManager
    GetLoadedPeripherals(const char *hubLabel) constmm::DeviceManager
    GetParentDevice(std::shared_ptr< DeviceInstance > device) constmm::DeviceManager
    LoadDevice(std::shared_ptr< LoadedDeviceAdapter > module, const std::string &deviceName, const std::string &label, CMMCore *core, mm::logging::Logger deviceLogger, mm::logging::Logger coreLogger)mm::DeviceManager
    LoadDevice(std::shared_ptr< LoadedDeviceAdapter > module, const std::string &deviceName, const std::string &label, CMMCore *core, mm::logging::Logger deviceLogger, mm::logging::Logger coreLogger)mm::DeviceManager
    UnloadAllDevices()mm::DeviceManager
    UnloadDevice(std::shared_ptr< DeviceInstance > device)mm::DeviceManager
    UnloadDevice(std::shared_ptr< DeviceInstance > device)mm::DeviceManager
    ~DeviceManager() (defined in mm::DeviceManager)mm::DeviceManager
    diff --git a/classmm_1_1_device_manager.html b/classmm_1_1_device_manager.html index 859fd7e..ded8a99 100644 --- a/classmm_1_1_device_manager.html +++ b/classmm_1_1_device_manager.html @@ -1,9 +1,9 @@ - + - - + + MMCore: mm::DeviceManager Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    - - + - + - + - + - + - + - - + + - + - + - - - - - + + + - - - + + - - + +

    +

    Public Member Functions

    -std::shared_ptr< DeviceInstance > LoadDevice (std::shared_ptr< LoadedDeviceAdapter > module, const std::string &deviceName, const std::string &label, CMMCore *core, mm::logging::Logger deviceLogger, mm::logging::Logger coreLogger)
    +std::shared_ptr< DeviceInstanceLoadDevice (std::shared_ptr< LoadedDeviceAdapter > module, const std::string &deviceName, const std::string &label, CMMCore *core, mm::logging::Logger deviceLogger, mm::logging::Logger coreLogger)
     Load the specified device and assign a device label.
     
    -void UnloadDevice (std::shared_ptr< DeviceInstance > device)
    +void UnloadDevice (std::shared_ptr< DeviceInstance > device)
     Unload a device.
     
    -void UnloadAllDevices ()
    +void UnloadAllDevices ()
     Unload all devices.
     
    -std::shared_ptr< DeviceInstance > GetDevice (const MM::Device *rawPtr) const
    +std::shared_ptr< DeviceInstanceGetDevice (const MM::Device *rawPtr) const
     Get a device from a raw pointer to its MMDevice object.
     
    -std::vector< std::string > GetDeviceList (MM::DeviceType t=MM::AnyType) const
    +std::vector< std::string > GetDeviceList (MM::DeviceType t=MM::AnyType) const
     Get the labels of all loaded devices of a given type.
     
    -std::vector< std::string > GetLoadedPeripherals (const char *hubLabel) const
    +std::vector< std::string > GetLoadedPeripherals (const char *hubLabel) const
     Get the labels of all loaded peripherals of a hub device.
     
    std::shared_ptr< HubInstance > GetParentDevice (std::shared_ptr< DeviceInstance > device) const
     Get the parent hub device of a peripheral. More...
    std::shared_ptr< HubInstanceGetParentDevice (std::shared_ptr< DeviceInstance > device) const
     Get the parent hub device of a peripheral.
     
    -std::shared_ptr< DeviceInstance > GetDevice (const std::string &label) const
    +std::shared_ptr< DeviceInstanceGetDevice (const std::string &label) const
     Get a device by label.
     
    -std::shared_ptr< DeviceInstance > GetDevice (const char *label) const
    +std::shared_ptr< DeviceInstanceGetDevice (const char *label) const
     
    +
    template<class TDeviceInstance >
    std::shared_ptr< TDeviceInstance > GetDeviceOfType (std::shared_ptr< DeviceInstance > device) const
     Get a device by label, requiring a specific type.
     
    +
    std::shared_ptr< TDeviceInstance > GetDeviceOfType (std::shared_ptr< DeviceInstance > device) const
     Get a device by label, requiring a specific type.
     
    template<class TDeviceInstance >
    std::shared_ptr< TDeviceInstance > GetDeviceOfType (const std::string &label) const
     
    +
    std::shared_ptr< TDeviceInstance > GetDeviceOfType (const std::string &label) const
     
    template<class TDeviceInstance >
    std::shared_ptr< TDeviceInstance > GetDeviceOfType (const char *label) const
     
    std::shared_ptr< TDeviceInstance > GetDeviceOfType (const char *label) const
     

    Member Function Documentation

    - -

    ◆ GetParentDevice()

    + +

    ◆ GetParentDevice()

    - + - + @@ -129,16 +128,18 @@

    Returns
    The hub device, or null if device has no parent.
    +

    References GetDeviceOfType().

    +
    The documentation for this class was generated from the following files: diff --git a/classmm_1_1_device_module_lock_guard-members.html b/classmm_1_1_device_module_lock_guard-members.html index 97f1952..3a432bd 100644 --- a/classmm_1_1_device_module_lock_guard-members.html +++ b/classmm_1_1_device_module_lock_guard-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@

    std::shared_ptr< HubInstance > mm::DeviceManager::GetParentDevice std::shared_ptr< HubInstance > mm::DeviceManager::GetParentDevice (std::shared_ptr< DeviceInstance > std::shared_ptr< DeviceInstance device) const
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    mm::DeviceModuleLockGuard Member List
    +
    mm::DeviceModuleLockGuard Member List
    @@ -54,7 +53,7 @@
    diff --git a/classmm_1_1_device_module_lock_guard.html b/classmm_1_1_device_module_lock_guard.html index 2727986..febf345 100644 --- a/classmm_1_1_device_module_lock_guard.html +++ b/classmm_1_1_device_module_lock_guard.html @@ -1,9 +1,9 @@ - + - - + + MMCore: mm::DeviceModuleLockGuard Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    - -

    +

    Public Member Functions

    +
     DeviceModuleLockGuard (std::shared_ptr< DeviceInstance > device)
     

    The documentation for this class was generated from the following files:
    diff --git a/classmm_1_1_frame_buffer-members.html b/classmm_1_1_frame_buffer-members.html index 0fa9eb1..6ff5e99 100644 --- a/classmm_1_1_frame_buffer-members.html +++ b/classmm_1_1_frame_buffer-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    mm::FrameBuffer Member List
    +
    mm::FrameBuffer Member List

    This is the complete list of members for mm::FrameBuffer, including all inherited members.

    - + - + - + - + - + - +
    Clear() (defined in mm::FrameBuffer)mm::FrameBuffer
    Depth() const (defined in mm::FrameBuffer)mm::FrameBufferinline
    Depth() const (defined in mm::FrameBuffer)mm::FrameBufferinline
    FindImage(unsigned channel) const (defined in mm::FrameBuffer)mm::FrameBuffer
    FrameBuffer(unsigned xSize, unsigned ySize, unsigned byteDepth) (defined in mm::FrameBuffer)mm::FrameBuffer
    FrameBuffer(unsigned xSize, unsigned ySize, unsigned byteDepth) (defined in mm::FrameBuffer)mm::FrameBuffer
    FrameBuffer() (defined in mm::FrameBuffer)mm::FrameBuffer
    GetPixels(unsigned channel) const (defined in mm::FrameBuffer)mm::FrameBuffer
    GetPixels(unsigned channel) const (defined in mm::FrameBuffer)mm::FrameBuffer
    Height() const (defined in mm::FrameBuffer)mm::FrameBufferinline
    Preallocate(unsigned channels) (defined in mm::FrameBuffer)mm::FrameBuffer
    Preallocate(unsigned channels) (defined in mm::FrameBuffer)mm::FrameBuffer
    Resize(unsigned xSize, unsigned ySize, unsigned pixDepth) (defined in mm::FrameBuffer)mm::FrameBuffer
    SetPixels(unsigned channel, const unsigned char *pixels) (defined in mm::FrameBuffer)mm::FrameBuffer
    SetPixels(unsigned channel, const unsigned char *pixels) (defined in mm::FrameBuffer)mm::FrameBuffer
    Width() const (defined in mm::FrameBuffer)mm::FrameBufferinline
    ~FrameBuffer() (defined in mm::FrameBuffer)mm::FrameBuffer
    ~FrameBuffer() (defined in mm::FrameBuffer)mm::FrameBuffer
    diff --git a/classmm_1_1_frame_buffer.html b/classmm_1_1_frame_buffer.html index 9a4e09d..708f483 100644 --- a/classmm_1_1_frame_buffer.html +++ b/classmm_1_1_frame_buffer.html @@ -1,9 +1,9 @@ - + - - + + MMCore: mm::FrameBuffer Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    - - - - - - - - - - -

    +

    Public Member Functions

    +
     FrameBuffer (unsigned xSize, unsigned ySize, unsigned byteDepth)
     
    +
    void Resize (unsigned xSize, unsigned ySize, unsigned pixDepth)
     
    +
    void Clear ()
     
    +
    void Preallocate (unsigned channels)
     
    +
    ImgBufferFindImage (unsigned channel) const
     
    +
    const unsigned char * GetPixels (unsigned channel) const
     
    +
    bool SetPixels (unsigned channel, const unsigned char *pixels)
     
    +
    unsigned Width () const
     
    +
    unsigned Height () const
     
    +
    unsigned Depth () const
     

    The documentation for this class was generated from the following files:
    diff --git a/classmm_1_1_img_buffer-members.html b/classmm_1_1_img_buffer-members.html index 8b51b46..434c1f9 100644 --- a/classmm_1_1_img_buffer-members.html +++ b/classmm_1_1_img_buffer-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    mm::ImgBuffer Member List
    +
    mm::ImgBuffer Member List

    This is the complete list of members for mm::ImgBuffer, including all inherited members.

    - + - + - + - + - +
    Depth() const (defined in mm::ImgBuffer)mm::ImgBufferinline
    GetMetadata() const (defined in mm::ImgBuffer)mm::ImgBufferinline
    GetMetadata() const (defined in mm::ImgBuffer)mm::ImgBufferinline
    GetPixels() const (defined in mm::ImgBuffer)mm::ImgBuffer
    Height() const (defined in mm::ImgBuffer)mm::ImgBufferinline
    Height() const (defined in mm::ImgBuffer)mm::ImgBufferinline
    ImgBuffer(unsigned xSize, unsigned ySize, unsigned pixDepth) (defined in mm::ImgBuffer)mm::ImgBuffer
    Resize(unsigned xSize, unsigned ySize, unsigned pixDepth) (defined in mm::ImgBuffer)mm::ImgBuffer
    Resize(unsigned xSize, unsigned ySize, unsigned pixDepth) (defined in mm::ImgBuffer)mm::ImgBuffer
    Resize(unsigned xSize, unsigned ySize) (defined in mm::ImgBuffer)mm::ImgBuffer
    SetMetadata(const Metadata &md) (defined in mm::ImgBuffer)mm::ImgBuffer
    SetMetadata(const Metadata &md) (defined in mm::ImgBuffer)mm::ImgBuffer
    SetPixels(const void *pixArray) (defined in mm::ImgBuffer)mm::ImgBuffer
    Width() const (defined in mm::ImgBuffer)mm::ImgBufferinline
    Width() const (defined in mm::ImgBuffer)mm::ImgBufferinline
    ~ImgBuffer() (defined in mm::ImgBuffer)mm::ImgBuffer
    diff --git a/classmm_1_1_img_buffer.html b/classmm_1_1_img_buffer.html index 39c9d40..0ec0842 100644 --- a/classmm_1_1_img_buffer.html +++ b/classmm_1_1_img_buffer.html @@ -1,9 +1,9 @@ - + - - + + MMCore: mm::ImgBuffer Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    - - - - - - - - - - - - +

    +

    Public Member Functions

    +
     ImgBuffer (unsigned xSize, unsigned ySize, unsigned pixDepth)
     
    +
    unsigned int Width () const
     
    +
    unsigned int Height () const
     
    +
    unsigned int Depth () const
     
    +
    void SetPixels (const void *pixArray)
     
    +
    const unsigned char * GetPixels () const
     
    +
    void Resize (unsigned xSize, unsigned ySize, unsigned pixDepth)
     
    +
    void Resize (unsigned xSize, unsigned ySize)
     
    +
    void SetMetadata (const Metadata &md)
     
    +
    const Metadata & GetMetadata () const
     
     

    The documentation for this class was generated from the following files:
    diff --git a/classmm_1_1_log_manager-members.html b/classmm_1_1_log_manager-members.html index 1b65c91..b922ac1 100644 --- a/classmm_1_1_log_manager-members.html +++ b/classmm_1_1_log_manager-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    mm::LogManager Member List
    +
    mm::LogManager Member List

    This is the complete list of members for mm::LogManager, including all inherited members.

    - + - + - + - + - + - +
    AddSecondaryLogFile(logging::LogLevel level, const std::string &filename, bool truncate=true, logging::SinkMode mode=logging::SinkModeAsynchronous) (defined in mm::LogManager)mm::LogManager
    GetPrimaryLogFilename() const (defined in mm::LogManager)mm::LogManager
    GetPrimaryLogFilename() const (defined in mm::LogManager)mm::LogManager
    GetPrimaryLogLevel() const (defined in mm::LogManager)mm::LogManager
    IsUsingPrimaryLogFile() const (defined in mm::LogManager)mm::LogManager
    IsUsingPrimaryLogFile() const (defined in mm::LogManager)mm::LogManager
    IsUsingStdErr() const (defined in mm::LogManager)mm::LogManager
    LogFileHandle typedef (defined in mm::LogManager)mm::LogManager
    LogFileHandle typedef (defined in mm::LogManager)mm::LogManager
    LogManager() (defined in mm::LogManager)mm::LogManager
    NewLogger(const std::string &label) (defined in mm::LogManager)mm::LogManager
    NewLogger(const std::string &label) (defined in mm::LogManager)mm::LogManager
    RemoveSecondaryLogFile(LogFileHandle handle) (defined in mm::LogManager)mm::LogManager
    SetPrimaryLogFilename(const std::string &filename, bool truncate) (defined in mm::LogManager)mm::LogManager
    SetPrimaryLogFilename(const std::string &filename, bool truncate) (defined in mm::LogManager)mm::LogManager
    SetPrimaryLogLevel(logging::LogLevel level) (defined in mm::LogManager)mm::LogManager
    SetUseStdErr(bool flag) (defined in mm::LogManager)mm::LogManager
    SetUseStdErr(bool flag) (defined in mm::LogManager)mm::LogManager
    diff --git a/classmm_1_1_log_manager.html b/classmm_1_1_log_manager.html index fe39bf8..12518e4 100644 --- a/classmm_1_1_log_manager.html +++ b/classmm_1_1_log_manager.html @@ -1,9 +1,9 @@ - + - - + + MMCore: mm::LogManager Class Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ + -
    -
    mm::LogManager Class Reference
    +
    mm::LogManager Class Reference

    #include <LogManager.h>

    - -

    +

    Public Types

    +
    typedef int LogFileHandle
     
    - - - - - - - - - - -

    +

    Public Member Functions

    +
    void SetUseStdErr (bool flag)
     
    +
    bool IsUsingStdErr () const
     
    +
    void SetPrimaryLogFilename (const std::string &filename, bool truncate)
     
    +
    std::string GetPrimaryLogFilename () const
     
    +
    bool IsUsingPrimaryLogFile () const
     
    +
    void SetPrimaryLogLevel (logging::LogLevel level)
     
    +
    logging::LogLevel GetPrimaryLogLevel () const
     
    +
    LogFileHandle AddSecondaryLogFile (logging::LogLevel level, const std::string &filename, bool truncate=true, logging::SinkMode mode=logging::SinkModeAsynchronous)
     
    +
    void RemoveSecondaryLogFile (LogFileHandle handle)
     
    +
    logging::Logger NewLogger (const std::string &label)
     
    @@ -98,12 +97,12 @@

    Facade to the logging subsystem.


    The documentation for this class was generated from the following files:
    diff --git a/dir_246b4abd6d43f44e033f51317c750d91.html b/dir_246b4abd6d43f44e033f51317c750d91.html index 5c251e8..e249e99 100644 --- a/dir_246b4abd6d43f44e033f51317c750d91.html +++ b/dir_246b4abd6d43f44e033f51317c750d91.html @@ -1,9 +1,9 @@ - + - - + + MMCore: MMCore Directory Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    MMCore Directory Reference
    +
    MMCore Directory Reference
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Files

     CircularBuffer.h
     
     ConfigGroup.h
     
     Configuration.h
     
     CoreCallback.h
     
     CoreFeatures.h
     
     CoreProperty.h
     
     CoreUtils.h
     
     DeviceManager.h
     
     Error.h
     
     ErrorCodes.h
     
     FrameBuffer.h
     
     LogManager.h
     
     MMCore.h
     
     MMEventCallback.h
     
     PluginManager.h
     
     Semaphore.h
     
     Task.h
     
     TaskSet.h
     
     TaskSet_CopyMemory.h
     
     ThreadPool.h
     
    diff --git a/dir_7a1f3eb64b438b3ad34f72aec195a0a6.html b/dir_7a1f3eb64b438b3ad34f72aec195a0a6.html index 609aba6..ff0c0ff 100644 --- a/dir_7a1f3eb64b438b3ad34f72aec195a0a6.html +++ b/dir_7a1f3eb64b438b3ad34f72aec195a0a6.html @@ -1,9 +1,9 @@ - + - - + + MMCore: mmCoreAndDevices Directory Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    mmCoreAndDevices Directory Reference
    +
    mmCoreAndDevices Directory Reference
    - + +

    +

    Directories

     MMCore
     
    diff --git a/doc.png b/doc.png deleted file mode 100644 index 17edabf..0000000 Binary files a/doc.png and /dev/null differ diff --git a/doc.svg b/doc.svg new file mode 100644 index 0000000..0b928a5 --- /dev/null +++ b/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docd.svg b/docd.svg new file mode 100644 index 0000000..ac18b27 --- /dev/null +++ b/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/doxygen.css b/doxygen.css index ffbff02..009a9b5 100644 --- a/doxygen.css +++ b/doxygen.css @@ -1,29 +1,378 @@ -/* The standard CSS for doxygen 1.9.1 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; +/* The standard CSS for doxygen 1.9.8*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); } -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; } /* @group Heading Levels */ -h1.groupheader { - font-size: 150%; -} - .title { - font: 400 14px/28px Roboto,sans-serif; + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; font-size: 150%; font-weight: bold; margin: 10px 2px; } +h1.groupheader { + font-size: 150%; +} + h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); font-size: 150%; font-weight: normal; margin-top: 1.75em; @@ -46,22 +395,13 @@ h1, h2, h3, h4, h5, h6 { } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; + text-shadow: 0 0 15px var(--glow-color); } dt { font-weight: bold; } -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - p.startli, p.startdd { margin-top: 2px; } @@ -113,7 +453,6 @@ h3.version { } div.navtab { - border-right: 1px solid #A3B4D7; padding-right: 15px; text-align: right; line-height: 110%; @@ -127,16 +466,17 @@ td.navtab { padding-right: 6px; padding-left: 6px; } + td.navtabHL { - background-image: url('tab_a.png'); + background-image: var(--nav-gradient-active-image); background-repeat:repeat-x; padding-right: 6px; padding-left: 6px; } td.navtabHL a, td.navtabHL a:visited { - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); } a.navtab { @@ -148,7 +488,13 @@ div.qindex{ width: 100%; line-height: 140%; font-size: 130%; - color: #A0A0A0; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; } dt.alphachar{ @@ -157,7 +503,7 @@ dt.alphachar{ } .alphachar a{ - color: black; + color: var(--index-header-color); } .alphachar a:hover, .alphachar a:visited{ @@ -176,8 +522,12 @@ dt.alphachar{ line-height: 1.15em; } +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + .classindex dl.odd { - background-color: #F8F9FC; + background-color: var(--index-odd-item-bg-color); } @media(min-width: 1120px) { @@ -196,23 +546,19 @@ dt.alphachar{ /* @group Link Styling */ a { - color: #3D578C; + color: var(--page-link-color); font-weight: normal; text-decoration: none; } .contents a:visited { - color: #4665A2; + color: var(--page-visited-link-color); } a:hover { text-decoration: underline; } -.contents a.qindexHL:visited { - color: #FFFFFF; -} - a.el { font-weight: bold; } @@ -221,12 +567,39 @@ a.elRef { } a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; + color: var(--code-link-color); } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } /* @end */ @@ -235,7 +608,17 @@ dl.el { } ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; } #side-nav ul { @@ -254,30 +637,32 @@ ul { } pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; - font-family: monospace, fixed; + font-family: var(--font-family-monospace); font-size: 105%; } div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); } div.line { - font-family: monospace, fixed; + font-family: var(--font-family-monospace); font-size: 13px; min-height: 13px; - line-height: 1.0; + line-height: 1.2; text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ @@ -306,24 +691,40 @@ div.line:after { } div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); } +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} span.lineno { padding-right: 4px; + margin-right: 9px; text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); white-space: pre; } -span.lineno a { - background-color: #D8D8D8; +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); } span.lineno a:hover { - background-color: #C8C8C8; + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); } .lineno { @@ -335,24 +736,6 @@ span.lineno a:hover { user-select: none; } -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - div.classindex ul { list-style: none; padding-left: 0; @@ -374,8 +757,7 @@ div.groupText { } body { - background-color: white; - color: black; + color: var(--page-foreground-color); margin: 0; } @@ -385,29 +767,15 @@ div.contents { margin-right: 8px; } -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; +p.formulaDsp { + text-align: center; } -tr.memlist { - background-color: #EEF1F7; +img.dark-mode-visible { + display: none; } - -p.formulaDsp { - text-align: center; +img.light-mode-visible { + display: none; } img.formulaDsp { @@ -437,89 +805,74 @@ address.footer { img.footer { border: 0px; vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; } /* @group Code Colorization */ span.keyword { - color: #008000 + color: var(--code-keyword-color); } span.keywordtype { - color: #604020 + color: var(--code-type-keyword-color); } span.keywordflow { - color: #e08000 + color: var(--code-flow-keyword-color); } span.comment { - color: #800000 + color: var(--code-comment-color); } span.preprocessor { - color: #806020 + color: var(--code-preprocessor-color); } span.stringliteral { - color: #002080 + color: var(--code-string-literal-color); } span.charliteral { - color: #008080 + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); } span.vhdldigit { - color: #ff00ff + color: var(--code-vhdl-digit-color); } span.vhdlchar { - color: #000000 + color: var(--code-vhdl-char-color); } span.vhdlkeyword { - color: #700070 + color: var(--code-vhdl-keyword-color); } span.vhdllogic { - color: #ff0000 + color: var(--code-vhdl-logic-color); } blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); margin: 0 24px 0 4px; padding: 0 12px 0 16px; } -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - /* @end */ -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - td.tiny { font-size: 75%; } @@ -527,18 +880,19 @@ td.tiny { .dirtab { padding: 4px; border-collapse: collapse; - border: 1px solid #A3B4D7; + border: 1px solid var(--table-cell-border-color); } th.dirtab { - background: #EBEFF6; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-weight: bold; } hr { height: 0px; border: none; - border-top: 1px solid #4A6AAA; + border-top: 1px solid var(--separator-color); } hr.footer { @@ -566,14 +920,14 @@ table.memberdecls { } .memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; + background-color: var(--memdecl-background-color); border: none; margin: 4px; padding: 1px 0 0 8px; @@ -581,11 +935,11 @@ table.memberdecls { .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; - color: #555; + color: var(--memdecl-foreground-color); } .memSeparator { - border-bottom: 1px solid #DEE4F0; + border-bottom: 1px solid var(--memdecl-separator-color); line-height: 1px; margin: 0px; padding: 0px; @@ -600,7 +954,7 @@ table.memberdecls { } .memTemplParams { - color: #4665A2; + color: var(--memdecl-template-color); white-space: nowrap; font-size: 80%; } @@ -613,15 +967,15 @@ table.memberdecls { .memtitle { padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); border-top-right-radius: 4px; border-top-left-radius: 4px; margin-bottom: -1px; - background-image: url('nav_f.png'); + background-image: var(--memdef-title-gradient-image); background-repeat: repeat-x; - background-color: #E2E8F2; + background-color: var(--memdef-title-background-color); line-height: 1.25; font-weight: 300; float:left; @@ -636,20 +990,11 @@ table.memberdecls { .memtemplate { font-size: 80%; - color: #4665A2; + color: var(--memdef-template-color); font-weight: normal; margin-left: 9px; } -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - .mempage { width: 100%; } @@ -668,7 +1013,7 @@ table.memberdecls { } .memitem.glow { - box-shadow: 0 0 15px cyan; + box-shadow: 0 0 15px var(--glow-color); } .memname { @@ -681,41 +1026,32 @@ table.memberdecls { } .memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); padding: 6px 0px 6px 0px; - color: #253555; + color: var(--memdef-proto-text-color); font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - } .overload { - font-family: "courier new",courier,monospace; + font-family: var(--font-family-monospace); font-size: 65%; } .memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); padding: 6px 10px 2px 10px; - background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; - background-color: #FFFFFF; + background-color: var(--memdef-doc-background-color); /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; @@ -748,7 +1084,7 @@ dl.reflist dd { } .paramname { - color: #602020; + color: var(--memdef-param-name-color); white-space: nowrap; } .paramname em { @@ -761,20 +1097,20 @@ dl.reflist dd { .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; -} +} .params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { font-weight: bold; vertical-align: top; } - + .params .paramtype, .tparams .paramtype { font-style: italic; vertical-align: top; -} - +} + .params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; + font-family: var(--font-family-monospace); vertical-align: top; } @@ -798,13 +1134,13 @@ span.mlabels { } span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); text-shadow: none; - color: white; + color: var(--label-foreground-color); margin-right: 4px; padding: 2px 3px; border-radius: 3px; @@ -821,8 +1157,8 @@ span.mlabel { div.directory { margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); width: 100%; } @@ -858,9 +1194,14 @@ div.directory { border-left: 1px solid rgba(0,0,0,0.05); } +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + .directory tr.even { padding-left: 6px; - background-color: #F7F8FB; + background-color: var(--index-even-item-bg-color); } .directory img { @@ -878,11 +1219,11 @@ div.directory { cursor: pointer; padding-left: 2px; padding-right: 2px; - color: #3D578C; + color: var(--page-link-color); } .arrow { - color: #9CAFD4; + color: var(--nav-arrow-color); -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; @@ -896,14 +1237,15 @@ div.directory { } .icon { - font-family: Arial, Helvetica; + font-family: var(--font-family-icon); + line-height: normal; font-weight: bold; font-size: 12px; height: 14px; width: 16px; display: inline-block; - background-color: #728DC1; - color: white; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); text-align: center; border-radius: 4px; margin-left: 2px; @@ -920,8 +1262,7 @@ div.directory { width: 24px; height: 18px; margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; + background-image:var(--icon-folder-open-image); background-repeat: repeat-y; vertical-align:top; display: inline-block; @@ -931,8 +1272,7 @@ div.directory { width: 24px; height: 18px; margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; + background-image:var(--icon-folder-closed-image); background-repeat: repeat-y; vertical-align:top; display: inline-block; @@ -942,17 +1282,13 @@ div.directory { width: 24px; height: 18px; margin-bottom: 4px; - background-image:url('doc.png'); + background-image:var(--icon-doc-image); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } -table.directory { - font: 400 14px Roboto,sans-serif; -} - /* @end */ div.dynheader { @@ -967,7 +1303,7 @@ div.dynheader { address { font-style: normal; - color: #2A3D61; + color: var(--footer-foreground-color); } table.doxtable caption { @@ -981,28 +1317,23 @@ table.doxtable { } table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; + border: 1px solid var(--table-cell-border-color); padding: 3px 7px 2px; } table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-size: 110%; padding-bottom: 4px; padding-top: 5px; } table.fieldtable { - /*width: 100%;*/ margin-bottom: 10px; - border: 1px solid #A8B8D9; + border: 1px solid var(--memdef-border-color); border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } @@ -1012,8 +1343,8 @@ table.fieldtable { .fieldtable td.fieldtype, .fieldtable td.fieldname { white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); vertical-align: top; } @@ -1022,14 +1353,13 @@ table.fieldtable { } .fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ + border-bottom: 1px solid var(--memdef-border-color); } .fieldtable td.fielddoc p:first-child { margin-top: 0px; -} - +} + .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } @@ -1039,22 +1369,18 @@ table.fieldtable { } .fieldtable th { - background-image:url('nav_f.png'); + background-image: var(--memdef-title-gradient-image); background-repeat:repeat-x; - background-color: #E2E8F2; + background-color: var(--memdef-title-background-color); font-size: 90%; - color: #253555; + color: var(--memdef-proto-text-color); padding-bottom: 4px; padding-top: 5px; text-align:left; font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; + border-bottom: 1px solid var(--memdef-border-color); } @@ -1062,7 +1388,7 @@ table.fieldtable { top: 0px; left: 10px; height: 36px; - background-image: url('tab_b.png'); + background-image: var(--nav-gradient-image); z-index: 101; overflow: hidden; font-size: 13px; @@ -1071,13 +1397,13 @@ table.fieldtable { .navpath ul { font-size: 11px; - background-image:url('tab_b.png'); + background-image: var(--nav-gradient-image); background-repeat:repeat-x; background-position: 0 -5px; height:30px; line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); overflow:hidden; margin:0px; padding:0px; @@ -1089,10 +1415,10 @@ table.fieldtable { float:left; padding-left:10px; padding-right:15px; - background-image:url('bc_s.png'); + background-image:var(--nav-breadcrumb-image); background-repeat:no-repeat; background-position:right; - color:#364D7C; + color: var(--nav-foreground-color); } .navpath li.navelem a @@ -1101,15 +1427,16 @@ table.fieldtable { display:block; text-decoration: none; outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; } .navpath li.navelem a:hover { - color:#6884BD; + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); } .navpath li.footer @@ -1121,7 +1448,7 @@ table.fieldtable { background-image:none; background-repeat:no-repeat; background-position:right; - color:#364D7C; + color: var(--footer-foreground-color); font-size: 8pt; } @@ -1133,7 +1460,7 @@ div.summary padding-right: 5px; width: 50%; text-align: right; -} +} div.summary a { @@ -1148,7 +1475,7 @@ table.classindex margin-right: 3%; width: 94%; border: 0; - border-spacing: 0; + border-spacing: 0; padding: 0; } @@ -1166,11 +1493,11 @@ div.ingroups a div.header { - background-image:url('nav_h.png'); + background-image: var(--header-gradient-image); background-repeat:repeat-x; - background-color: #F9FAFC; + background-color: var(--header-background-color); margin: 0px; - border-bottom: 1px solid #C4CFE5; + border-bottom: 1px solid var(--header-separator-color); } div.headertitle @@ -1193,11 +1520,6 @@ dl.section { padding-left: 0px; } -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - dl.note { margin-left: -7px; padding-left: 3px; @@ -1205,16 +1527,6 @@ dl.note { border-color: #D0C000; } -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - dl.warning, dl.attention { margin-left: -7px; padding-left: 3px; @@ -1222,16 +1534,6 @@ dl.warning, dl.attention { border-color: #FF0000; } -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - dl.pre, dl.post, dl.invariant { margin-left: -7px; padding-left: 3px; @@ -1239,16 +1541,6 @@ dl.pre, dl.post, dl.invariant { border-color: #00D000; } -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - dl.deprecated { margin-left: -7px; padding-left: 3px; @@ -1256,16 +1548,6 @@ dl.deprecated { border-color: #505050; } -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - dl.todo { margin-left: -7px; padding-left: 3px; @@ -1273,16 +1555,6 @@ dl.todo { border-color: #00C0E0; } -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - dl.test { margin-left: -7px; padding-left: 3px; @@ -1290,16 +1562,6 @@ dl.test { border-color: #3030E0; } -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - dl.bug { margin-left: -7px; padding-left: 3px; @@ -1307,21 +1569,16 @@ dl.bug { border-color: #C08050; } -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; -} - dl.section dd { margin-bottom: 6px; } +#projectrow +{ + height: 56px; +} + #projectlogo { text-align: center; @@ -1337,25 +1594,29 @@ dl.section dd { #projectalign { vertical-align: middle; + padding-left: 0.5em; } #projectname { - font: 300% Tahoma, Arial,sans-serif; + font-size: 200%; + font-family: var(--font-family-title); margin: 0px; padding: 2px 0px; } - + #projectbrief { - font: 120% Tahoma, Arial,sans-serif; + font-size: 90%; + font-family: var(--font-family-title); margin: 0px; padding: 0px; } #projectnumber { - font: 50% Tahoma, Arial,sans-serif; + font-size: 50%; + font-family: 50% var(--font-family-title); margin: 0px; padding: 0px; } @@ -1365,7 +1626,8 @@ dl.section dd { padding: 0px; margin: 0px; width: 100%; - border-bottom: 1px solid #5373B4; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); } .image @@ -1398,17 +1660,12 @@ dl.section dd { font-weight: bold; } -div.zoom -{ - border: 1px solid #90A5CE; -} - dl.citelist { margin-bottom:50px; } dl.citelist dt { - color:#334975; + color:var(--citation-label-color); float:left; font-weight:bold; margin-right:10px; @@ -1424,8 +1681,8 @@ dl.citelist dd { div.toc { padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); border-radius: 7px 7px 7px 7px; float: right; height: auto; @@ -1433,28 +1690,17 @@ div.toc { width: 200px; } -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); margin-top: 5px; padding-left: 10px; padding-top: 2px; } -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); border-bottom: 0 none; margin: 0; } @@ -1463,7 +1709,7 @@ div.toc ul { list-style: none outside none; border: medium none; padding: 0px; -} +} div.toc li.level1 { margin-left: 0px; @@ -1474,11 +1720,11 @@ div.toc li.level2 { } div.toc li.level3 { - margin-left: 30px; + margin-left: 15px; } div.toc li.level4 { - margin-left: 45px; + margin-left: 15px; } span.emoji { @@ -1487,29 +1733,13 @@ span.emoji { */ } -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; +span.obfuscator { + display: none; } .inherit_header { font-weight: bold; - color: gray; + color: var(--inherit-header-color); cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; @@ -1541,11 +1771,12 @@ tr.heading h2 { #powerTip { cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; + box-shadow: var(--tooltip-shadow); display: none; font-size: smaller; max-width: 80%; @@ -1556,7 +1787,7 @@ tr.heading h2 { } #powerTip div.ttdoc { - color: grey; + color: var(--tooltip-doc-color); font-style: italic; } @@ -1564,18 +1795,24 @@ tr.heading h2 { font-weight: bold; } +#powerTip a { + color: var(--tooltip-link-color); +} + #powerTip div.ttname { font-weight: bold; } #powerTip div.ttdeci { - color: #006318; + color: var(--tooltip-declaration-color); } #powerTip div { margin: 0px; padding: 0px; - font: 12px/16px Roboto,sans-serif; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; } #powerTip:before, #powerTip:after { @@ -1620,12 +1857,12 @@ tr.heading h2 { } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; + border-top-color: var(--tooltip-background-color); border-width: 10px; margin: 0px -10px; } -#powerTip.n:before { - border-top-color: #808080; +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); border-width: 11px; margin: 0px -11px; } @@ -1648,13 +1885,13 @@ tr.heading h2 { } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; + border-bottom-color: var(--tooltip-background-color); border-width: 10px; margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; + border-bottom-color: var(--tooltip-border-color); border-width: 11px; margin: 0px -11px; } @@ -1675,13 +1912,13 @@ tr.heading h2 { left: 100%; } #powerTip.e:after { - border-left-color: #FFFFFF; + border-left-color: var(--tooltip-border-color); border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.e:before { - border-left-color: #808080; + border-left-color: var(--tooltip-border-color); border-width: 11px; top: 50%; margin-top: -11px; @@ -1691,13 +1928,13 @@ tr.heading h2 { right: 100%; } #powerTip.w:after { - border-right-color: #FFFFFF; + border-right-color: var(--tooltip-border-color); border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.w:before { - border-right-color: #808080; + border-right-color: var(--tooltip-border-color); border-width: 11px; top: 50%; margin-top: -11px; @@ -1731,7 +1968,7 @@ table.markdownTable { } table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; + border: 1px solid var(--table-cell-border-color); padding: 3px 7px 2px; } @@ -1739,8 +1976,8 @@ table.markdownTable tr { } th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-size: 110%; padding-bottom: 4px; padding-top: 5px; @@ -1758,36 +1995,51 @@ th.markdownTableHeadCenter, td.markdownTableBodyCenter { text-align: center } -.DocNodeRTL { - text-align: right; - direction: rtl; +tt, code, kbd, samp +{ + display: inline-block; } +/* @end */ -.DocNodeLTR { - text-align: left; - direction: ltr; +u { + text-decoration: underline; } -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; +details>summary { + list-style-type: none; } -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; +details > summary::-webkit-details-marker { + display: none; } -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; } -/* @end */ -u { - text-decoration: underline; +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); } diff --git a/doxygen.svg b/doxygen.svg index d42dad5..79a7635 100644 --- a/doxygen.svg +++ b/doxygen.svg @@ -1,4 +1,6 @@ + @@ -17,7 +19,7 @@ - + diff --git a/dynsections.js b/dynsections.js index 3174bd7..b73c828 100644 --- a/dynsections.js +++ b/dynsections.js @@ -47,6 +47,8 @@ function updateStripes() { $('table.directory tr'). removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); } function toggleLevel(level) @@ -118,4 +120,73 @@ function toggleInherit(id) $(img).attr('src',src.substring(0,src.length-10)+'open.png'); } } + +var opened=true; +// in case HTML_COLORSTYLE is LIGHT or DARK the vars will be replaced, so we write them out explicitly and use double quotes +var plusImg = [ "var(--fold-plus-image)", "var(--fold-plus-image-relpath)" ]; +var minusImg = [ "var(--fold-minus-image)", "var(--fold-minus-image-relpath)" ]; + +// toggle all folding blocks +function codefold_toggle_all(relPath) { + if (opened) { + $('#fold_all').css('background-image',plusImg[relPath]); + $('div[id^=foldopen]').hide(); + $('div[id^=foldclosed]').show(); + } else { + $('#fold_all').css('background-image',minusImg[relPath]); + $('div[id^=foldopen]').show(); + $('div[id^=foldclosed]').hide(); + } + opened=!opened; +} + +// toggle single folding block +function codefold_toggle(id) { + $('#foldopen'+id).toggle(); + $('#foldclosed'+id).toggle(); +} +function init_codefold(relPath) { + $('span[class=lineno]').css( + {'padding-right':'4px', + 'margin-right':'2px', + 'display':'inline-block', + 'width':'54px', + 'background':'linear-gradient(var(--fold-line-color),var(--fold-line-color)) no-repeat 46px/2px 100%' + }); + // add global toggle to first line + $('span[class=lineno]:first').append(''); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + var id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + var start = $(this).attr('data-start'); + var end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + var line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); +} + /* @license-end */ diff --git a/files.html b/files.html index 7bd4fc2..d03baff 100644 --- a/files.html +++ b/files.html @@ -1,9 +1,9 @@ - + - - + + MMCore: File List @@ -16,10 +16,9 @@
    - - + @@ -27,50 +26,52 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    File List
    +
    File List
    Here is a list of all documented files with brief descriptions:
    - - - - - - - - - - - - - - - - - - - - - +
    [detail level 123]
     CircularBuffer.h
     ConfigGroup.h
     Configuration.h
     CoreCallback.h
     CoreFeatures.h
     CoreProperty.h
     CoreUtils.h
     DeviceManager.h
     Error.h
     ErrorCodes.h
     FrameBuffer.h
     LogManager.h
     MMCore.h
     MMEventCallback.h
     PluginManager.h
     Semaphore.h
     Task.h
     TaskSet.h
     TaskSet_CopyMemory.h
     ThreadPool.h
    + + + + + + + + + + + + + + + + + + + + + +
      mmCoreAndDevices
      MMCore
     CircularBuffer.h
     ConfigGroup.h
     Configuration.h
     CoreCallback.h
     CoreFeatures.h
     CoreProperty.h
     CoreUtils.h
     DeviceManager.h
     Error.h
     ErrorCodes.h
     FrameBuffer.h
     LogManager.h
     MMCore.h
     MMEventCallback.h
     PluginManager.h
     Semaphore.h
     Task.h
     TaskSet.h
     TaskSet_CopyMemory.h
     ThreadPool.h
    diff --git a/folderclosed.png b/folderclosed.png deleted file mode 100644 index bb8ab35..0000000 Binary files a/folderclosed.png and /dev/null differ diff --git a/folderclosed.svg b/folderclosed.svg new file mode 100644 index 0000000..b04bed2 --- /dev/null +++ b/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderclosedd.svg b/folderclosedd.svg new file mode 100644 index 0000000..52f0166 --- /dev/null +++ b/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderopen.png b/folderopen.png deleted file mode 100644 index d6c7f67..0000000 Binary files a/folderopen.png and /dev/null differ diff --git a/folderopen.svg b/folderopen.svg new file mode 100644 index 0000000..f6896dd --- /dev/null +++ b/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/folderopend.svg b/folderopend.svg new file mode 100644 index 0000000..2d1f06e --- /dev/null +++ b/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/functions.html b/functions.html index 7b1601b..05350ce 100644 --- a/functions.html +++ b/functions.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,32 +26,29 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - a -

    diff --git a/functions_c.html b/functions_c.html index 3bc1d4d..81d6aec 100644 --- a/functions_c.html +++ b/functions_c.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,41 +26,32 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - c -

    diff --git a/functions_d.html b/functions_d.html index 6899716..e92dd23 100644 --- a/functions_d.html +++ b/functions_d.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,79 +26,44 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - d -

    diff --git a/functions_e.html b/functions_e.html index cd37015..0b3a7c7 100644 --- a/functions_e.html +++ b/functions_e.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,38 +26,31 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - e -

    diff --git a/functions_f.html b/functions_f.html index e3e32d1..d824409 100644 --- a/functions_f.html +++ b/functions_f.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,33 +26,29 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - f -

    diff --git a/functions_func.html b/functions_func.html index cd799e0..66774ae 100644 --- a/functions_func.html +++ b/functions_func.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,32 +26,29 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - a -

    diff --git a/functions_func_c.html b/functions_func_c.html index ec8abf9..9761864 100644 --- a/functions_func_c.html +++ b/functions_func_c.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,38 +26,31 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - c -

    diff --git a/functions_func_d.html b/functions_func_d.html index f3cf693..d38fcac 100644 --- a/functions_func_d.html +++ b/functions_func_d.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,79 +26,44 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - d -

    diff --git a/functions_func_e.html b/functions_func_e.html index 00922cd..494ebe0 100644 --- a/functions_func_e.html +++ b/functions_func_e.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,38 +26,31 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - e -

    diff --git a/functions_func_f.html b/functions_func_f.html index 014c1e5..40629c2 100644 --- a/functions_func_f.html +++ b/functions_func_f.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,33 +26,29 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - f -

    diff --git a/functions_func_g.html b/functions_func_g.html index 073060d..3e12338 100644 --- a/functions_func_g.html +++ b/functions_func_g.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,409 +26,154 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - g -

    diff --git a/functions_func_h.html b/functions_func_h.html index 6a00a6f..5cb0be9 100644 --- a/functions_func_h.html +++ b/functions_func_h.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,35 +26,30 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - h -

    diff --git a/functions_func_i.html b/functions_func_i.html index 42a2351..4699655 100644 --- a/functions_func_i.html +++ b/functions_func_i.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,110 +26,55 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - i -

    diff --git a/functions_func_l.html b/functions_func_l.html index 4d57278..6fc4fca 100644 --- a/functions_func_l.html +++ b/functions_func_l.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,62 +26,39 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - l -

    diff --git a/functions_func_n.html b/functions_func_n.html index 169596a..0d8cd2e 100644 --- a/functions_func_n.html +++ b/functions_func_n.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,29 +26,28 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - n -

    diff --git a/functions_func_o.html b/functions_func_o.html index 5517163..bc1e3bf 100644 --- a/functions_func_o.html +++ b/functions_func_o.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,47 +26,34 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - o -

    diff --git a/functions_func_p.html b/functions_func_p.html index b23a581..e9fcb54 100644 --- a/functions_func_p.html +++ b/functions_func_p.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,44 +26,33 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - p -

    diff --git a/functions_func_r.html b/functions_func_r.html index ddd1ddb..0b82e04 100644 --- a/functions_func_r.html +++ b/functions_func_r.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,62 +26,39 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - r -

    diff --git a/functions_func_s.html b/functions_func_s.html index 60db4e9..02eff95 100644 --- a/functions_func_s.html +++ b/functions_func_s.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,245 +26,100 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - s -

    diff --git a/functions_func_u.html b/functions_func_u.html index b5bebec..98cb1d6 100644 --- a/functions_func_u.html +++ b/functions_func_u.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,53 +26,36 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - u -

    diff --git a/functions_func_w.html b/functions_func_w.html index 16d1103..02f5952 100644 --- a/functions_func_w.html +++ b/functions_func_w.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,47 +26,34 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - w -

    diff --git a/functions_func_~.html b/functions_func_~.html index 0de7721..abdeaa6 100644 --- a/functions_func_~.html +++ b/functions_func_~.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Functions @@ -16,10 +16,9 @@
    - - + @@ -27,29 +26,28 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -  +
    Here is a list of all documented functions with links to the class documentation for each member:
    -

    - ~ -

    diff --git a/functions_g.html b/functions_g.html index d6e1253..43e1ff7 100644 --- a/functions_g.html +++ b/functions_g.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,409 +26,154 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - g -

    diff --git a/functions_h.html b/functions_h.html index a2b3c44..3aa7966 100644 --- a/functions_h.html +++ b/functions_h.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,35 +26,30 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - h -

    diff --git a/functions_i.html b/functions_i.html index cd3c02e..194e871 100644 --- a/functions_i.html +++ b/functions_i.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,110 +26,55 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - i -

    diff --git a/functions_l.html b/functions_l.html index ec2804a..1c806b8 100644 --- a/functions_l.html +++ b/functions_l.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,62 +26,39 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - l -

    diff --git a/functions_n.html b/functions_n.html index 8848ac9..82f3b22 100644 --- a/functions_n.html +++ b/functions_n.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,29 +26,28 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - n -

    diff --git a/functions_o.html b/functions_o.html index 6c9e011..9e0ec68 100644 --- a/functions_o.html +++ b/functions_o.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,47 +26,34 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - o -

    diff --git a/functions_p.html b/functions_p.html index 89f7861..6ee32ae 100644 --- a/functions_p.html +++ b/functions_p.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,44 +26,33 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - p -

    diff --git a/functions_r.html b/functions_r.html index 9ce526d..fd625d8 100644 --- a/functions_r.html +++ b/functions_r.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,62 +26,39 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - r -

    diff --git a/functions_s.html b/functions_s.html index d913583..77383ed 100644 --- a/functions_s.html +++ b/functions_s.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,245 +26,100 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - s -

    diff --git a/functions_type.html b/functions_type.html index b37c070..a1b81d1 100644 --- a/functions_type.html +++ b/functions_type.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members - Typedefs @@ -16,10 +16,9 @@
    - - + @@ -27,27 +26,26 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
      -
    • Code -: CMMError -
    • +
      Here is a list of all documented typedefs with links to the class documentation for each member:
    diff --git a/functions_u.html b/functions_u.html index 9e98e86..c71cff3 100644 --- a/functions_u.html +++ b/functions_u.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,53 +26,36 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - u -

    diff --git a/functions_w.html b/functions_w.html index f836940..f69bdfe 100644 --- a/functions_w.html +++ b/functions_w.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,47 +26,34 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - w -

    diff --git a/functions_~.html b/functions_~.html index 8dc9548..59f1f32 100644 --- a/functions_~.html +++ b/functions_~.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Members @@ -16,10 +16,9 @@
    - - + @@ -27,29 +26,28 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    Here is a list of all documented class members with links to the class documentation for each member:
    -

    - ~ -

    diff --git a/hierarchy.html b/hierarchy.html index 4fa4be6..c039500 100644 --- a/hierarchy.html +++ b/hierarchy.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Class Hierarchy @@ -16,10 +16,9 @@
    - - + @@ -27,60 +26,60 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    Class Hierarchy
    +
    Class Hierarchy
    This inheritance list is sorted roughly, but not completely, alphabetically:
    diff --git a/index.html b/index.html index 221df6e..2ded3c1 100644 --- a/index.html +++ b/index.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Main Page @@ -16,10 +16,9 @@
    - - + @@ -27,26 +26,26 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    MMCore Documentation
    +
    MMCore Documentation
    diff --git a/jquery.js b/jquery.js index 103c32d..1dffb65 100644 --- a/jquery.js +++ b/jquery.js @@ -1,12 +1,11 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
    "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
    ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
    "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
    "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** +!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(y){"use strict";y.ui=y.ui||{};y.ui.version="1.13.2";var n,i=0,h=Array.prototype.hasOwnProperty,a=Array.prototype.slice;y.cleanData=(n=y.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=y._data(i,"events"))&&e.remove&&y(i).triggerHandler("remove");n(t)}),y.widget=function(t,i,e){var s,n,o,h={},a=t.split(".")[0],r=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=y.Widget),Array.isArray(e)&&(e=y.extend.apply(null,[{}].concat(e))),y.expr.pseudos[r.toLowerCase()]=function(t){return!!y.data(t,r)},y[a]=y[a]||{},s=y[a][t],n=y[a][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},y.extend(n,s,{version:e.version,_proto:y.extend({},e),_childConstructors:[]}),(o=new i).options=y.widget.extend({},o.options),y.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}h[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=y.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},h,{constructor:n,namespace:a,widgetName:t,widgetFullName:r}),s?(y.each(s._childConstructors,function(t,e){var i=e.prototype;y.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),y.widget.bridge(t,n),n},y.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n
    ").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e
    ").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0'+ + var url; + var link; + link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ data.children[i].text+''+ makeTree(data.children[i],relPath)+'
  • '; } @@ -36,15 +44,92 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { } return result; } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + var searchBoxHtml; if (searchEnabled) { if (serverSide) { - $('#main-menu').append('
  • '); + searchBoxHtml='
    '+ + '
    '+ + '
     '+ + ''+ + '
    '+ + '
    '+ + '
    '+ + '
    '; } else { - $('#main-menu').append('
  • '); + searchBoxHtml='
    '+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
    '; + } + } + + $('#main-nav').before('
    '+ + ''+ + ''+ + '
    '); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); } $('#main-menu').smartmenus(); } diff --git a/minus.svg b/minus.svg new file mode 100644 index 0000000..f70d0c1 --- /dev/null +++ b/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/minusd.svg b/minusd.svg new file mode 100644 index 0000000..5f8e879 --- /dev/null +++ b/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/nav_fd.png b/nav_fd.png new file mode 100644 index 0000000..032fbdd Binary files /dev/null and b/nav_fd.png differ diff --git a/nav_hd.png b/nav_hd.png new file mode 100644 index 0000000..de80f18 Binary files /dev/null and b/nav_hd.png differ diff --git a/plus.svg b/plus.svg new file mode 100644 index 0000000..0752016 --- /dev/null +++ b/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plusd.svg b/plusd.svg new file mode 100644 index 0000000..0c65bfe --- /dev/null +++ b/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/splitbard.png b/splitbard.png new file mode 100644 index 0000000..8367416 Binary files /dev/null and b/splitbard.png differ diff --git a/struct_property_setting-members.html b/struct_property_setting-members.html index 059b20c..2c36988 100644 --- a/struct_property_setting-members.html +++ b/struct_property_setting-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,40 +26,40 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +

    -
    -
    PropertySetting Member List
    +
    PropertySetting Member List

    This is the complete list of members for PropertySetting, including all inherited members.

    - + - + - + - + - +
    generateKey(const char *device, const char *prop) (defined in PropertySetting)PropertySettingstatic
    getDeviceLabel() constPropertySettinginline
    getDeviceLabel() constPropertySettinginline
    getKey() const (defined in PropertySetting)PropertySettinginline
    getPropertyName() constPropertySettinginline
    getPropertyName() constPropertySettinginline
    getPropertyValue() constPropertySettinginline
    getReadOnly() constPropertySettinginline
    getReadOnly() constPropertySettinginline
    getVerbose() constPropertySetting
    isEqualTo(const PropertySetting &ps) (defined in PropertySetting)PropertySetting
    isEqualTo(const PropertySetting &ps) (defined in PropertySetting)PropertySetting
    PropertySetting(const char *deviceLabel, const char *prop, const char *value, bool readOnly=false)PropertySettinginline
    PropertySetting() (defined in PropertySetting)PropertySettinginline
    PropertySetting() (defined in PropertySetting)PropertySettinginline
    ~PropertySetting() (defined in PropertySetting)PropertySettinginline
    diff --git a/struct_property_setting.html b/struct_property_setting.html index ee7eaf2..d7e11e2 100644 --- a/struct_property_setting.html +++ b/struct_property_setting.html @@ -1,9 +1,9 @@ - + - - + + MMCore: PropertySetting Struct Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    PropertySetting Struct Reference
    +
    PropertySetting Struct Reference

    #include <Configuration.h>

    - - + - + - + - + - + - - + -

    +

    Public Member Functions

     PropertySetting (const char *deviceLabel, const char *prop, const char *value, bool readOnly=false)
     PropertySetting (const char *deviceLabel, const char *prop, const char *value, bool readOnly=false)
     
    std::string getDeviceLabel () const
    std::string getDeviceLabel () const
     
    std::string getPropertyName () const
    std::string getPropertyName () const
     
    bool getReadOnly () const
    bool getReadOnly () const
     
    std::string getPropertyValue () const
    std::string getPropertyValue () const
     
    +
    std::string getKey () const
     
    std::string getVerbose () const
    std::string getVerbose () const
     
    +
    bool isEqualTo (const PropertySetting &ps)
     
    - -

    +

    Static Public Member Functions

    +
    static std::string generateKey (const char *device, const char *prop)
     

    Detailed Description

    Property setting defined as triplet: device - property - value.

    Constructor & Destructor Documentation

    - -

    ◆ PropertySetting()

    + +

    ◆ PropertySetting()

    @@ -137,8 +136,8 @@

    Member Function Documentation

    - -

    ◆ getDeviceLabel()

    + +

    ◆ getDeviceLabel()

    @@ -165,8 +164,8 @@

    -

    ◆ getPropertyName()

    + +

    ◆ getPropertyName()

    @@ -193,8 +192,8 @@

    -

    ◆ getPropertyValue()

    + +

    ◆ getPropertyValue()

    @@ -221,8 +220,8 @@

    -

    ◆ getReadOnly()

    + +

    ◆ getReadOnly()

    @@ -249,8 +248,8 @@

    -

    ◆ getVerbose()

    + +

    ◆ getVerbose()

    @@ -269,12 +268,12 @@

    Configuration.h -
  • Configuration.cpp
  • +
  • Configuration.cpp
  • diff --git a/structmm_1_1features_1_1_flags-members.html b/structmm_1_1features_1_1_flags-members.html index c7be3b4..2b636e6 100644 --- a/structmm_1_1features_1_1_flags-members.html +++ b/structmm_1_1features_1_1_flags-members.html @@ -1,9 +1,9 @@ - + - - + + MMCore: Member List @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    -
    -
    mm::features::Flags Member List
    +
    mm::features::Flags Member List

    This is the complete list of members for mm::features::Flags, including all inherited members.

    - +
    ParallelDeviceInitialization (defined in mm::features::Flags)mm::features::Flags
    strictInitializationChecks (defined in mm::features::Flags)mm::features::Flags
    strictInitializationChecks (defined in mm::features::Flags)mm::features::Flags
    diff --git a/structmm_1_1features_1_1_flags.html b/structmm_1_1features_1_1_flags.html index cdae018..ae1e679 100644 --- a/structmm_1_1features_1_1_flags.html +++ b/structmm_1_1features_1_1_flags.html @@ -1,9 +1,9 @@ - + - - + + MMCore: mm::features::Flags Struct Reference @@ -16,10 +16,9 @@
    - - + @@ -27,15 +26,16 @@
    -
    MMCore -  10.1.1 +
    +
    MMCore 10.1.1
    - + +/* @license-end */ +
    - - -

    +

    Public Attributes

    +
    bool strictInitializationChecks = false
     
    +
    bool ParallelDeviceInitialization = true
     
    @@ -66,7 +65,7 @@
    diff --git a/tab_ad.png b/tab_ad.png new file mode 100644 index 0000000..e34850a Binary files /dev/null and b/tab_ad.png differ diff --git a/tab_bd.png b/tab_bd.png new file mode 100644 index 0000000..91c2524 Binary files /dev/null and b/tab_bd.png differ diff --git a/tab_hd.png b/tab_hd.png new file mode 100644 index 0000000..2489273 Binary files /dev/null and b/tab_hd.png differ diff --git a/tab_sd.png b/tab_sd.png new file mode 100644 index 0000000..757a565 Binary files /dev/null and b/tab_sd.png differ diff --git a/tabs.css b/tabs.css index 7d45d36..df7944b 100644 --- a/tabs.css +++ b/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all 0.25s;transition:all 0.25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}#main-menu-state:not(:checked)~#main-menu{display:none}#main-menu-state:checked~#main-menu{display:block}@media (min-width: 768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked)~#main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:none}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}}