本文整理汇总了C++中Playlist::getAutoplaySettings方法的典型用法代码示例。如果您正苦于以下问题:C++ Playlist::getAutoplaySettings方法的具体用法?C++ Playlist::getAutoplaySettings怎么用?C++ Playlist::getAutoplaySettings使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Playlist
的用法示例。
在下文中一共展示了Playlist::getAutoplaySettings方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: immediateAutoplayStart
void immediateAutoplayStart() {
Playlist *p = Playlists::currentPlaylist();
AutoplayStructure settings;
p->getAutoplaySettings(&settings);
immediateAutoplayCount = min(settings.maxChirps, p->nChirps); // items to play
immediateAutoplayTimeSeconds = 0; // will play immediately
}
示例2: autoplayLoop
void autoplayLoop() {
static int32_t then; // now field from last time in loop
int32_t now = timeNowSecondsSinceMidnight();
int16_t nowMinute = now / 60;
// start any new autoplays
if(nowMinute > then / 60 || autoplayNow) {
// its a new minute; check the playlists to see if any due to start autoplaying this minute
autoplayNow = false;
for(int ix = 0; ix < N_PLAYLISTS; ix++) {
Playlist *p = Playlists::playlist(ix);
if(p->nChirps > 0 && p->autoplayCount == 0) { // only check if playlist has chirps and isn't already playing
AutoplayStructure settings;
p->getAutoplaySettings(&settings);
int16_t startMinute = settings.startMinute;
// run through all start times for playlist
// doesn't play before initial start time and doesn't continue repeating past midnight
for(uint8_t n = 0; n < settings.count && nowMinute >= startMinute && startMinute < minutesInOneDay; n++) {
if(startMinute == nowMinute) {
if(p->getUpdateFlags() & UPDATE_WHEN_AUTOPLAY) {
p->requestUpdate();
}
// setting non-zero count makes autoplay active
p->autoplayCount = min(settings.maxChirps, p->nChirps);
p->autoplayTimeSeconds = 0; // play as soon as possible
break;
}
startMinute += settings.repeatMinutes;
}
}
}
}
// autoplay up to one chirp per new second
if(now > then) {
// it's a new second
// first check to see if current playlist is being autoplayed from the command line
if(immediateAutoplayCount > 0 && now >= immediateAutoplayTimeSeconds) {
Playlist *p = Playlists::currentPlaylist();
if(p->playSequenced()) {
immediateAutoplayCount--;
immediateAutoplayTimeSeconds = now + p->getInterval();
}
else {
// empty playlist: turn off
immediateAutoplayCount = 0;
}
if(immediateAutoplayCount == 0) {
showPrompt();
}
}
else {
// check any timed autoplaying playlists for any due to play now
for(int ix = 0; ix < N_PLAYLISTS; ix++) {
Playlist *p = Playlists::playlist(ix);
if(p->autoplayCount > 0 && now >= p->autoplayTimeSeconds && p->awaitingUpdate == NOT_AWAITING_UPDATE) {
if(p->playSequenced()) {
p->autoplayCount--;
p->autoplayTimeSeconds = now + p->getInterval();
break; // only one play per vsit to this function
}
else {
p->autoplayCount = 0; // empty playlist (shouldn't happen here)
}
}
}
}
}
then = now;
}