LiveTVPlayback::preferredCards_t LiveTVPlayback::FindTunableCardIds(const std::string& chanNum, const ChannelList& channels) { // Make the set of channels matching the desired channel number ChannelList chanset; for (ChannelList::const_iterator it = channels.begin(); it != channels.end(); ++it) { if ((*it)->chanNum == chanNum) chanset.push_back(*it); } // Retrieve unlocked encoders and fill the list of preferred cards. // It is ordered by its key liveTVOrder and contains matching between channels // and card inputs using their respective sourceId and mplexId std::vector<int> ids = GetFreeCardIdList(); preferredCards_t preferredCards; for (std::vector<int>::const_iterator itc = ids.begin(); itc != ids.end(); ++itc) { CardInputListPtr inputs = GetFreeInputs(*itc); for (CardInputList::const_iterator iti = inputs->begin(); iti != inputs->end(); ++iti) { for (ChannelList::const_iterator itchan = chanset.begin(); itchan != chanset.end(); ++itchan) { if ((*itchan)->sourceId == (*iti)->sourceId && ( (*iti)->mplexId == 0 || (*iti)->mplexId == (*itchan)->mplexId )) { preferredCards.insert(std::make_pair((*iti)->liveTVOrder, std::make_pair(*iti, *itchan))); DBG(MYTH_DBG_DEBUG, "%s: [%u] channel=%s(%" PRIu32 ") card=%" PRIu32 " input=%s(%" PRIu32 ") mplex=%" PRIu32 " source=%" PRIu32 "\n", __FUNCTION__, (*iti)->liveTVOrder, (*itchan)->callSign.c_str(), (*itchan)->chanId, (*iti)->cardId, (*iti)->inputName.c_str(), (*iti)->inputId, (*iti)->mplexId, (*iti)->sourceId); break; } } } } return preferredCards; }
void CBouquetManager::makeRemainingChannelsBouquet(void) { ChannelList unusedChannels; set<t_channel_id> chans_processed; for (vector<CBouquet*>::const_iterator it = Bouquets.begin(); it != Bouquets.end(); ++it) { for (vector<CZapitChannel*>::iterator jt = (*it)->tvChannels.begin(); jt != (*it)->tvChannels.end(); ++jt) chans_processed.insert((*jt)->getChannelID()); for (vector<CZapitChannel*>::iterator jt = (*it) ->radioChannels.begin(); jt != (*it)->radioChannels.end(); ++jt) chans_processed.insert((*jt)->getChannelID()); } // TODO: use locales remainChannels = addBouquet(Bouquets.empty() ? "Alle Kan\xC3\xA4le" : "Andere"); // UTF-8 encoded for (tallchans::iterator it = allchans.begin(); it != allchans.end(); ++it) if (chans_processed.find(it->first) == chans_processed.end()) unusedChannels.push_back(&(it->second)); sort(unusedChannels.begin(), unusedChannels.end(), CmpChannelByChName()); for (ChannelList::const_iterator it = unusedChannels.begin(); it != unusedChannels.end(); ++it) remainChannels->addService(findChannelByChannelID((*it)->getChannelID())); if ((remainChannels->tvChannels.empty()) && (remainChannels->radioChannels.empty())) { deleteBouquet(remainChannels); remainChannels = NULL; } }
ChannelList Chat::getChannelList(Player* player) { ChannelList list; NormalChannelMap::iterator itn; PrivateChannelMap::iterator it; bool gotPrivate = false; // If has guild if(player->getGuildId() && player->getGuildName().length()){ ChatChannel *channel = getChannel(player, 0x00); if(channel) list.push_back(channel); else if((channel = createChannel(player, 0x00))) list.push_back(channel); } for(itn = m_normalChannels.begin(); itn != m_normalChannels.end(); ++itn){ if(itn->first == 0x03 && !player->hasFlag(PlayerFlag_CanAnswerRuleViolations)){ //Rule violations channel continue; } ChatChannel *channel = itn->second; list.push_back(channel); } for(it = m_privateChannels.begin(); it != m_privateChannels.end(); ++it){ PrivateChatChannel* channel = it->second; if(channel){ if(channel->isInvited(player)) list.push_back(channel); if(channel->getOwner() == player->getGUID()) gotPrivate = true; } } if(!gotPrivate) list.push_front(dummyPrivate); return list; }
ChannelList Chat::getPublicChannels() const { ChannelList list; for(NormalChannelMap::const_iterator it = m_normalChannels.begin(); it != m_normalChannels.end(); ++it) { if(isPublicChannel(it->first)) list.push_back(it->second); } return list; }
SensorDataSet SensorDB::ExecuteSQL_SelectFromSensorDataTable(std::string sqlcommand) { SensorDataSet ds; ChannelList channelist; int channel_num; int datatype_id; int operator_id; int device_id; int position_id; int activity_id; int activitybeginframe_id; int activityendframe_id; double samplerate; QDateTime createtime; if(db.isOpen()){ QSqlQuery query; QString sqlcmd = string2qstring(sqlcommand); if(query.exec(sqlcmd)){ while(query.next()){ datatype_id = query.value("DataTypeID").toInt(); activity_id = query.value("ActivityID").toInt(); device_id = query.value("DeviceID").toInt(); operator_id = query.value("OperatorID").toInt(); position_id = query.value("PositionID").toInt(); activitybeginframe_id = query.value("ActivityBeginFrameID").toInt(); activityendframe_id = query.value("ActivityEndFrameID").toInt(); samplerate = query.value("SampleRate").toDouble(); createtime = query.value("CreateTime").toDateTime(); channel_num = query.value("TotalChannelNum").toInt(); channelist.clear(); for(int i=1;i<=channel_num;i++){ if(query.value(i).isNull()){ break; } string ch = "channel_"+int2string(i); //qDebug() << query.value(string2qstring(ch.c_str())).toString(); channelist.push_back(Channel(query.value(string2qstring(ch.c_str())).toString().toStdString())); //qDebug() << string2qstring((channelist[channelist.size()-1].ToString())); } ds.PushBackSensorData(SensorData(channelist,channel_num,datatype_id,operator_id,device_id,position_id, activity_id,activitybeginframe_id,activityendframe_id, samplerate,createtime)); } } else{ qDebug()<<query.lastError(); } } else{ qDebug()<<"DataBase is not opened"; } return ds; }
ChannelList Chat::getChannelList(Player* player) { ChannelList list; if(!player || player->isRemoved()) return list; ChatChannel* channel = NULL; if(player->getParty() && ((channel = getChannel(player, CHANNEL_PARTY)) || (channel = createChannel(player, CHANNEL_PARTY)))) list.push_back(channel); if(player->getGuildId() && player->getGuildName().length() && ((channel = getChannel( player, CHANNEL_GUILD)) || (channel = createChannel(player, CHANNEL_GUILD)))) list.push_back(channel); for(NormalChannelMap::iterator it = m_normalChannels.begin(); it != m_normalChannels.end(); ++it) { if((channel = getChannel(player, it->first))) list.push_back(it->second); } bool hasPrivate = false; PrivateChatChannel* privChannel = NULL; for(PrivateChannelMap::iterator pit = m_privateChannels.begin(); pit != m_privateChannels.end(); ++pit) { if(!(privChannel = pit->second)) continue; if(privChannel->isInvited(player)) list.push_back(privChannel); if(privChannel->getOwner() == player->getGUID()) hasPrivate = true; } if(!hasPrivate && player->isPremium()) list.push_front(dummyPrivate); return list; }
void EPoller::fillChannelEvents(int num, ChannelList& activeChannel) { if(num > _events.size()) { return; } LOGGER_STREAM(Logger::getLogger(LOGGER_NAME)) << "fillChannelEvents:" << "nums = " << num << "\n"; for(int i=0; i<num; i++) { Channel* pChannel = static_cast<Channel*>(_events[i].data.ptr); pChannel->setRevent(_events[i].events); activeChannel.push_back(pChannel); } }
ChannelList Chat::getChannelList(Player* player) { ChannelList list; NormalChannelMap::iterator itn; PrivateChannelMap::iterator it; bool gotPrivate = false; // If has guild if(player->getGuildId() && player->getGuildName().length()){ ChatChannel *channel = getChannel(player, CHANNEL_GUILD); if(channel) list.push_back(channel); else if((channel = createChannel(player, CHANNEL_GUILD))) list.push_back(channel); } if(player->getParty()){ ChatChannel *channel = getChannel(player, CHANNEL_PARTY); if(channel) list.push_back(channel); else if((channel = createChannel(player, CHANNEL_PARTY))) list.push_back(channel); } for(itn = m_normalChannels.begin(); itn != m_normalChannels.end(); ++itn){ if(!player->hasFlag(PlayerFlag_CannotBeMuted)){ if(itn->first == CHANNEL_TRADE && player->getVocationId() == 0) continue; if(itn->first == CHANNEL_TRADE_ROOK && player->getVocationId() != 0) continue; } ChatChannel *channel = itn->second; list.push_back(channel); } for(it = m_privateChannels.begin(); it != m_privateChannels.end(); ++it){ PrivateChatChannel* channel = it->second; if(channel){ if(channel->isInvited(player)) list.push_back(channel); if(channel->getOwner() == player->getGUID()) gotPrivate = true; } } if(!gotPrivate) list.push_front(dummyPrivate); return list; }
ChannelList Chat::getChannelList(const Player& player) { ChannelList list; if (player.getGuild()) { ChatChannel* channel = getChannel(player, CHANNEL_GUILD); if (channel) { list.push_back(channel); } else { channel = createChannel(player, CHANNEL_GUILD); if (channel) { list.push_back(channel); } } } if (player.getParty()) { ChatChannel* channel = getChannel(player, CHANNEL_PARTY); if (channel) { list.push_back(channel); } else { channel = createChannel(player, CHANNEL_PARTY); if (channel) { list.push_back(channel); } } } for (const auto& it : normalChannels) { ChatChannel* channel = getChannel(player, it.first); if (channel) { list.push_back(channel); } } bool hasPrivate = false; for (const auto& it : privateChannels) { if (PrivateChatChannel* channel = it.second) { uint32_t guid = player.getGUID(); if (channel->isInvited(guid)) { list.push_back(channel); } if (channel->getOwner() == guid) { hasPrivate = true; } } } if (!hasPrivate && player.isPremium()) { list.push_front(dummyPrivate); } return list; }
ChannelList Chat::getChannelList(Player* player) { ChannelList list; if (player->getGuild()) { ChatChannel* channel = getChannel(player, CHANNEL_GUILD); if (channel) { list.push_back(channel); } else { channel = createChannel(player, CHANNEL_GUILD); if (channel) { list.push_back(channel); } } } if (player->getParty()) { ChatChannel* channel = getChannel(player, CHANNEL_PARTY); if (channel) { list.push_back(channel); } else { channel = createChannel(player, CHANNEL_PARTY); if (channel) { list.push_back(channel); } } } for (NormalChannelMap::iterator it = m_normalChannels.begin(); it != m_normalChannels.end(); ++it) { ChatChannel* channel = getChannel(player, it->first); if (channel) { list.push_back(it->second); } } bool hasPrivate = false; for (PrivateChannelMap::iterator pit = m_privateChannels.begin(); pit != m_privateChannels.end(); ++pit) { if (PrivateChatChannel* channel = pit->second) { if (channel->isInvited(player)) { list.push_back(channel); } if (channel->getOwner() == player->getGUID()) { hasPrivate = true; } } } if (!hasPrivate && player->isPremium()) { list.push_front(dummyPrivate); } return list; }
void EpollPoller::fireActiveChannels(int numEvents, ChannelList& activeChannels) const { assert(static_cast<size_t>(numEvents) <= events_.size()); for (int i = 0; i < numEvents; ++i) { Channel *channel = static_cast<Channel*>(events_[i].data.ptr); assert(hasChannel(channel) && "the channel must be already exist"); //channel->set_revents(events_[i].events); int revents = FDEVENT_NONE; if (events_[i].events & EPOLLIN) revents |= FDEVENT_IN; if (events_[i].events & EPOLLPRI) revents |= FDEVENT_PRI; if (events_[i].events & EPOLLOUT) revents |= FDEVENT_OUT; if (events_[i].events & EPOLLERR) revents |= FDEVENT_ERR; if (events_[i].events & EPOLLHUP) revents |= FDEVENT_HUP; channel->set_revents(revents); activeChannels.push_back(channel); } }
void FdEventsKqueuer::fireActiveChannels(int numEvents, ChannelList& fdevents) const { assert(static_cast<size_t>(numEvents) <= events_.size()); for (int i = 0; i < numEvents; ++i) { //int fd = events_[i].ident; FdEvent *fde = static_cast<FdEvent*>(events_[i].udata); assert(hasChannel(fde) && "the channel must be already exist"); int revents = FDEVENT_NONE; if (events_[i].events & EVFILT_READ) revents |= FDEVENT_IN; if (events_[i].events & EVFILT_WRITE) revents |= FDEVENT_OUT; if (events_[i].flags & EV_EOF) revents |= FDEVENT_HUP; if (events_[i].flags & EV_ERROR) revents |= FDEVENT_ERR; fde->set_revents(revents); fdevents.push_back(fde); } }
SensorDataSet LoadData(string filepath){ ifstream in(filepath); string in_str=""; SensorDataSet sds; while(std::getline(in,in_str)){ if(!in_str.empty()){ QString qstr = string2qstring(in_str); QStringList qlist = qstr.split('\t'); ChannelList cl; int channelnum = qlist[7].toInt(); for (int i = 0; i <channelnum; i++) { cl.push_back(Channel(qlist[10+i].toStdString())); } sds.PushBackSensorData(SensorData(cl,channelnum,qlist[0].toInt(),qlist[3].toInt(),qlist[2].toInt(),qlist[4].toInt(),qlist[1].toInt(),qlist[8].toInt(),qlist[9].toInt(),qlist[5].toDouble(),QDateTime::fromString(qlist[6],"yyyy-MM-dd hh:mm:ss"))); } } in.close(); return sds; }
void PollPoller::fireActiveChannels(int numEvents, ChannelList& activeChannels) const { for (PollFdList::const_iterator it = pollfds_.begin(); numEvents > 0 && it != pollfds_.end() ; ++it) { if (it->revents > 0) { --numEvents; Channel *channel = getChannel(it->fd); assert(channel && "the channel must be already exist"); //channel->set_revents(it->revents); int revents = FDEVENT_NONE; if (it->revents & POLLIN) revents |= FDEVENT_IN; if (it->revents & POLLPRI) revents |= FDEVENT_PRI; if (it->revents & POLLOUT) revents |= FDEVENT_OUT; if (it->revents & POLLERR) revents |= FDEVENT_ERR; if (it->revents & POLLHUP) revents |= FDEVENT_HUP; if (it->revents & POLLNVAL) revents |= FDEVENT_NVAL; // never happen channel->set_revents(revents); activeChannels.push_back(channel); //LOG_INFO("PollPoller::fireActiveChannels [%d][%d]", it->fd, it->revents); } } }
bool LiveTVPlayback::SpawnLiveTV(const ChannelPtr& thisChannel) { ChannelList list; list.push_back(thisChannel); return SpawnLiveTV(thisChannel->chanNum, list); }