Constituent::Constituent(TLorentzVector const &momentum, LorentzVector<Length> const &position) { DEBUG0; momentum_ = momentum; position_ = position; Smearing(); // Delphes does not smear the position vector SetTracker(); }
void CommBreakMap::SetAutoCommercialSkip(CommSkipMode autoskip, uint64_t framesplayed) { QMutexLocker locker(&commBreakMapLock); SetTracker(framesplayed); uint next = (kCommSkipIncr == autoskip) ? (uint) autocommercialskip + 1 : (uint) autoskip; autocommercialskip = (CommSkipMode) (next % kCommSkipCount); }
Constituent::Constituent(TLorentzVector const &momentum, LorentzVector<Length> const &position, boca::Family const &family, boca::DetectorPart detector_part, int charge) { DEBUG0; momentum_ = momentum; position_ = position; Smearing(); // Delphes does not smear the position vector SetTracker(); detector_part_ = detector_part; charge_ = charge; families_.emplace_back(family); }
void CommBreakMap::SetMap(const frm_dir_map_t &newMap, uint64_t framesPlayed) { QMutexLocker locker(&m_commBreakMapLock); LOG(VB_COMMFLAG, LOG_INFO, LOC + QString("Setting New Commercial Break List, old size %1, new %2") .arg(m_commBreakMap.size()).arg(newMap.size())); m_commBreakMap.clear(); m_commBreakMap = newMap; m_hascommbreaktable = !m_commBreakMap.isEmpty(); SetTracker(framesPlayed); }
void CommBreakMap::LoadMap(PlayerContext *player_ctx, uint64_t framesPlayed) { if (!player_ctx) return; QMutexLocker locker(&commBreakMapLock); player_ctx->LockPlayingInfo(__FILE__, __LINE__); if (player_ctx->playingInfo) { commBreakMap.clear(); player_ctx->playingInfo->QueryCommBreakList(commBreakMap); hascommbreaktable = !commBreakMap.isEmpty(); SetTracker(framesPlayed); } player_ctx->UnlockPlayingInfo(__FILE__, __LINE__); }
bool CommBreakMap::DoSkipCommercials(uint64_t &jumpToFrame, uint64_t framesPlayed, double video_frame_rate, uint64_t totalFrames, QString &comm_msg) { QMutexLocker locker(&commBreakMapLock); if ((skipcommercials == (0 - lastCommSkipDirection)) && ((time(NULL) - lastCommSkipTime) <= 5)) { comm_msg = QObject::tr("Skipping Back."); if (lastCommSkipStart > (2.0 * video_frame_rate)) lastCommSkipStart -= (long long) (2.0 * video_frame_rate); lastCommSkipDirection = 0; lastCommSkipTime = time(NULL); jumpToFrame = lastCommSkipStart; return true; } lastCommSkipDirection = skipcommercials; lastCommSkipStart = framesPlayed; lastCommSkipTime = time(NULL); SetTracker(framesPlayed); if ((commBreakIter == commBreakMap.begin()) && (skipcommercials < 0)) { comm_msg = QObject::tr("Start of program."); jumpToFrame = 0; return true; } if ((skipcommercials > 0) && ((commBreakIter == commBreakMap.end()) || ((totalFrames) && ((commBreakIter.key() + (10 * video_frame_rate)) > totalFrames)))) { comm_msg = QObject::tr("At End, cannot Skip."); return false; } if (skipcommercials < 0) { commBreakIter--; int skipped_seconds = (int)(((int64_t)(commBreakIter.key()) - (int64_t)framesPlayed) / video_frame_rate); // special case when hitting 'skip backwards' <3 seconds after break if (skipped_seconds > -3) { if (commBreakIter == commBreakMap.begin()) { comm_msg = QObject::tr("Start of program."); jumpToFrame = 0; return true; } else commBreakIter--; } } else { int skipped_seconds = (int)(((int64_t)(commBreakIter.key()) - (int64_t)framesPlayed) / video_frame_rate); // special case when hitting 'skip' within 20 seconds of the break // start or within commrewindamount of the break end // Even though commrewindamount has a max of 10 per the settings UI, // check for MARK_COMM_END to make the code generic MarkTypes type = *commBreakIter; if (((type == MARK_COMM_START) && (skipped_seconds < 20)) || ((type == MARK_COMM_END) && (skipped_seconds < commrewindamount))) { commBreakIter++; if ((commBreakIter == commBreakMap.end()) || ((totalFrames) && ((commBreakIter.key() + (10 * video_frame_rate)) > totalFrames))) { comm_msg = QObject::tr("At End, cannot Skip."); return false; } } } if (skipcommercials > 0) MergeShortCommercials(video_frame_rate); int skipped_seconds = (int)(((int64_t)(commBreakIter.key()) - (int64_t)framesPlayed) / video_frame_rate); QString skipTime; skipTime.sprintf("%d:%02d", skipped_seconds / 60, abs(skipped_seconds) % 60); if ((lastIgnoredManualSkip.secsTo(QDateTime::currentDateTime()) > 3) && (abs(skipped_seconds) >= maxskip)) { comm_msg = QObject::tr("Too Far %1").arg(skipTime); lastIgnoredManualSkip = QDateTime::currentDateTime(); return false; } comm_msg = QObject::tr("Skip %1").arg(skipTime); uint64_t jumpto = (skipcommercials > 0) ? commBreakIter.key() - (long long)(commrewindamount * video_frame_rate): commBreakIter.key(); commBreakIter++; jumpToFrame = jumpto; return true; }
bool CommBreakMap::AutoCommercialSkip(uint64_t &jumpToFrame, uint64_t framesPlayed, double video_frame_rate, uint64_t totalFrames, QString &comm_msg) { QMutexLocker locker(&commBreakMapLock); if (!hascommbreaktable) return false; if (((time(NULL) - lastSkipTime) <= 3) || ((time(NULL) - lastCommSkipTime) <= 3)) { SetTracker(framesPlayed); return false; } if (commBreakIter == commBreakMap.end()) return false; if (*commBreakIter == MARK_COMM_END) commBreakIter++; if (commBreakIter == commBreakMap.end()) return false; if (!((*commBreakIter == MARK_COMM_START) && (((kCommSkipOn == autocommercialskip) && (framesPlayed >= commBreakIter.key())) || ((kCommSkipNotify == autocommercialskip) && (framesPlayed + commnotifyamount * video_frame_rate >= commBreakIter.key()))))) { return false; } LOG(VB_COMMFLAG, LOG_INFO, LOC + QString("AutoCommercialSkip(), current framesPlayed %1, commBreakIter " "frame %2, incrementing commBreakIter") .arg(framesPlayed).arg(commBreakIter.key())); ++commBreakIter; MergeShortCommercials(video_frame_rate); if (commBreakIter == commBreakMap.end()) { LOG(VB_COMMFLAG, LOG_INFO, LOC + "AutoCommercialSkip(), at end of " "commercial break list, will not skip."); return false; } if (*commBreakIter == MARK_COMM_START) { LOG(VB_COMMFLAG, LOG_INFO, LOC + "AutoCommercialSkip(), new " "commBreakIter mark is another start, " "will not skip."); return false; } if (totalFrames && ((commBreakIter.key() + (10 * video_frame_rate)) > totalFrames)) { LOG(VB_COMMFLAG, LOG_INFO, LOC + "AutoCommercialSkip(), skipping would " "take us to the end of the file, will " "not skip."); return false; } LOG(VB_COMMFLAG, LOG_INFO, LOC + QString("AutoCommercialSkip(), new commBreakIter frame %1") .arg(commBreakIter.key())); int skipped_seconds = (int)((commBreakIter.key() - framesPlayed) / video_frame_rate); QString skipTime; skipTime.sprintf("%d:%02d", skipped_seconds / 60, abs(skipped_seconds) % 60); if (kCommSkipOn == autocommercialskip) comm_msg = QString(QObject::tr("Skip %1")).arg(skipTime); else comm_msg = QString(QObject::tr("Commercial: %1")).arg(skipTime); if (kCommSkipOn == autocommercialskip) { LOG(VB_COMMFLAG, LOG_INFO, LOC + QString("AutoCommercialSkip(), auto-skipping to frame %1") .arg(commBreakIter.key() - (int)(commrewindamount * video_frame_rate))); lastCommSkipDirection = 1; lastCommSkipStart = framesPlayed; lastCommSkipTime = time(NULL); jumpToFrame = commBreakIter.key() - (int)(commrewindamount * video_frame_rate); return true; } ++commBreakIter; return false; }
void DSKY::ProcessChannel10(ChannelValue val){ ChannelValue10 out_val; char C1, C2; out_val.Value = val.to_ulong(); C1 = ValueChar(out_val.Bits.c); C2 = ValueChar(out_val.Bits.d); switch (out_val.Bits.a) { case 11: Prog[0] = C1; Prog[1] = C2; break; case 10: Verb[0] = C1; Verb[1] = C2; break; case 9: Noun[0] = C1; Noun[1] = C2; break; case 8: R1[1] = C2; break; case 7: R1[2] = C1; R1[3] = C2; if (out_val.Bits.b) { R1[0] = '+'; } else if (R1[0] == '+') { R1[0] = ' '; } break; case 6: R1[4] = C1; R1[5] = C2; if (out_val.Bits.b) { R1[0] = '-'; } else if (R1[0] == '-') { R1[0] = ' '; } break; case 5: R2[1] = C1; R2[2] = C2; if (out_val.Bits.b) { R2[0] = '+'; } else if (R2[0] == '+') { R2[0] = ' '; } break; case 4: R2[3] = C1; R2[4] = C2; if (out_val.Bits.b) { R2[0] = '-'; } else if (R2[0] == '-') { R2[0] = ' '; } break; case 3: R2[5] = C1; R3[1] = C2; break; case 2: R3[2] = C1; R3[3] = C2; if (out_val.Bits.b) { R3[0] = '+'; } else if (R3[0] == '+') { R3[0] = ' '; } break; case 1: R3[4] = C1; R3[5] = C2; if (out_val.Bits.b) { R3[0] = '-'; } else if (R3[0] == '-') { R3[0] = ' '; } break; // 12 - set light states. case 12: SetVel((out_val.Value & (1 << 2)) != 0); SetNoAtt((out_val.Value & (1 << 3)) != 0); SetAlt((out_val.Value & (1 << 4)) != 0); SetGimbalLock((out_val.Value & (1 << 5)) != 0); SetTracker((out_val.Value & (1 << 7)) != 0); SetProg((out_val.Value & (1 << 8)) != 0); break; } }