Isomet Modular Synthesiser (iMS) API
v1.4.2
iMS API
|
An ImageSequenceEntry object can be created by application software to specify the parameters by which an Image is played back during an ImageSequence. More...
#include <include/Image.h>
Public Member Functions | |
bool | operator== (ImageSequenceEntry const &rhs) const |
Equality Operator checks ImageSequenceEntry object for equivalence. More... | |
Constructors & Destructor | |
ImageSequenceEntry () | |
Default Constructor. | |
ImageSequenceEntry (const Image &img, const ImageRepeats &Rpt=ImageRepeats::NONE, const int rpts=0) | |
Construct ImageSequenceEntry object from Image object resident in application software. More... | |
ImageSequenceEntry (const ImageTableEntry &ite, const kHz &InternalClock=kHz(1.0), const ImageRepeats &Rpt=ImageRepeats::NONE, const int rpts=0) | |
Construct ImageSequenceEntry object from an Image resident in Controller memory referenced by its index table entry. More... | |
ImageSequenceEntry (const ImageTableEntry &ite, const int ExtClockDivide=1, const ImageRepeats &Rpt=ImageRepeats::NONE, const int rpts=0) | |
Construct ImageSequenceEntry object from an Image resident in Controller memory referenced by its index table entry. More... | |
~ImageSequenceEntry () | |
Destructor. | |
ImageSequenceEntry (const ImageSequenceEntry &) | |
Copy Constructor. | |
ImageSequenceEntry & | operator= (const ImageSequenceEntry &) |
Assignment Constructor. | |
Delay Settings | |
std::chrono::duration< double > & | PostImgDelay () |
Setter for post Image delay. More... | |
const std::chrono::duration< double > & | PostImgDelay () const |
Getter for post Image delay. More... | |
std::chrono::duration< double > & | SyncOutDelay () |
Setter for Synchronous Digital Output signal Delay. More... | |
const std::chrono::duration< double > & | SyncOutDelay () const |
Getter for Synchronous Digital Output signal delay. More... | |
Sequence Entry Parameters | |
const std::array< std::uint8_t, 16 > & | UUID () const |
Image Unique Identifier can be used to synchronise Sequence Entries with host software Image objects. More... | |
const int & | ExtDiv () const |
returns the programmed External Clock Divider ratio More... | |
const Frequency & | IntOsc () const |
returns the programmed Internal Oscillator Frequency More... | |
const ImageRepeats & | RptType () const |
returns the configured Repeat style More... | |
const int & | NumRpts () const |
returns the number of times to repeat an Image before moving to the next entry in the Sequence More... | |
An ImageSequenceEntry object can be created by application software to specify the parameters by which an Image is played back during an ImageSequence.
An ImageSequence contains a list of ImageSequenceEntry s each of which is programmed with one Image (or ImageTableEntry) specifying the ImagePoint data that will be output during playback. Additional parameters that can be specified include
iMS::ImageSequenceEntry::ImageSequenceEntry | ( | const Image & | img, |
const ImageRepeats & | Rpt = ImageRepeats::NONE , |
||
const int | rpts = 0 |
||
) |
Construct ImageSequenceEntry object from Image object resident in application software.
If using this construction method, the Internal Clock Rate or External Clock Divider, if required, should first be set using the Image::ClockRate() and Image::ExtClockDivide() functions.
The user can optionally specify the number of times to repeat the Image before moving on to the next entry in the sequence. The default is no repeats, and these parameters may then be ommitted.
img | A reference to the Image object which is to be played in the Sequence (must have been downloaded to Controller memory before playback) |
Rpt | An optional parameter specifying whether repeats are required (ImageRepeats::PROGRAM) or not (ImageRepeats::NONE) |
rpts | An optional integer specifying the number of repeats to perform (max 255). |
iMS::ImageSequenceEntry::ImageSequenceEntry | ( | const ImageTableEntry & | ite, |
const kHz & | InternalClock = kHz(1.0) , |
||
const ImageRepeats & | Rpt = ImageRepeats::NONE , |
||
const int | rpts = 0 |
||
) |
Construct ImageSequenceEntry object from an Image resident in Controller memory referenced by its index table entry.
This is the preferred method for constructing an ImageSequenceEntry object when the Image has already have been downloaded to the Controller. However, the Index Table in the Controller does not store default clock frequency or clock divider information, so this must be specified manually.
The user can optionally specify the number of times to repeat the Image before moving on to the next entry in the sequence. The default is no repeats, and these parameters may then be ommitted.
ite | A reference to the Image object from ite ImageTableEntry (can be retrieved from the IMSSystem object through an ImageTableViewer) |
InternalClock | Specifies the clock rate with which to program the Internal NCO oscillator (optional, defaults to 1kHz) |
Rpt | An optional parameter specifying whether repeats are required (ImageRepeats::PROGRAM) or not (ImageRepeats::NONE) |
rpts | An optional integer specifying the number of repeats to perform (max 255). |
iMS::ImageSequenceEntry::ImageSequenceEntry | ( | const ImageTableEntry & | ite, |
const int | ExtClockDivide = 1 , |
||
const ImageRepeats & | Rpt = ImageRepeats::NONE , |
||
const int | rpts = 0 |
||
) |
Construct ImageSequenceEntry object from an Image resident in Controller memory referenced by its index table entry.
This is the preferred method for constructing an ImageSequenceEntry object when the Image has already have been downloaded to the Controller. However, the Index Table in the Controller does not store default clock frequency or clock divider information, so this must be specified manually.
The user can optionally specify the number of times to repeat the Image before moving on to the next entry in the sequence. The default is no repeats, and these parameters may then be ommitted.
ite | A reference to the Image object from ite ImageTableEntry (can be retrieved from the IMSSystem object through an ImageTableViewer) |
ExtClockDivide | divides down the externally supplied clock signal by an integer ratio, e.g. 3 => update every 3rd clock edge (optional, default to 1, i.e. off) |
Rpt | An optional parameter specifying whether repeats are required (ImageRepeats::PROGRAM) or not (ImageRepeats::NONE) |
rpts | An optional integer specifying the number of repeats to perform (max 255). |
const int& iMS::ImageSequenceEntry::ExtDiv | ( | ) | const |
returns the programmed External Clock Divider ratio
const Frequency& iMS::ImageSequenceEntry::IntOsc | ( | ) | const |
const int& iMS::ImageSequenceEntry::NumRpts | ( | ) | const |
bool iMS::ImageSequenceEntry::operator== | ( | ImageSequenceEntry const & | rhs | ) | const |
Equality Operator checks ImageSequenceEntry object for equivalence.
[in] | rhs | An ImageSequenceEntry object to perform the comparison with |
std::chrono::duration<double>& iMS::ImageSequenceEntry::PostImgDelay | ( | ) |
Setter for post Image delay.
If the ImageSequence is configured to create a 'pause' at the end of playback for each Image in the sequence, the pause time can be programmed on a per entry basis using this function. Set SequenceManager::SeqConfiguration::trig to ImageTrigger::POST_DELAY to use this feature.
The Pause time may be specified as any std::chrono value using duration_cast but hardware limitations restrict the real delay time to a resolution of 0.1ms and a maximum of 6.5535s.
const std::chrono::duration<double>& iMS::ImageSequenceEntry::PostImgDelay | ( | ) | const |
Getter for post Image delay.
const ImageRepeats& iMS::ImageSequenceEntry::RptType | ( | ) | const |
returns the configured Repeat style
std::chrono::duration<double>& iMS::ImageSequenceEntry::SyncOutDelay | ( | ) |
Setter for Synchronous Digital Output signal Delay.
The Synchronous Digital Output signals of the Synthesiser can be used to output data from either the FAP Synchronous digital field or from entries in the Compensation Look Up Table. The data updates at the same time as the Image data updated the RF output. Using the SyncOutDelay field, the data can be shifted in time to compensate for latency in the system or to, for example, delay a trigger pulse to the middle of an RF Image Point.
The Delay time may be specified as any std::chrono value using duration_cast but hardware limitations restrict the real delay time to a minimum of 0.01us and a maximum of 655.35us.
const std::chrono::duration<double>& iMS::ImageSequenceEntry::SyncOutDelay | ( | ) | const |
Getter for Synchronous Digital Output signal delay.
const std::array<std::uint8_t, 16>& iMS::ImageSequenceEntry::UUID | ( | ) | const |
Image Unique Identifier can be used to synchronise Sequence 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. Sequences are internally specified using the UUID of an Image to ensure absolute consistency with the Image stored in Controller memory and referenced in the Index table. The User can check whether an Image object matches the Image referenced in a ImageSequenceEntry by comparing its UUID.