Isomet Modular Synthesiser (iMS) API  v1.4.2
iMS API
List of all members
iMS::ImageTableEntry Struct Reference

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.
 
ImageTableEntryoperator= (const ImageTableEntry &)
 Assignment Constructor.
 

Image Details

const ImageIndexHandle () 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...
 

Detailed Description

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.

Author
Dave Cowan
Date
2016-04-03
Since
1.2.1

Constructor & Destructor Documentation

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

Member Function Documentation

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.

Returns
an unsigned integer representing the absolute address of the Image in the Controller memory address space
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.

Returns
an unsigned integer representing the Image Format
const ImageIndex& iMS::ImageTableEntry::Handle ( ) const

Unique Image Handle within Index Table.

Returns
An Image handle referencing the location of the Image Entry within the Image Table
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).

Returns
a string object representing the description assigned to the Image
const int& iMS::ImageTableEntry::NPts ( ) const

the number of points in the Image

Returns
the number of points in the Image
const int& iMS::ImageTableEntry::Size ( ) const

the size of the Image in bytes

Returns
the size of the Image in bytes
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.

Returns
a 16 byte array containing the Image UUID.

The documentation for this struct was generated from the following file: