Merge branch 'uncool/dvbsi++' commit '6e0bc85a6c0'

This is the last commit before the "menu hints" started.
Needs buildfixing...

Conflicts:
	configure.ac
	src/daemonc/remotecontrol.cpp
	src/daemonc/remotecontrol.h
	src/driver/audiodec/basedec.cpp
	src/driver/fb_window.cpp
	src/driver/rcinput.cpp
	src/driver/volume.cpp
	src/global.h
	src/gui/channellist.cpp
	src/gui/eventlist.cpp
	src/gui/infoviewer.cpp
	src/gui/keybind_setup.cpp
	src/gui/miscsettings_menu.cpp
	src/gui/movieplayer.cpp
	src/gui/osd_setup.cpp
	src/gui/plugins.cpp
	src/gui/scan.cpp
	src/gui/scan_setup.cpp
	src/gui/streaminfo2.cpp
	src/gui/videosettings.cpp
	src/gui/widget/buttons.cpp
	src/neutrino.cpp
	src/sectionsd/dmx.cpp
	src/sectionsd/dmxapi.cpp
	src/sectionsd/sectionsd.cpp
	src/system/setting_helpers.cpp
	src/zapit/include/zapit/client/zapittypes.h
	src/zapit/include/zapit/frontend_c.h
	src/zapit/include/zapit/satconfig.h
	src/zapit/include/zapit/scan.h
	src/zapit/lib/zapitclient.cpp
	src/zapit/src/Makefile.am
	src/zapit/src/frontend.cpp
	src/zapit/src/getservices.cpp
	src/zapit/src/pmt.cpp
	src/zapit/src/scan.cpp
	src/zapit/src/sdt.cpp
	src/zapit/src/zapit.cpp
This commit is contained in:
Stefan Seyfried
2012-07-22 14:09:43 +02:00
354 changed files with 17604 additions and 32020 deletions

View File

@@ -41,8 +41,8 @@
#include <neutrino.h>
#include <gui/infoviewer.h>
#include <driver/encoding.h>
#include <driver/record.h>
#include <driver/abstime.h>
#include "libdvbsub/dvbsub.h"
#include "libtuxtxt/teletext.h"
@@ -51,6 +51,8 @@
#include <zapit/zapit.h>
#include <zapit/getservices.h>
#define ZAP_GUARD_TIME 2000 // ms
extern CBouquetManager *g_bouquetManager;
extern uint32_t scrambled_timer;
@@ -89,7 +91,7 @@ CSubService::CSubService(const t_original_network_id anoriginal_network_id, cons
t_channel_id CSubService::getChannelID(void) const
{
return ((uint64_t) ( satellitePosition >= 0 ? satellitePosition : (uint64_t)(0xF000+ abs(satellitePosition))) << 48) |
(uint64_t) CREATE_CHANNEL_ID_FROM_SERVICE_ORIGINALNETWORK_TRANSPORTSTREAM_ID(service.service_id, service.original_network_id, service.transport_stream_id);
(uint64_t) CREATE_CHANNEL_ID(service.service_id, service.original_network_id, service.transport_stream_id);
}
@@ -102,7 +104,6 @@ CRemoteControl::CRemoteControl()
zap_completion_timeout = 0;
current_EPGid = 0;
next_EPGid = 0;
memset(&current_PIDs.PIDs, 0, sizeof(current_PIDs.PIDs) );
has_ac3 = false;
selected_subchannel = -1;
@@ -110,6 +111,7 @@ CRemoteControl::CRemoteControl()
director_mode = 0;
// current_programm_timer = 0;
is_video_started = true;
//next_EPGid = 0;
}
@@ -123,9 +125,9 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data
if ((*(t_channel_id *)data) != current_channel_id) {
g_InfoViewer->chanready = 0;
g_Zapit->zapTo_serviceID_NOWAIT(current_channel_id );
g_Sectionsd->setServiceChanged(current_channel_id &0xFFFFFFFFFFFFULL, false);
//g_Sectionsd->setServiceChanged(current_channel_id, false);
zap_completion_timeout = getcurrenttime() + 2 * (int64_t) 1000000;
zap_completion_timeout = time_monotonic_ms() + ZAP_GUARD_TIME;
return messages_return::handled;
}
@@ -158,7 +160,7 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data
current_channel_id = new_id;
current_EPGid = 0;
next_EPGid = 0;
//next_EPGid = 0;
memset(&current_PIDs.PIDs, 0, sizeof(current_PIDs.PIDs) );
@@ -170,7 +172,7 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data
director_mode = 0;
needs_nvods = (msg == NeutrinoMessages:: EVT_ZAP_ISNVOD);
g_Sectionsd->setServiceChanged( current_channel_id&0xFFFFFFFFFFFFULL, true );
//g_Sectionsd->setServiceChanged( current_channel_id, true );
CNeutrinoApp::getInstance()->channelList->adjustToChannelID(current_channel_id);
if ( g_InfoViewer->is_visible )
g_RCInput->postMsg( NeutrinoMessages::SHOW_INFOBAR , 0 );
@@ -248,7 +250,7 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data
{
if ((*(t_channel_id *)data) != current_channel_id)
return messages_return::handled;
#if 0
const CSectionsdClient::CurrentNextInfo info_CN = g_InfoViewer->getCurrentNextInfo();
if ((info_CN.next_uniqueKey >> 16) == (current_channel_id&0xFFFFFFFFFFFFULL) )
{
@@ -256,6 +258,7 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data
if (info_CN.next_uniqueKey != next_EPGid)
next_EPGid = info_CN.next_uniqueKey;
}
#endif
if ( !is_video_started )
g_RCInput->postMsg( NeutrinoMessages::EVT_PROGRAMLOCKSTATUS, 0x100, false );
return messages_return::handled;
@@ -310,11 +313,11 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data
{
getNVODs();
if (subChannels.empty())
g_Sectionsd->setServiceChanged( current_channel_id&0xFFFFFFFFFFFFULL, true );
g_Sectionsd->setServiceChanged( current_channel_id, true );
}
else
// EVENT anfordern!
g_Sectionsd->setServiceChanged( current_channel_id&0xFFFFFFFFFFFFULL, true );
g_Sectionsd->setServiceChanged( current_channel_id, true );
}
return messages_return::handled;
@@ -331,6 +334,15 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data
return messages_return::handled;
}
#endif
else if (msg == NeutrinoMessages::EVT_TUNE_COMPLETE) {
t_channel_id chid = *(t_channel_id *)data;
printf("CRemoteControl::handleMsg: EVT_TUNE_COMPLETE (%016llx)\n", chid);
if(chid)
g_Sectionsd->setServiceChanged( chid, true );
else
g_Sectionsd->setServiceChanged( current_channel_id, true );
return messages_return::handled;
}
//else if (msg == NeutrinoMessages::EVT_ZAP_FAILED || msg == NeutrinoMessages::EVT_ZAP_SUB_FAILED)
//return messages_return::handled;
else
@@ -340,7 +352,7 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data
void CRemoteControl::getSubChannels()
{
//printf("[neutrino] getSubChannels, current_EPGid %llx\n", current_EPGid);
if ( subChannels.size() == 0 )
if ( subChannels.empty() )
{
CSectionsdClient::LinkageDescriptorList linkedServices;
//if ( g_Sectionsd->getLinkageDescriptorsUniqueKey( current_EPGid, linkedServices ) )
@@ -352,12 +364,12 @@ void CRemoteControl::getSubChannels()
//printf("CRemoteControl::getSubChannels linkedServices.size %d\n", linkedServices.size());
for (unsigned int i=0; i< linkedServices.size(); i++)
{
//printf("CRemoteControl::getSubChannels %s\n", linkedServices[i].name.c_str());
subChannels.push_back(CSubService(
linkedServices[i].originalNetworkId,
linkedServices[i].serviceId,
linkedServices[i].transportStreamId,
linkedServices[i].name));
//printf("CRemoteControl::getSubChannels %s: %016llx\n", linkedServices[i].name.c_str(), subChannels[i].getChannelID());
if ((subChannels[i].getChannelID()&0xFFFFFFFFFFFFULL) == (current_channel_id&0xFFFFFFFFFFFFULL))
selected_subchannel = i;
}
@@ -374,7 +386,7 @@ void CRemoteControl::getSubChannels()
void CRemoteControl::getNVODs()
{
//printf("[neutrino] getNVODs, current_EPGid %llx\n", current_EPGid);
if ( subChannels.size() == 0 )
if ( subChannels.empty() )
{
CSectionsdClient::NVODTimesList NVODs;
//if ( g_Sectionsd->getNVODTimesServiceKey( current_channel_id & 0xFFFFFFFFFFFFULL, NVODs ) )
@@ -427,7 +439,7 @@ void CRemoteControl::getNVODs()
void CRemoteControl::processAPIDnames()
{
has_unresolved_ctags= false;
has_ac3 = false; //FIXME what this variable suppoused to do ?? seems unused
has_ac3 = false; //use in infoviewer
int pref_found = -1;
int pref_ac3_found = -1;
int pref_idx = -1;
@@ -456,7 +468,7 @@ void CRemoteControl::processAPIDnames()
std::string temp(g_settings.pref_lang[i]);
std::map<std::string, std::string>::const_iterator it;
for(it = iso639.begin(); it != iso639.end(); it++) {
for(it = iso639.begin(); it != iso639.end(); ++it) {
if(temp == it->second && strcasecmp(desc, it->first.c_str()) == 0) {
/* remember first pref found index and pid*/
if(pref_found < 0) {
@@ -563,7 +575,7 @@ void CRemoteControl::copySubChannelsToZapit(void)
{
CZapitClient::subServiceList zapitList;
for (CSubServiceListSorted::const_iterator e = subChannels.begin(); e != subChannels.end(); e++)
for (CSubServiceListSorted::const_iterator e = subChannels.begin(); e != subChannels.end(); ++e)
zapitList.push_back(e->getAsZapitSubService());
g_Zapit->setSubServices(zapitList);
@@ -597,22 +609,22 @@ const std::string & CRemoteControl::setSubChannel(const int numSub, const bool f
g_Zapit->zapTo_subServiceID_NOWAIT( current_sub_channel_id );
// Houdini: to restart reading the private EPG when switching to a new option
g_Sectionsd->setServiceChanged( current_sub_channel_id , true );
//g_Sectionsd->setServiceChanged( current_sub_channel_id , true );
return subChannels[numSub].subservice_name;
}
const std::string & CRemoteControl::subChannelUp(void)
{
//return setSubChannel((subChannels.size() == 0) ? -1 : (int)((selected_subchannel + 1) % subChannels.size()));
//return setSubChannel((subChannels.empty()) ? -1 : (int)((selected_subchannel + 1) % subChannels.size()));
// if there are any NVOD/subchannels switch these else switch audio channel (if any)
if (subChannels.size() > 0 || !g_settings.audiochannel_up_down_enable)
if ( !subChannels.empty() || !g_settings.audiochannel_up_down_enable)
{
return setSubChannel((subChannels.size() == 0) ? -1 : (int)((selected_subchannel + 1) % subChannels.size()));
return setSubChannel( subChannels.empty() ? -1 : (int)((selected_subchannel + 1) % subChannels.size()));
}
else
{
if (current_PIDs.APIDs.size() > 0)
if ( !current_PIDs.APIDs.empty() )
{
setAPID((current_PIDs.PIDs.selected_apid + 1) % current_PIDs.APIDs.size());
}
@@ -624,13 +636,13 @@ const std::string & CRemoteControl::subChannelDown(void)
{
//return setSubChannel((selected_subchannel <= 0) ? (subChannels.size() - 1) : (selected_subchannel - 1));
// if there are any NVOD/subchannels switch these else switch audio channel (if any)
if (subChannels.size() > 0 || !g_settings.audiochannel_up_down_enable)
if ( !subChannels.empty() || !g_settings.audiochannel_up_down_enable)
{
return setSubChannel((selected_subchannel <= 0) ? (subChannels.size() - 1) : (selected_subchannel - 1));
}
else
{
if (current_PIDs.APIDs.size() > 0)
if ( !current_PIDs.APIDs.empty() )
{
if (current_PIDs.PIDs.selected_apid <= 0)
setAPID(current_PIDs.APIDs.size() - 1);
@@ -641,7 +653,6 @@ const std::string & CRemoteControl::subChannelDown(void)
}
}
void stopAutoRecord();
void CRemoteControl::zapTo_ChannelID(const t_channel_id channel_id, const std::string & channame, const bool start_video) // UTF-8
{
current_channel_id = channel_id;
@@ -654,7 +665,7 @@ void CRemoteControl::zapTo_ChannelID(const t_channel_id channel_id, const std::s
current_sub_channel_id = 0;
current_EPGid = 0;
next_EPGid = 0;
//next_EPGid = 0;
memset(&current_PIDs.PIDs, 0, sizeof(current_PIDs.PIDs) );
@@ -666,7 +677,7 @@ void CRemoteControl::zapTo_ChannelID(const t_channel_id channel_id, const std::s
needs_nvods = false;
director_mode = 0;
uint64_t now = getcurrenttime();
uint64_t now = time_monotonic_ms();
if ( zap_completion_timeout < now )
{
g_InfoViewer->chanready = 0;
@@ -677,9 +688,9 @@ void CRemoteControl::zapTo_ChannelID(const t_channel_id channel_id, const std::s
//dvbsub_pause(true);
CZapit::getInstance()->Abort();
g_Zapit->zapTo_serviceID_NOWAIT(channel_id);
g_Sectionsd->setServiceChanged( current_channel_id&0xFFFFFFFFFFFFULL, false );
zap_completion_timeout = now + 2 * (int64_t) 1000000;
zap_completion_timeout = now + ZAP_GUARD_TIME;
//g_Sectionsd->setServiceChanged( current_channel_id, false );
// g_RCInput->killTimer( current_programm_timer );
}
}