本文整理汇总了C++中BeatsPointer::getCapabilities方法的典型用法代码示例。如果您正苦于以下问题:C++ BeatsPointer::getCapabilities方法的具体用法?C++ BeatsPointer::getCapabilities怎么用?C++ BeatsPointer::getCapabilities使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BeatsPointer
的用法示例。
在下文中一共展示了BeatsPointer::getCapabilities方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: slotAdjustBeatsSlower
void BpmControl::slotAdjustBeatsSlower(double v) {
BeatsPointer pBeats = m_pBeats;
if (v > 0 && pBeats && (pBeats->getCapabilities() & Beats::BEATSCAP_SETBPM)) {
double new_bpm = math_max(10.0, pBeats->getBpm() - .01);
pBeats->setBpm(new_bpm);
}
}
示例2: populateFields
void DlgTrackInfo::populateFields(TrackPointer pTrack) {
setWindowTitle(pTrack->getTitle());
// Editable fields
txtTrackName->setText(pTrack->getTitle());
txtArtist->setText(pTrack->getArtist());
txtAlbum->setText(pTrack->getAlbum());
txtAlbumArtist->setText(pTrack->getAlbumArtist());
txtGenre->setText(pTrack->getGenre());
txtComposer->setText(pTrack->getComposer());
txtGrouping->setText(pTrack->getGrouping());
txtYear->setText(pTrack->getYear());
txtTrackNumber->setText(pTrack->getTrackNumber());
txtComment->setText(pTrack->getComment());
spinBpm->setValue(pTrack->getBpm());
// Non-editable fields
txtDuration->setText(pTrack->getDurationStr());
txtFilepath->setText(pTrack->getFilename());
txtLocation->setText(pTrack->getLocation());
txtType->setText(pTrack->getType());
txtBitrate->setText(QString(pTrack->getBitrateStr()) + (" ") + tr("kbps"));
txtBpm->setText(pTrack->getBpmStr());
txtKey->setText(pTrack->getKeyText());
BeatsPointer pBeats = pTrack->getBeats();
bool beatsSupportsSet = !pBeats || (pBeats->getCapabilities() & Beats::BEATSCAP_SET);
bool enableBpmEditing = !pTrack->hasBpmLock() && beatsSupportsSet;
spinBpm->setEnabled(enableBpmEditing);
bpmTap->setEnabled(enableBpmEditing);
bpmDouble->setEnabled(enableBpmEditing);
bpmHalve->setEnabled(enableBpmEditing);
bpmTwoThirds->setEnabled(enableBpmEditing);
bpmThreeFourth->setEnabled(enableBpmEditing);
}
示例3: slotTranslateBeatsEarlier
void BpmControl::slotTranslateBeatsEarlier(double v) {
BeatsPointer pBeats = m_pBeats;
if (v > 0 && pBeats &&
(pBeats->getCapabilities() & Beats::BEATSCAP_TRANSLATE)) {
const int translate_dist = getSampleOfTrack().rate * -.01;
pBeats->translate(translate_dist);
}
}
示例4: slotTranslateBeatsLater
void BpmControl::slotTranslateBeatsLater(double v) {
BeatsPointer pBeats = m_pBeats;
if (v > 0 && pBeats &&
(pBeats->getCapabilities() & Beats::BEATSCAP_TRANSLATE)) {
// TODO(rryan): Track::getSampleRate is possibly inaccurate!
const int translate_dist = getSampleOfTrack().rate * .01;
pBeats->translate(translate_dist);
}
}
示例5: slotBeatsTranslateMatchAlignment
void BpmControl::slotBeatsTranslateMatchAlignment(double v) {
BeatsPointer pBeats = m_pBeats;
if (v > 0 && pBeats && (pBeats->getCapabilities() & Beats::BEATSCAP_TRANSLATE)) {
// Must reset the user offset *before* calling getPhaseOffset(),
// otherwise it will always return 0 if master sync is active.
m_dUserOffset.setValue(0.0);
double offset = getPhaseOffset(getSampleOfTrack().current);
pBeats->translate(-offset);
}
}
示例6: slotBeatsTranslate
void BpmControl::slotBeatsTranslate(double v) {
BeatsPointer pBeats = m_pBeats;
if (v > 0 && pBeats && (pBeats->getCapabilities() & Beats::BEATSCAP_TRANSLATE)) {
double currentSample = getSampleOfTrack().current;
double closestBeat = pBeats->findClosestBeat(currentSample);
int delta = currentSample - closestBeat;
if (delta % 2 != 0) {
delta--;
}
pBeats->translate(delta);
}
}