void TimeCode::setFrame (int value) { if (value < 0 || value > 59) throw Iex::ArgExc ("Cannot set frame field in time code. " "New value is out of range."); setBitField (_time, 0, 5, binaryToBcd (value)); }
void TimeCode::setSeconds (int value) { if (value < 0 || value > 59) throw Iex::ArgExc ("Cannot set seconds field in time code. " "New value is out of range."); setBitField (_time, 8, 14, binaryToBcd (value)); }
void TimeCode::setMinutes (int value) { if (value < 0 || value > 59) throw Iex::ArgExc ("Cannot set minutes field in time code. " "New value is out of range."); setBitField (_time, 16, 22, binaryToBcd (value)); }
void TimeCode::setHours (int value) { if (value < 0 || value > 23) throw Iex::ArgExc ("Cannot set hours field in time code. " "New value is out of range."); setBitField (_time, 24, 29, binaryToBcd (value)); }
uint64_t encodeCanSignal(CanSignal* signal, float value, uint64_t data) { float rawValue = (value - signal->offset) / signal->factor; if(rawValue > 0) { // round up to avoid losing precision when we cast to an int rawValue += 0.5; } setBitField(&data, rawValue, signal->bitPosition, signal->bitSize); return data; }
void TimeCode::setBinaryGroup (int group, int value) { if (group < 1 || group > 8) throw Iex::ArgExc ("Cannot extract binary group from time code " "user data. Group number is out of range."); int minBit = 4 * (group - 1); int maxBit = minBit + 3; setBitField (_user, minBit, maxBit, (unsigned int) value); }
void TimeCode::setBgf2 (bool value) { setBitField (_time, 31, 31, (unsigned int) !!value); }
void TimeCode::setBgf0 (bool value) { setBitField (_time, 23, 23, (unsigned int) !!value); }
void TimeCode::setFieldPhase (bool value) { setBitField (_time, 15, 15, (unsigned int) !!value); }
void TimeCode::setColorFrame (bool value) { setBitField (_time, 7, 7, (unsigned int) !!value); }
void TimeCode::setDropFrame (bool value) { setBitField (_time, 6, 6, (unsigned int) !!value); }