add experimental support to scan epg in background using different tuner,

when enabled in menu - activated by next channel switch,
scanning epg for channels (transponders) in current bouquet (channels list)


Origin commit data
------------------
Commit: 8e6202071e
Author: [CST] Focus <focus.cst@gmail.com>
Date: 2013-06-12 (Wed, 12 Jun 2013)
This commit is contained in:
[CST] Focus
2013-06-12 18:40:20 +04:00
parent 1b8a4ef5c4
commit ac2654f628
3 changed files with 181 additions and 0 deletions

45
src/driver/scanepg.h Normal file
View File

@@ -0,0 +1,45 @@
/*
Copyright (C) 2013 CoolStream International Ltd
License: GPLv2
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation;
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __SCAN_EPG__
#define __SCAN_EPG__
#include <zapit/zapit.h>
typedef std::map<transponder_id_t, t_channel_id> eit_scanmap_t;
typedef std::pair<transponder_id_t, t_channel_id> eit_scanmap_pair_t;
typedef eit_scanmap_t::iterator eit_scanmap_iterator_t;
class CEpgScan
{
private:
int current_bnum;
eit_scanmap_t scanmap;
std::set<transponder_id_t> scanned;
CEpgScan();
public:
~CEpgScan();
static CEpgScan * getInstance();
void handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data);
void Clear();
};
#endif