mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-29 00:11:14 +02:00
Remove global allchans, use CServiceManager.
git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@1649 e54a6e83-5905-42d5-8d5c-058d10e6a962
This commit is contained in:
@@ -46,8 +46,9 @@
|
|||||||
|
|
||||||
#include <zapit/channel.h>
|
#include <zapit/channel.h>
|
||||||
#include <zapit/bouquets.h>
|
#include <zapit/bouquets.h>
|
||||||
|
#include <zapit/zapit.h>
|
||||||
|
#include <zapit/getservices.h>
|
||||||
|
|
||||||
extern tallchans allchans;
|
|
||||||
extern CBouquetManager *g_bouquetManager;
|
extern CBouquetManager *g_bouquetManager;
|
||||||
extern CZapitChannel *g_current_channel;
|
extern CZapitChannel *g_current_channel;
|
||||||
|
|
||||||
@@ -142,11 +143,11 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data
|
|||||||
// warte auf keine Meldung vom ZAPIT -> jemand anderer hat das zappen ausgel<65>st...
|
// warte auf keine Meldung vom ZAPIT -> jemand anderer hat das zappen ausgel<65>st...
|
||||||
if ((*(t_channel_id *)data) != current_channel_id) {
|
if ((*(t_channel_id *)data) != current_channel_id) {
|
||||||
t_channel_id new_id = *(t_channel_id *)data;
|
t_channel_id new_id = *(t_channel_id *)data;
|
||||||
tallchans_iterator cit = allchans.find(new_id);
|
CZapitChannel* channel = CServiceManager::getInstance()->FindChannel(new_id);
|
||||||
is_video_started = true;
|
is_video_started = true;
|
||||||
if (cit != allchans.end()) {
|
if (channel) {
|
||||||
current_channel_name = cit->second.getName();
|
current_channel_name = channel->getName();
|
||||||
if (cit->second.bAlwaysLocked)
|
if (channel->bAlwaysLocked)
|
||||||
stopvideo();
|
stopvideo();
|
||||||
}
|
}
|
||||||
CVFD::getInstance()->showServicename(current_channel_name); // UTF-8
|
CVFD::getInstance()->showServicename(current_channel_name); // UTF-8
|
||||||
@@ -645,7 +646,6 @@ const std::string & CRemoteControl::subChannelDown(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void stopAutoRecord();
|
void stopAutoRecord();
|
||||||
extern int abort_zapit;
|
|
||||||
void CRemoteControl::zapTo_ChannelID(const t_channel_id channel_id, const std::string & channame, const bool start_video) // UTF-8
|
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;
|
current_channel_id = channel_id;
|
||||||
@@ -679,10 +679,9 @@ void CRemoteControl::zapTo_ChannelID(const t_channel_id channel_id, const std::s
|
|||||||
|
|
||||||
g_RCInput->killTimer(scrambled_timer);
|
g_RCInput->killTimer(scrambled_timer);
|
||||||
//dvbsub_pause(true);
|
//dvbsub_pause(true);
|
||||||
abort_zapit = 1;
|
CZapit::getInstance()->Abort();
|
||||||
g_Zapit->zapTo_serviceID_NOWAIT(channel_id);
|
g_Zapit->zapTo_serviceID_NOWAIT(channel_id);
|
||||||
g_Sectionsd->setServiceChanged( current_channel_id&0xFFFFFFFFFFFFULL, false );
|
g_Sectionsd->setServiceChanged( current_channel_id&0xFFFFFFFFFFFFULL, false );
|
||||||
abort_zapit = 0;
|
|
||||||
|
|
||||||
zap_completion_timeout = now + 2 * (int64_t) 1000000;
|
zap_completion_timeout = now + 2 * (int64_t) 1000000;
|
||||||
g_RCInput->killTimer( current_programm_timer );
|
g_RCInput->killTimer( current_programm_timer );
|
||||||
|
@@ -53,6 +53,7 @@
|
|||||||
#include <ca_cs.h>
|
#include <ca_cs.h>
|
||||||
#include <zapit/cam.h>
|
#include <zapit/cam.h>
|
||||||
#include <zapit/channel.h>
|
#include <zapit/channel.h>
|
||||||
|
#include <zapit/getservices.h>
|
||||||
#include <zapit/client/zapittools.h>
|
#include <zapit/client/zapittools.h>
|
||||||
|
|
||||||
/* TODO:
|
/* TODO:
|
||||||
@@ -64,8 +65,6 @@
|
|||||||
extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */
|
extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */
|
||||||
extern t_channel_id live_channel_id;
|
extern t_channel_id live_channel_id;
|
||||||
extern t_channel_id rec_channel_id;
|
extern t_channel_id rec_channel_id;
|
||||||
extern tallchans allchans;
|
|
||||||
extern tallchans nvodchannels;
|
|
||||||
|
|
||||||
bool sectionsd_getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata);
|
bool sectionsd_getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata);
|
||||||
bool sectionsd_getEPGidShort(event_id_t epgID, CShortEPGData * epgdata);
|
bool sectionsd_getEPGidShort(event_id_t epgID, CShortEPGData * epgdata);
|
||||||
@@ -222,15 +221,11 @@ bool CRecordInstance::Update()
|
|||||||
APIDList::iterator it;
|
APIDList::iterator it;
|
||||||
bool update = false;
|
bool update = false;
|
||||||
|
|
||||||
tallchans_iterator cit = allchans.find(channel_id);
|
CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(channel_id);
|
||||||
if(cit == allchans.end()) {
|
if(channel == NULL) {
|
||||||
cit = nvodchannels.find(channel_id);
|
printf("%s: channel %llx not found!\n", __FUNCTION__, channel_id);
|
||||||
if(cit == nvodchannels.end()) {
|
return false;
|
||||||
printf("%s: channel %llx not found!\n", __FUNCTION__, channel_id);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
CZapitChannel * channel = &(cit->second);
|
|
||||||
|
|
||||||
if(channel->getVideoPid() != allpids.PIDs.vpid) {
|
if(channel->getVideoPid() != allpids.PIDs.vpid) {
|
||||||
Stop(false);
|
Stop(false);
|
||||||
@@ -357,15 +352,11 @@ record_error_msg_t CRecordInstance::Record()
|
|||||||
APIDList apid_list;
|
APIDList apid_list;
|
||||||
|
|
||||||
printf("%s: channel %llx recording_id %d\n", __FUNCTION__, channel_id, recording_id);
|
printf("%s: channel %llx recording_id %d\n", __FUNCTION__, channel_id, recording_id);
|
||||||
tallchans_iterator cit = allchans.find(channel_id);
|
CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(channel_id);
|
||||||
if(cit == allchans.end()) {
|
if(channel == NULL) {
|
||||||
cit = nvodchannels.find(channel_id);
|
printf("%s: channel %llx not found!\n", __FUNCTION__, channel_id);
|
||||||
if(cit == nvodchannels.end()) {
|
return RECORD_INVALID_CHANNEL;
|
||||||
printf("%s: channel %llx not found!\n", __FUNCTION__, channel_id);
|
|
||||||
return RECORD_INVALID_CHANNEL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
CZapitChannel * channel = &(cit->second);
|
|
||||||
|
|
||||||
record_error_msg_t ret = MakeFileName(channel);
|
record_error_msg_t ret = MakeFileName(channel);
|
||||||
if(ret != RECORD_OK)
|
if(ret != RECORD_OK)
|
||||||
@@ -610,15 +601,13 @@ record_error_msg_t CRecordInstance::MakeFileName(CZapitChannel * channel)
|
|||||||
|
|
||||||
void CRecordInstance::GetRecordString(std::string &str)
|
void CRecordInstance::GetRecordString(std::string &str)
|
||||||
{
|
{
|
||||||
tallchans_iterator cit = allchans.find(channel_id);
|
CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(channel_id);
|
||||||
if(cit == allchans.end()) {
|
if(channel == NULL) {
|
||||||
cit = nvodchannels.find(channel_id);
|
printf("%s: channel %llx not found!\n", __FUNCTION__, channel_id);
|
||||||
if(cit == nvodchannels.end()) {
|
str = "Unknown channel : " + GetEpgTitle();
|
||||||
str = "Unknown channel : " + GetEpgTitle();
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
str = cit->second.getName() + ": " + GetEpgTitle();
|
str = channel->getName() + ": " + GetEpgTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
@@ -1331,7 +1320,7 @@ bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mo
|
|||||||
if(live_channel_id != channel_id) {
|
if(live_channel_id != channel_id) {
|
||||||
if(SAME_TRANSPONDER(live_channel_id, channel_id)) {
|
if(SAME_TRANSPONDER(live_channel_id, channel_id)) {
|
||||||
printf("%s zapTo_record channel_id %llx\n", __FUNCTION__, channel_id);
|
printf("%s zapTo_record channel_id %llx\n", __FUNCTION__, channel_id);
|
||||||
ret = g_Zapit->zapTo_record(channel_id) == 0;
|
ret = g_Zapit->zapTo_record(channel_id) > 0;
|
||||||
} else if(recmap.size()) {
|
} else if(recmap.size()) {
|
||||||
ret = false;
|
ret = false;
|
||||||
} else {
|
} else {
|
||||||
|
@@ -54,6 +54,7 @@
|
|||||||
#include <gui/pictureviewer.h>
|
#include <gui/pictureviewer.h>
|
||||||
|
|
||||||
#include <zapit/bouquets.h>
|
#include <zapit/bouquets.h>
|
||||||
|
#include <zapit/getservices.h>
|
||||||
|
|
||||||
extern CPictureViewer * g_PicViewer;
|
extern CPictureViewer * g_PicViewer;
|
||||||
|
|
||||||
@@ -447,7 +448,6 @@ static bool sortByDateTime (const CChannelEvent& a, const CChannelEvent& b)
|
|||||||
//extern char recDir[255];
|
//extern char recDir[255];
|
||||||
void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = "");
|
void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = "");
|
||||||
bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags);
|
bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags);
|
||||||
extern tallchans allchans;
|
|
||||||
int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_startzeit, bool doLoop )
|
int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_startzeit, bool doLoop )
|
||||||
{
|
{
|
||||||
int res = menu_return::RETURN_REPAINT;
|
int res = menu_return::RETURN_REPAINT;
|
||||||
@@ -600,12 +600,12 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start
|
|||||||
int pic_offx = 0;
|
int pic_offx = 0;
|
||||||
|
|
||||||
//hack..
|
//hack..
|
||||||
tallchans_iterator cit = allchans.find(channel_id);
|
CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(channel_id);
|
||||||
if(cit != allchans.end()) {
|
if(channel) {
|
||||||
std::string lname;
|
std::string lname;
|
||||||
int logo_w = 0;
|
int logo_w = 0;
|
||||||
int logo_h = 0;
|
int logo_h = 0;
|
||||||
if(g_settings.infobar_show_channellogo && g_PicViewer->GetLogoName(channel_id, cit->second.getName(), lname, &logo_w, &logo_h)) {
|
if(g_settings.infobar_show_channellogo && g_PicViewer->GetLogoName(channel_id, channel->getName(), lname, &logo_w, &logo_h)) {
|
||||||
if(logo_h > toph){
|
if(logo_h > toph){
|
||||||
if((toph/(logo_h-toph))>1){
|
if((toph/(logo_h-toph))>1){
|
||||||
logo_w -= (logo_w/(toph/(logo_h-toph)));
|
logo_w -= (logo_w/(toph/(logo_h-toph)));
|
||||||
|
@@ -49,7 +49,6 @@ void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventL
|
|||||||
void sectionsd_getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next );
|
void sectionsd_getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next );
|
||||||
bool sectionsd_getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::LinkageDescriptorList& descriptors);
|
bool sectionsd_getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::LinkageDescriptorList& descriptors);
|
||||||
bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags);
|
bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags);
|
||||||
extern tallchans allchans;
|
|
||||||
extern CBouquetManager *g_bouquetManager;
|
extern CBouquetManager *g_bouquetManager;
|
||||||
extern t_channel_id live_channel_id;
|
extern t_channel_id live_channel_id;
|
||||||
#define EVENTDEV "/dev/input/input0"
|
#define EVENTDEV "/dev/input/input0"
|
||||||
|
@@ -37,8 +37,8 @@
|
|||||||
#include <zapit/client/zapitclient.h>
|
#include <zapit/client/zapitclient.h>
|
||||||
#include <zapit/channel.h>
|
#include <zapit/channel.h>
|
||||||
#include <zapit/bouquets.h>
|
#include <zapit/bouquets.h>
|
||||||
|
#include <zapit/getservices.h>
|
||||||
|
|
||||||
extern tallchans allchans;
|
|
||||||
extern CBouquetManager *g_bouquetManager;
|
extern CBouquetManager *g_bouquetManager;
|
||||||
extern CFrontend * frontend;
|
extern CFrontend * frontend;
|
||||||
extern cVideo * videoDecoder;
|
extern cVideo * videoDecoder;
|
||||||
@@ -205,17 +205,12 @@ t_channel_id CNeutrinoAPI::ChannelNameToChannelId(std::string search_channel_nam
|
|||||||
//int mode = Zapit->getMode();
|
//int mode = Zapit->getMode();
|
||||||
t_channel_id channel_id = (t_channel_id)-1;
|
t_channel_id channel_id = (t_channel_id)-1;
|
||||||
CStringArray channel_names = ySplitStringVector(search_channel_name, ",");
|
CStringArray channel_names = ySplitStringVector(search_channel_name, ",");
|
||||||
for (tallchans_iterator it = allchans.begin(); it != allchans.end(); it++) {
|
|
||||||
std::string channel_name = it->second.getName();
|
for(unsigned int j=0;j<channel_names.size();j++) {
|
||||||
for(unsigned int j=0;j<channel_names.size();j++)
|
CZapitChannel * channel = CServiceManager::getInstance()->FindChannelByName(channel_names[j]);
|
||||||
{
|
if(channel) {
|
||||||
if(channel_names[j].length() == channel_name.length() &&
|
channel_id = channel->getChannelID();
|
||||||
equal(channel_names[j].begin(), channel_names[j].end(),
|
break;
|
||||||
channel_name.begin(), nocase_compare)) //case insensitive compare
|
|
||||||
{
|
|
||||||
channel_id = it->second.channel_id;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return channel_id;
|
return channel_id;
|
||||||
@@ -281,11 +276,7 @@ bool CNeutrinoAPI::GetChannelEvents(void)
|
|||||||
|
|
||||||
std::string CNeutrinoAPI::GetServiceName(t_channel_id channel_id)
|
std::string CNeutrinoAPI::GetServiceName(t_channel_id channel_id)
|
||||||
{
|
{
|
||||||
tallchans_iterator it = allchans.find(channel_id);
|
return CServiceManager::getInstance()->GetServiceName(channel_id);
|
||||||
if (it != allchans.end())
|
|
||||||
return it->second.getName();
|
|
||||||
else
|
|
||||||
return "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
@@ -28,10 +28,10 @@
|
|||||||
|
|
||||||
#include <zapit/channel.h>
|
#include <zapit/channel.h>
|
||||||
#include <zapit/bouquets.h>
|
#include <zapit/bouquets.h>
|
||||||
|
#include <zapit/getservices.h>
|
||||||
#include <cs_api.h>
|
#include <cs_api.h>
|
||||||
#include <system/configure_network.h>
|
#include <system/configure_network.h>
|
||||||
|
|
||||||
extern tallchans allchans;
|
|
||||||
extern CBouquetManager *g_bouquetManager;
|
extern CBouquetManager *g_bouquetManager;
|
||||||
extern t_channel_id live_channel_id;
|
extern t_channel_id live_channel_id;
|
||||||
|
|
||||||
@@ -1065,15 +1065,11 @@ std::string CNeutrinoYParser::func_set_bouquet_edit_form(CyhookHandler *hh, std
|
|||||||
}
|
}
|
||||||
ZapitChannelList Channels;
|
ZapitChannelList Channels;
|
||||||
Channels.clear();
|
Channels.clear();
|
||||||
if (mode == CZapitClient::MODE_RADIO) {
|
if (mode == CZapitClient::MODE_RADIO)
|
||||||
for (tallchans_iterator it = allchans.begin(); it != allchans.end(); it++)
|
CServiceManager::getInstance()->GetAllRadioChannels(Channels);
|
||||||
if (it->second.getServiceType() == ST_DIGITAL_RADIO_SOUND_SERVICE)
|
else
|
||||||
Channels.push_back(&(it->second));
|
CServiceManager::getInstance()->GetAllTvChannels(Channels);
|
||||||
} else {
|
|
||||||
for (tallchans_iterator it = allchans.begin(); it != allchans.end(); it++)
|
|
||||||
if (it->second.getServiceType() != ST_DIGITAL_RADIO_SOUND_SERVICE)
|
|
||||||
Channels.push_back(&(it->second));
|
|
||||||
}
|
|
||||||
sort(Channels.begin(), Channels.end(), CmpChannelByChName());
|
sort(Channels.begin(), Channels.end(), CmpChannelByChName());
|
||||||
|
|
||||||
for (int i = 0; i < (int) Channels.size(); i++) {
|
for (int i = 0; i < (int) Channels.size(); i++) {
|
||||||
|
@@ -27,9 +27,7 @@
|
|||||||
#include <messagetools.h> /* get_length_field_size */
|
#include <messagetools.h> /* get_length_field_size */
|
||||||
#include <zapit/bouquets.h>
|
#include <zapit/bouquets.h>
|
||||||
#include <zapit/satconfig.h>
|
#include <zapit/satconfig.h>
|
||||||
|
#include <zapit/getservices.h>
|
||||||
extern tallchans allchans;
|
|
||||||
extern tallchans nvodchannels;
|
|
||||||
|
|
||||||
CCam::CCam()
|
CCam::CCam()
|
||||||
{
|
{
|
||||||
@@ -129,37 +127,33 @@ CCamManager * CCamManager::getInstance(void)
|
|||||||
return manager;
|
return manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCamManager::SetMode(t_channel_id id, enum runmode mode, bool start, bool force_update)
|
bool CCamManager::SetMode(t_channel_id channel_id, enum runmode mode, bool start, bool force_update)
|
||||||
{
|
{
|
||||||
CCam * cam;
|
CCam * cam;
|
||||||
int oldmask, newmask;
|
int oldmask, newmask;
|
||||||
int demux = DEMUX_SOURCE_0;
|
int demux = DEMUX_SOURCE_0;
|
||||||
int source = DEMUX_SOURCE_0;
|
int source = DEMUX_SOURCE_0;
|
||||||
|
|
||||||
tallchans_iterator cit = allchans.find(id);
|
CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(channel_id);
|
||||||
if(cit == allchans.end()) {
|
|
||||||
cit = nvodchannels.find(id);
|
|
||||||
if(cit == nvodchannels.end()) {
|
|
||||||
printf("CCamManager: channel %llx not found\n", id);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CZapitChannel * channel = &(cit->second);
|
if(channel == NULL) {
|
||||||
|
printf("CCamManager: channel %llx not found\n", channel_id);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
mutex.lock();
|
mutex.lock();
|
||||||
if(channel->getCaPmt() == NULL) {
|
if(channel->getCaPmt() == NULL) {
|
||||||
printf("CCamManager: channel %llx dont have caPmt\n", id);
|
printf("CCamManager: channel %llx dont have caPmt\n", channel_id);
|
||||||
mutex.unlock();
|
mutex.unlock();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
sat_iterator_t sit = satellitePositions.find(channel->getSatellitePosition());
|
sat_iterator_t sit = satellitePositions.find(channel->getSatellitePosition());
|
||||||
|
|
||||||
cammap_iterator_t it = channel_map.find(id);
|
cammap_iterator_t it = channel_map.find(channel_id);
|
||||||
if(it == channel_map.end()) {
|
if(it == channel_map.end()) {
|
||||||
cam = new CCam();
|
cam = new CCam();
|
||||||
channel_map.insert(std::pair<t_channel_id, CCam*>(id, cam));
|
channel_map.insert(std::pair<t_channel_id, CCam*>(channel_id, cam));
|
||||||
} else
|
} else
|
||||||
cam = it->second;
|
cam = it->second;
|
||||||
|
|
||||||
@@ -189,7 +183,7 @@ bool CCamManager::SetMode(t_channel_id id, enum runmode mode, bool start, bool f
|
|||||||
* (see CMD_SB_LOCK / UNLOCK PLAYBACK */
|
* (see CMD_SB_LOCK / UNLOCK PLAYBACK */
|
||||||
//channel->setCaPmt(NULL);
|
//channel->setCaPmt(NULL);
|
||||||
channel->setRawPmt(NULL);
|
channel->setRawPmt(NULL);
|
||||||
channel_map.erase(id);
|
channel_map.erase(channel_id);
|
||||||
delete cam;
|
delete cam;
|
||||||
}
|
}
|
||||||
mutex.unlock();
|
mutex.unlock();
|
||||||
|
Reference in New Issue
Block a user