61 #ifndef IMS_IMSSYSTEM_H__
62 #define IMS_IMSSYSTEM_H__
70 #if defined _WIN32 || defined __CYGWIN__
72 #define DLL_EXPORT __attribute__ ((dllexport))
73 #define DLL_IMPORT __attribute__ ((dllimport))
75 #define DLL_EXPORT __declspec(dllexport) // Note: actually gcc seems to also supports this syntax.
76 #define DLL_IMPORT __declspec(dllimport) // Note: actually gcc seems to also supports this syntax.
81 #define DLL_EXPORT __attribute__ ((visibility ("default")))
82 #define DLL_IMPORT __attribute__ ((visibility ("default")))
83 #define DLL_LOCAL __attribute__ ((visibility ("hidden")))
91 #if defined(_EXPORTING_IMS)
92 #define LIBSPEC DLL_EXPORT
93 #define LIBLOCAL DLL_LOCAL
94 #define EXPIMP_TEMPLATE
95 #elif defined(_STATIC_IMS)
98 #define EXPIMP_TEMPLATE
100 #define LIBSPEC DLL_IMPORT
101 #define LIBLOCAL DLL_LOCAL
102 #define EXPIMP_TEMPLATE extern
109 class IConnectionManager;
112 class FileSystemTable;
162 struct std::tm build_date;
167 FWVersion(
const std::vector<std::uint16_t>&);
180 friend LIBSPEC std::ostream& operator<< (std::ostream& stream,
const FWVersion&);
216 int nSynthInterfaces{ 1 };
218 bool FastImageTransfer{
false };
220 int MaxImageSize{ 4096 };
222 bool SimultaneousPlayback{
false };
229 IMSController(
const std::string&,
const std::string&,
const Capabilities&,
const FWVersion&,
const ImageTable&);
239 const Capabilities GetCap()
const;
242 const std::string& Description()
const;
245 const std::string& Model()
const;
251 const ImageTable& ImgTable()
const;
255 const bool IsValid()
const;
294 MHz lowerFrequency{ 0.0 };
296 MHz upperFrequency{ 250.0 };
306 int LUTAmplBits{ 12 };
308 int LUTPhaseBits{ 14 };
310 int LUTSyncABits{ 12 };
312 int LUTSyncDBits{ 12 };
317 IMSSynthesiser(
const std::string&,
const std::string&,
const Capabilities&,
const FWVersion&,
const FileSystemTable&);
332 const std::string& Description()
const;
335 const std::string& Model()
const;
342 const bool IsValid()
const;
345 const FileSystemTable& FST()
const;
366 IMSSystem(IConnectionManager*
const,
const std::string&);
406 IConnectionManager*
const Connection()
const;
425 const std::string& ConnPort()
const;
429 bool operator==(
IMSSystem const& rhs)
const;
438 #undef EXPIMP_TEMPLATE
Stores the version number of firmware running on iMS hardware.
Definition: IMSSystem.h:153
Returns information about the capabilities of the Synthesiser hardware.
Definition: IMSSystem.h:291
An object representing the overall configuration of an attached iMS System and permits applications t...
Definition: IMSSystem.h:361
Stores Capabilities, Description, Model & Version Number of an iMS Synthesiser.
Definition: IMSSystem.h:277
The entire API is encapsulated by the iMS namespace.
Definition: Auxiliary.h:95
IMSOption * AddOn
If there are any Options attached to the Synthesiser, these are accessed here, else a null pointer is...
Definition: IMSSystem.h:326
Type Definition for all operations that require a frequency specification in MegaHertz.
Definition: IMSTypeDefs.h:191
Returns information about the capabilities of the Controller hardware.
Definition: IMSSystem.h:213
Stores Capabilities, Description, Model & Version Number of an iMS Controller.
Definition: IMSSystem.h:199
An iMS Synthesiser can support one iMS Option, which adds an additional hardware function to the capa...
Definition: IMSSystem.h:131
Useful Type Definitions for working with iMS Systems.
Type Definition for all operations that require a frequency specification.
Definition: IMSTypeDefs.h:96