diff --git a/src/gui/epgplus.cpp b/src/gui/epgplus.cpp index a3e30cc69..d1f6e199b 100644 --- a/src/gui/epgplus.cpp +++ b/src/gui/epgplus.cpp @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -369,6 +370,7 @@ void EpgPlus::ChannelEntry::paint (bool isSelected, time_t selectedTime) this->width - 4, this->displayName, isSelected ? COL_MENUCONTENTSELECTED : COL_MENUCONTENT, 0, true); if (isSelected) { +#if 0 for (uint32_t i = 0; i < this->bouquetList->Bouquets.size(); ++i) { CBouquet *bouquet = this->bouquetList->Bouquets[i]; for (int j = 0; j < bouquet->channelList->getSize(); ++j) { @@ -385,6 +387,15 @@ void EpgPlus::ChannelEntry::paint (bool isSelected, time_t selectedTime) if (bouquet == NULL) break; } +#endif + if(this->channel->pname) { + this->footer->setBouquetChannelName(this->channel->pname, this->channel->getName()); + } else { + sat_iterator_t sit = satellitePositions.find(this->channel->getSatellitePosition()); + if(sit != satellitePositions.end()) { + this->footer->setBouquetChannelName(sit->second.name, this->channel->getName()); + } + } } // paint the separation line if (separationLineHeight > 0) { diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index 9faeb089a..72245262e 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -900,13 +900,30 @@ static cDemux * dmx; int CStreamInfo2::ts_setup () { +#if 0 if (g_RemoteControl->current_PIDs.PIDs.vpid == 0) return -1; +#endif + unsigned short vpid, apid = 0; + + vpid = g_RemoteControl->current_PIDs.PIDs.vpid; + if(g_RemoteControl->current_PIDs.APIDs.size() > 0) + apid = g_RemoteControl->current_PIDs.APIDs[g_RemoteControl->current_PIDs.PIDs.selected_apid].pid; + + if(vpid == 0 && apid == 0) + return -1; dmx = new cDemux(1); - dmx->Open(DMX_TP_CHANNEL, NULL, 3008 * 62); - dmx->pesFilter(g_RemoteControl->current_PIDs.PIDs.vpid); + dmx->Open(DMX_TP_CHANNEL, NULL, 3 * 3008 * 62); + + if(vpid > 0) { + dmx->pesFilter(vpid); + if(apid > 0) + dmx->addPid(apid); + } else + dmx->pesFilter(apid); + dmx->Start(); gettimeofday (&first_tv, NULL); diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index 316d052a1..b47d49663 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -1147,7 +1147,7 @@ int CTimerList::newTimer() mwtv->addItem(new CMenuForwarderNonLocalized((*channels)[j]->getName().c_str(), true, NULL, this, (std::string(cChannelId) + (*channels)[j]->getName()).c_str())); } if (!channels->empty()) - mctv.addItem(new CMenuForwarderNonLocalized(g_bouquetManager->Bouquets[i]->Name.c_str(), true, NULL, mwtv)); + mctv.addItem(new CMenuForwarderNonLocalized(g_bouquetManager->Bouquets[i]->bFav ? g_Locale->getText(LOCALE_FAVORITES_BOUQUETNAME) : g_bouquetManager->Bouquets[i]->Name.c_str() /*g_bouquetManager->Bouquets[i]->Name.c_str()*/, true, NULL, mwtv)); channels = &(g_bouquetManager->Bouquets[i]->radioChannels); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index b630b5b07..8897d5f74 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2612,24 +2612,22 @@ int CNeutrinoApp::run(int argc, char **argv) if (display_language_selection) { hintBox->hide(); - if(ShowMsgUTF (LOCALE_WIZARD_WELCOME_HEAD, g_Locale->getText(LOCALE_WIZARD_WELCOME_TEXT), CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbrCancel) == CMessageBox::mbrYes) { - languageSettings.setWizardMode(true); - int ret = languageSettings.exec(NULL, ""); - languageSettings.setWizardMode(false); + languageSettings.setWizardMode(true); + languageSettings.exec(NULL, ""); + languageSettings.setWizardMode(false); - if(ret != menu_return::RETURN_EXIT_ALL) { - videoSettings->setWizardMode(true); - videoSettings->exec(NULL, ""); - videoSettings->setWizardMode(false); - } + if(ShowMsgUTF (LOCALE_WIZARD_WELCOME_HEAD, g_Locale->getText(LOCALE_WIZARD_WELCOME_TEXT), CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbrCancel) == CMessageBox::mbrYes) { + videoSettings->setWizardMode(true); + ret = videoSettings->exec(NULL, ""); + videoSettings->setWizardMode(false); if(ret != menu_return::RETURN_EXIT_ALL) { colorSettings.setWizardMode(true); - colorSettings.exec(NULL, ""); + ret = colorSettings.exec(NULL, ""); colorSettings.setWizardMode(false); } if(ret != menu_return::RETURN_EXIT_ALL) { networkSettings.setWizardMode(true); - networkSettings.exec(NULL, ""); + ret = networkSettings.exec(NULL, ""); networkSettings.setWizardMode(false); } if(ret != menu_return::RETURN_EXIT_ALL) { diff --git a/src/sectionsd/sectionsd.cpp b/src/sectionsd/sectionsd.cpp index 4a18eff3b..acfa1cb64 100644 --- a/src/sectionsd/sectionsd.cpp +++ b/src/sectionsd/sectionsd.cpp @@ -809,7 +809,7 @@ static void addEvent(const SIevent &evt, const unsigned table_id, const time_t z (si->second->linkage_descs[i].transportStreamId != evt.linkage_descs[i].transportStreamId) || (strcmp(si->second->linkage_descs[i].name.c_str(), - evt.linkage_descs[i].name.c_str()) != 0)){ + evt.linkage_descs[i].name.c_str()) != 0)) { already_exists = false; break; } @@ -817,7 +817,7 @@ static void addEvent(const SIevent &evt, const unsigned table_id, const time_t z } } - if ((already_exists) && (evt.linkage_descs.size() > 0)) { + if ((already_exists) && (evt.ratings.size() > 0)) { if (si->second->ratings.size() != evt.ratings.size()) already_exists = false; else { @@ -825,7 +825,7 @@ static void addEvent(const SIevent &evt, const unsigned table_id, const time_t z SIparentalRatings::iterator p2 = evt.ratings.begin(); while ((p1 != si->second->ratings.end()) && (p2 != evt.ratings.end())) { if ((p1->rating != p2->rating) || - (strcmp(p1->countryCode.c_str(),p2->countryCode.c_str()) != 0)){ + (strcmp(p1->countryCode.c_str(),p2->countryCode.c_str()) != 0)) { already_exists = false; break; } @@ -843,8 +843,10 @@ static void addEvent(const SIevent &evt, const unsigned table_id, const time_t z SItimes::iterator t2 = evt.times.begin(); while ((t1 != si->second->times.end()) && (t2 != evt.times.end())) { if ((t1->startzeit != t2->startzeit) || - (t1->dauer != t2->dauer)) + (t1->dauer != t2->dauer)) { already_exists = false; + break; + } t1++; t2++; } @@ -890,7 +892,7 @@ static void addEvent(const SIevent &evt, const unsigned table_id, const time_t z if (mySIeventsOrderUniqueKey.size() >= max_events) { //FIXME: Set Old Events to 0 if limit is reached... MySIeventsOrderFirstEndTimeServiceIDEventUniqueKey::iterator lastEvent = - mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.end(); + mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.end(); lastEvent--; //preserve events of current channel @@ -2184,6 +2186,28 @@ static void commandPauseScanning(int connfd, char *data, const unsigned dataLeng #ifdef ENABLE_PPT dmxPPT.request_unpause(); #endif + writeLockEvents(); + if (myCurrentEvent) { + delete myCurrentEvent; + myCurrentEvent = NULL; + } + if (myNextEvent) { + delete myNextEvent; + myNextEvent = NULL; + } + unlockEvents(); + writeLockMessaging(); + messaging_have_CN = 0x00; + messaging_got_CN = 0x00; + unlockMessaging(); + scanning = 1; + if (!bTimeCorrect && !ntpenable) + { + pthread_mutex_lock(&timeThreadSleepMutex); + pthread_cond_broadcast(&timeThreadSleepCond); + pthread_mutex_unlock(&timeThreadSleepMutex); + } + scanning = 1; dmxCN.change(0); dmxEIT.change(0); @@ -3026,7 +3050,7 @@ static void commandserviceChanged(int connfd, char *data, const unsigned dataLen dmxCN.setCurrentService(messaging_current_servicekey & 0xffff); dmxEIT.setCurrentService(messaging_current_servicekey & 0xffff); #ifdef ENABLE_FREESATEPG - dmxFSEIT.change( 0 ); + dmxFSEIT.setCurrentService(messaging_current_servicekey & 0xffff); #endif } else @@ -6914,7 +6938,7 @@ static void *fseitThread(void *) bool sendToSleepNow = false; pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, 0); - dmxFSEIT.addfilter(0x60, 0xff); //other TS, scheduled, freesat epg is only broadcast using table_ids 0x60 (scheduled) and 0x61 (scheduled later) + dmxFSEIT.addfilter(0x60, 0xfe); //other TS, scheduled, freesat epg is only broadcast using table_ids 0x60 (scheduled) and 0x61 (scheduled later) if (debug) { int policy; @@ -7476,6 +7500,7 @@ static void *eitThread(void *) //fprintf(stderr, "%02x ", header.table_id); if(sectionsd_stop) break; +//printf("Adding event 0x%llx table %x version %x running %d\n", e->uniqueKey(), header->table_id, header->version_number, e->runningStatus()); addEvent(*e, header->table_id, zeit); } }