Isomet Modular Synthesiser (iMS) API
v1.4.2
iMS API
|
An ImageTableEntry is created by the SDK on connecting to an iMS System, one for each Image that is stored in Controller memory and allocated in the Image Index Table. Further ImageTableEntries are added to the table each time an Image is downloaded to the Controller. More...
#include <include/Image.h>
Public Member Functions | |
Constructors & Destructor | |
ImageTableEntry () | |
Default Constructor. More... | |
ImageTableEntry (ImageIndex handle, std::uint32_t address, int n_pts, int size, std::uint32_t fmt, std::array< std::uint8_t, 16 > uuid, std::string name) | |
Full Specification Constructor. | |
ImageTableEntry (ImageIndex handle, const std::vector< std::uint8_t > &) | |
Construct object from byte array in binary format specific to Controller communications. Used internally to build ImageTableEntries. | |
~ImageTableEntry () | |
Destructor. | |
ImageTableEntry (const ImageTableEntry &) | |
Copy Constructor. | |
ImageTableEntry & | operator= (const ImageTableEntry &) |
Assignment Constructor. | |
Image Details | |
const ImageIndex & | Handle () const |
Unique Image Handle within Index Table. More... | |
const std::uint32_t & | Address () const |
Byte Address of Start of Image data stored within the Controller's Memory. More... | |
const int & | NPts () const |
the number of points in the Image More... | |
const int & | Size () const |
the size of the Image in bytes More... | |
const std::uint32_t & | Format () const |
A Format Specifier relates the byte structure of the Image in Controller Memory to Image Physical Data. More... | |
const std::array< std::uint8_t, 16 > & | UUID () const |
Image Unique Identifier can be used to synchronise Image Entries with host software Image objects. More... | |
const std::string & | Name () const |
Descriptive Name assigned to an Image to aid User Recognition. More... | |
An ImageTableEntry is created by the SDK on connecting to an iMS System, one for each Image that is stored in Controller memory and allocated in the Image Index Table. Further ImageTableEntries are added to the table each time an Image is downloaded to the Controller.
An ImageTableEntry should not be created by user software since it cannot be used to download Images to an iMS Controller and will not bear any relation to an existing Image on the Controller. Instead, an ImageDownload operation should be performed on an Image object to send the Image data to Controller memory which will automatically create the index data in the Image Index Table.
An ImageTableEntry can then be returned from an ImageTableViewer::operator [] function call into the IMSSystem object.
This will result in being able to access relevant information about Images currently on the Controller, including Image Memory Size, number of Image points, address in memory, Name etc.
The returned ImageTableEntry object may also be passed to either an ImagePlayer or ImageSequenceEntry object to permit playback of Images on the Controller.
iMS::ImageTableEntry::ImageTableEntry | ( | ) |
Default Constructor.
It should not be necessary to construct an ImageTableEntry object since this will be done automatically by the SDK on connection to an iMS System or after ImageDownload completes. Entries may then be referenced through the ImageTableViewer class
const std::uint32_t& iMS::ImageTableEntry::Address | ( | ) | const |
Byte Address of Start of Image data stored within the Controller's Memory.
This is usually for information only as the ImageDownload class in conjunction with Controller firmware will select a memory location with sufficient free capacity. User software is never responsible for memory management and does not require the address for Image operations.
const std::uint32_t& iMS::ImageTableEntry::Format | ( | ) | const |
A Format Specifier relates the byte structure of the Image in Controller Memory to Image Physical Data.
An Image as created in application software consists of physical information such as "frequency of channel 1 at Image Point 1000". This must be translated into a byte format that is understood by the hardware to create the RF signal. There are a number of optimisations that can be performed to trade off between flexibility and update speed, the mapping between real and physical Image data is described by the Format value.
const ImageIndex& iMS::ImageTableEntry::Handle | ( | ) | const |
const std::string& iMS::ImageTableEntry::Name | ( | ) | const |
Descriptive Name assigned to an Image to aid User Recognition.
Each Image can be assigned a descriptive name to help identify its purpose. The first 16 bytes are transferred to the Controller during Image Download. The Name is optional and will return an empty string if not used. Be aware that due to the 16 byte limitation, the Name returned from the ImageTableEntry may differ from the name assigned to the Image in application software (whose length is unlimited).
const int& iMS::ImageTableEntry::NPts | ( | ) | const |
const int& iMS::ImageTableEntry::Size | ( | ) | const |
const std::array<std::uint8_t, 16>& iMS::ImageTableEntry::UUID | ( | ) | const |
Image Unique Identifier can be used to synchronise Image Entries with host software Image objects.
Each Image created in application software is automatically assigned a Unique ID (UUID) which is updated anytime the Image is modified. The UUID is downloaded to the Image Table along with the Image and can be used to establish whether an Image resident in memory is identical to an Image present in application software, without having to upload the Image data.
The UUID is also the mechanism that allows Sequences to be created from individual Images, either directly from the Image object, or from Images in Controller memory via the ImageTableEntry.