MythTV
master
|
Class providing a generic interface to digital tuning hardware. More...
#include <libmythtv/recorders/dtvchannel.h>
Public Types | |
using | DTVChannelP = DTVChannel * |
Public Member Functions | |
DTVChannel (TVRec *parent) | |
~DTVChannel () override | |
bool | SetChannelByString (const QString &chan) override |
void | SetFormat (const QString &format) override |
QString | GetFormat (void) |
virtual bool | TuneMultiplex (uint mplexid, const QString &inputname) |
To be used by the channel scanner and possibly the EIT scanner. More... | |
virtual bool | Tune (const DTVMultiplex &tuning)=0 |
This performs the actual frequency tuning and in some cases input switching. More... | |
virtual bool | Tune (const IPTVTuningData &, bool) |
Performs IPTV Tuning. Only implemented by IPTVChannel. More... | |
virtual bool | Tune (const QString &) |
Leave it up to the implementation to map the channnum appropriately. More... | |
virtual bool | EnterPowerSavingMode (void) |
Enters power saving mode if the card supports it. More... | |
bool | Tune ([[maybe_unused]] const QString &freqid, [[maybe_unused]] int finetune) override |
This tunes on the frequency Identification parameter for hardware that supports it. More... | |
virtual bool | Tune ([[maybe_unused]] uint64_t frequency) |
int | GetProgramNumber (void) const |
Returns program number in PAT, -1 if unknown. More... | |
uint | GetMajorChannel (void) const |
Returns major channel, 0 if unknown. More... | |
uint | GetMinorChannel (void) const |
Returns minor channel, 0 if unknown. More... | |
uint | GetOriginalNetworkID (void) const |
Returns DVB original_network_id, 0 if unknown. More... | |
uint | GetTransportID (void) const |
Returns DVB transport_stream_id, 0 if unknown. More... | |
QString | GetSIStandard (void) const |
Returns PSIP table standard: MPEG, DVB, ATSC, or OpenCable. More... | |
QString | GetSuggestedTuningMode (bool is_live_tv) const |
Returns suggested tuning mode: "mpeg", "dvb", or "atsc". More... | |
QString | GetTuningMode (void) const |
Returns tuning mode last set by SetTuningMode(). More... | |
virtual std::vector< DTVTunerType > | GetTunerTypes (void) const |
Returns a vector of supported tuning types. More... | |
void | GetCachedPids (pid_cache_t &pid_cache) const |
Returns cached MPEG PIDs for last tuned channel. More... | |
void | RegisterForMaster (const QString &key) |
void | DeregisterForMaster (const QString &key) |
virtual bool | IsMaster (void) const |
Returns true if this is the first of a number of multi-rec devs. More... | |
virtual bool | IsPIDTuningSupported (void) const |
virtual bool | IsIPTV (void) const |
bool | HasGeneratedPAT (void) const |
bool | HasGeneratedPMT (void) const |
const ProgramAssociationTable * | GetGeneratedPAT (void) const |
const ProgramMapTable * | GetGeneratedPMT (void) const |
void | SetTuningMode (const QString &tuning_mode) |
Sets tuning mode: "mpeg", "dvb", "atsc", etc. More... | |
void | SaveCachedPids (const pid_cache_t &pid_cache) const |
Saves MPEG PIDs to cache to database. More... | |
Public Member Functions inherited from ChannelBase | |
ChannelBase (TVRec *parent) | |
virtual | ~ChannelBase (void) |
virtual bool | Init (QString &startchannel, bool setchan) |
virtual bool | IsTunable (const QString &channum) const |
virtual bool | Open (void)=0 |
Opens the channel changing hardware for use. More... | |
virtual void | Close (void)=0 |
Closes the channel changing hardware to use. More... | |
virtual bool | IsOpen (void) const =0 |
Reports whether channel is already open. More... | |
virtual int | SetFreqTable (const QString &) |
virtual void | SetFd (int fd) |
Sets file descriptor. More... | |
virtual int | GetFd (void) const |
Returns file descriptor, -1 if it does not exist. More... | |
virtual bool | Tune (const QString &, int) |
virtual bool | IsExternalChannelChangeInUse (void) |
virtual uint | GetNextChannel (uint chanid, ChannelChangeDirection direction) const |
virtual uint | GetNextChannel (const QString &channum, ChannelChangeDirection direction) const |
virtual QString | GetChannelName (void) const |
virtual int | GetChanID (void) const |
virtual int | GetInputID (void) const |
virtual QString | GetInputName (void) const |
virtual uint | GetSourceID (void) const |
bool | IsCommercialFree (void) const |
Returns true iff commercial detection is not required. More... | |
virtual QString | GetDevice (void) const |
Returns String representing device, useful for debugging. More... | |
virtual void | Renumber (uint sourceid, const QString &oldChanNum, const QString &newChanNum) |
Changes a channum if we have it cached anywhere. More... | |
virtual bool | InitializeInput (void) |
Fills in input map from DB. More... | |
virtual bool | Retune (void) |
virtual void | StoreInputChannels (void) |
Saves current channel as the default channel for the current input. More... | |
virtual bool | InitPictureAttributes (void) |
virtual int | GetPictureAttribute (PictureAttribute) const |
virtual int | ChangePictureAttribute (PictureAdjustType, PictureAttribute, bool) |
bool | CheckChannel (const QString &channum) const |
void | SetInputID (uint _inputid) |
int | GetMajorID (void) |
Static Public Member Functions | |
static DTVChannel * | GetMasterLock (const QString &key) |
static void | ReturnMasterLock (DTVChannelP &chan) |
Static Public Member Functions inherited from ChannelBase | |
static ChannelBase * | CreateChannel (TVRec *tvrec, const GeneralDBOptions &genOpt, const DVBDBOptions &dvbOpt, const FireWireDBOptions &fwOpt, const QString &startchannel, bool enter_power_save_mode, QString &rbFileExt, bool setchan) |
Protected Types | |
using | MasterMap = QMap< QString, QList< DTVChannel * > > |
Protected Member Functions | |
void | SetSIStandard (const QString &si_std) |
Sets PSIP table standard: MPEG, DVB, ATSC, or OpenCable. More... | |
void | SetDTVInfo (uint atsc_major, uint atsc_minor, uint dvb_orig_netid, uint mpeg_tsid, int mpeg_pnum) |
void | ClearDTVInfo (void) |
virtual void | CheckOptions (DTVMultiplex &) const |
Checks tuning for problems, and tries to fix them. More... | |
void | HandleScriptEnd (bool ok) override |
Protected Member Functions inherited from ChannelBase | |
virtual bool | IsInputAvailable (uint &mplexid_restriction, uint &chanid_restriction) const |
Switches to another input on hardware, and sets the channel is setstarting is true. More... | |
virtual bool | IsExternalChannelChangeSupported (void) |
bool | KillScript (void) |
void | HandleScript (const QString &freqid) |
uint | GetScriptStatus (bool holding_lock=false) |
bool | ChangeExternalChannel (const QString &changer, const QString &freqid) |
bool | ChangeInternalChannel (const QString &freqid, uint cardinputid) const |
Static Protected Attributes | |
static QReadWriteLock | s_master_map_lock |
static MasterMap | s_master_map |
Class providing a generic interface to digital tuning hardware.
Definition at line 33 of file dtvchannel.h.
using DTVChannel::DTVChannelP = DTVChannel* |
Definition at line 125 of file dtvchannel.h.
|
protected |
Definition at line 177 of file dtvchannel.h.
|
inlineexplicit |
Definition at line 36 of file dtvchannel.h.
|
override |
Definition at line 18 of file dtvchannel.cpp.
|
overridevirtual |
Implements ChannelBase.
Reimplemented in HDHRChannel.
Definition at line 157 of file dtvchannel.cpp.
Referenced by HDHRChannel::SetChannelByString(), and CetonChannel::SetChannelByString().
|
inlineoverridevirtual |
Reimplemented from ChannelBase.
Reimplemented in V4LChannel.
Definition at line 44 of file dtvchannel.h.
Referenced by SetChannelByString().
|
inline |
Definition at line 46 of file dtvchannel.h.
Referenced by ASIRecorder::ASIRecorder(), SatIPRecorder::Open(), HDHRRecorder::Open(), DVBRecorder::Open(), and TVRec::TuningFrequency().
To be used by the channel scanner and possibly the EIT scanner.
Definition at line 395 of file dtvchannel.cpp.
Referenced by ChannelScanSM::Tune().
|
pure virtual |
This performs the actual frequency tuning and in some cases input switching.
In rare cases such as ASI this does nothing since all the channels are in the same MPTS stream on the same input. But generally you will need to implement this when adding support for new hardware.
Implemented in DVBChannel, CetonChannel, HDHRChannel, V4LChannel, SatIPChannel, IPTVChannel, ExternalChannel, FirewireChannel, and ASIChannel.
Referenced by SetChannelByString(), ChannelScanSM::Tune(), and TuneMultiplex().
|
inlinevirtual |
Performs IPTV Tuning. Only implemented by IPTVChannel.
Reimplemented in IPTVChannel.
Definition at line 58 of file dtvchannel.h.
|
inlinevirtual |
Leave it up to the implementation to map the channnum appropriately.
Used by the ExternalRecorder.
Reimplemented in ExternalChannel, and SatIPChannel.
Definition at line 63 of file dtvchannel.h.
|
inlinevirtual |
Enters power saving mode if the card supports it.
Reimplemented in IPTVChannel, ExternalChannel, CetonChannel, HDHRChannel, and SatIPChannel.
Definition at line 65 of file dtvchannel.h.
Referenced by ChannelBase::CreateChannel(), and TVRec::TeardownRecorder().
|
inlineoverride |
This tunes on the frequency Identification parameter for hardware that supports it.
This is only called when there is no frequency set. This is used to implement "Channel Numbers" in analog tuning scenarios and to implement "Virtual Channels" in the OCUR and Firewire tuners.
Definition at line 75 of file dtvchannel.h.
|
inlinevirtual |
Definition at line 81 of file dtvchannel.h.
|
inline |
Returns program number in PAT, -1 if unknown.
Definition at line 89 of file dtvchannel.h.
Referenced by ASIRecorder::ASIRecorder(), and TVRec::SetupDTVSignalMonitor().
|
inline |
Returns major channel, 0 if unknown.
Definition at line 93 of file dtvchannel.h.
Referenced by TVRec::SetupDTVSignalMonitor().
|
inline |
Returns minor channel, 0 if unknown.
Definition at line 97 of file dtvchannel.h.
Referenced by ASIRecorder::ASIRecorder(), and TVRec::SetupDTVSignalMonitor().
|
inline |
Returns DVB original_network_id, 0 if unknown.
Definition at line 101 of file dtvchannel.h.
Referenced by TVRec::SetupDTVSignalMonitor().
|
inline |
Returns DVB transport_stream_id, 0 if unknown.
Definition at line 105 of file dtvchannel.h.
Referenced by TVRec::SetupDTVSignalMonitor().
QString DTVChannel::GetSIStandard | ( | void | ) | const |
Returns PSIP table standard: MPEG, DVB, ATSC, or OpenCable.
Definition at line 45 of file dtvchannel.cpp.
Referenced by SatIPRecorder::GetSIStandard(), HDHRRecorder::GetSIStandard(), CetonRecorder::GetSIStandard(), DVBRecorder::GetSIStandard(), SatIPRecorder::run(), HDHRRecorder::run(), DVBRecorder::run(), ASIRecorder::run(), DVBRecorder::SetCAMPMT(), and TVRec::TuningFrequency().
QString DTVChannel::GetSuggestedTuningMode | ( | bool | is_live_tv | ) | const |
Returns suggested tuning mode: "mpeg", "dvb", or "atsc".
Definition at line 57 of file dtvchannel.cpp.
Referenced by TVRec::TuningFrequency().
QString DTVChannel::GetTuningMode | ( | void | ) | const |
Returns tuning mode last set by SetTuningMode().
Definition at line 73 of file dtvchannel.cpp.
Referenced by TVRec::SetupDTVSignalMonitor().
|
virtual |
Returns a vector of supported tuning types.
Reimplemented in CetonChannel, HDHRChannel, and ASIChannel.
Definition at line 79 of file dtvchannel.cpp.
Referenced by ChannelScanSM::GuessDTVTunerType().
void DTVChannel::GetCachedPids | ( | pid_cache_t & | pid_cache | ) | const |
Returns cached MPEG PIDs for last tuned channel.
pid_cache | List of PIDs with their TableID types is returned in pid_cache. |
Definition at line 97 of file dtvchannel.cpp.
Referenced by ApplyCachedPids(), and TVRec::SetupDTVSignalMonitor().
void DTVChannel::RegisterForMaster | ( | const QString & | key | ) |
Definition at line 114 of file dtvchannel.cpp.
Referenced by HDHRChannel::HDHRChannel(), and SatIPChannel::SatIPChannel().
void DTVChannel::DeregisterForMaster | ( | const QString & | key | ) |
Definition at line 121 of file dtvchannel.cpp.
Referenced by HDHRChannel::~HDHRChannel(), and SatIPChannel::~SatIPChannel().
|
static |
Definition at line 136 of file dtvchannel.cpp.
Referenced by DVBChannel::GetMasterLock(), SatIPChannel::IsMaster(), and HDHRChannel::IsMaster().
|
static |
Definition at line 148 of file dtvchannel.cpp.
Referenced by DVBChannel::GetMasterLock(), SatIPChannel::IsMaster(), HDHRChannel::IsMaster(), and DVBChannel::ReturnMasterLock().
|
inlinevirtual |
Returns true if this is the first of a number of multi-rec devs.
Reimplemented in DVBChannel, HDHRChannel, and SatIPChannel.
Definition at line 129 of file dtvchannel.h.
|
inlinevirtual |
Reimplemented in IPTVChannel, ExternalChannel, ASIChannel, and SatIPChannel.
Definition at line 131 of file dtvchannel.h.
Referenced by SetChannelByString().
|
inlinevirtual |
Reimplemented in IPTVChannel.
Definition at line 133 of file dtvchannel.h.
Referenced by SetChannelByString().
|
inline |
Definition at line 135 of file dtvchannel.h.
Referenced by V4L2encRecorder::run(), ExternalRecorder::run(), and ASIRecorder::run().
|
inline |
Definition at line 136 of file dtvchannel.h.
|
inline |
Definition at line 137 of file dtvchannel.h.
Referenced by V4L2encRecorder::run(), ExternalRecorder::run(), and ASIRecorder::run().
|
inline |
Definition at line 138 of file dtvchannel.h.
Referenced by V4L2encRecorder::run(), ExternalRecorder::run(), and ASIRecorder::run().
void DTVChannel::SetTuningMode | ( | const QString & | tuning_mode | ) |
Sets tuning mode: "mpeg", "dvb", "atsc", etc.
Definition at line 87 of file dtvchannel.cpp.
Referenced by TVRec::TuningFrequency().
void DTVChannel::SaveCachedPids | ( | const pid_cache_t & | pid_cache | ) | const |
Saves MPEG PIDs to cache to database.
pid_cache | List of PIDs with their TableID types to be saved. |
Definition at line 107 of file dtvchannel.cpp.
Referenced by TVRec::TeardownSignalMonitor().
|
protected |
Sets PSIP table standard: MPEG, DVB, ATSC, or OpenCable.
Definition at line 51 of file dtvchannel.cpp.
Referenced by SetChannelByString(), SatIPChannel::Tune(), HDHRChannel::Tune(), CetonChannel::Tune(), and DVBChannel::Tune().
|
protected |
Definition at line 33 of file dtvchannel.cpp.
Referenced by ClearDTVInfo(), and SetChannelByString().
|
inlineprotected |
Definition at line 153 of file dtvchannel.h.
Referenced by SetChannelByString().
|
inlineprotectedvirtual |
Checks tuning for problems, and tries to fix them.
Reimplemented in DVBChannel.
Definition at line 155 of file dtvchannel.h.
Referenced by SetChannelByString(), and TuneMultiplex().
|
overrideprotectedvirtual |
Reimplemented from ChannelBase.
Definition at line 386 of file dtvchannel.cpp.
|
mutableprotected |
Definition at line 159 of file dtvchannel.h.
Referenced by GetSIStandard(), GetSuggestedTuningMode(), GetTuningMode(), SetDTVInfo(), SetSIStandard(), and SetTuningMode().
|
protected |
Definition at line 161 of file dtvchannel.h.
Referenced by DVBChannel::CheckOptions(), GetTunerTypes(), SatIPChannel::Open(), HDHRChannel::Open(), CetonChannel::Open(), DVBChannel::Open(), DVBChannel::ProbeTuningParams(), SetChannelByString(), HDHRChannel::SetChannelByString(), HDHRChannel::Tune(), DVBChannel::Tune(), and TuneMultiplex().
|
protected |
PSIP table standard: MPEG, DVB, ATSC, OpenCable.
Definition at line 163 of file dtvchannel.h.
Referenced by GetSIStandard(), GetSuggestedTuningMode(), and SetSIStandard().
|
protected |
Definition at line 164 of file dtvchannel.h.
Referenced by GetTuningMode(), and SetTuningMode().
|
protected |
Definition at line 165 of file dtvchannel.h.
Referenced by GetFormat(), and SetFormat().
|
protected |
Definition at line 166 of file dtvchannel.h.
Referenced by GetProgramNumber(), CetonChannel::SetChannelByString(), and SetDTVInfo().
|
protected |
Definition at line 167 of file dtvchannel.h.
Referenced by GetMajorChannel(), and SetDTVInfo().
|
protected |
Definition at line 168 of file dtvchannel.h.
Referenced by GetMinorChannel(), and SetDTVInfo().
|
protected |
Definition at line 169 of file dtvchannel.h.
Referenced by GetTransportID(), and SetDTVInfo().
|
protected |
Definition at line 170 of file dtvchannel.h.
Referenced by GetOriginalNetworkID(), and SetDTVInfo().
|
protected |
This is a generated PAT for RAW pid tuning.
Definition at line 173 of file dtvchannel.h.
Referenced by GetGeneratedPAT(), HasGeneratedPAT(), SetChannelByString(), and ~DTVChannel().
|
protected |
This is a generated PMT for RAW pid tuning.
Definition at line 175 of file dtvchannel.h.
Referenced by GetGeneratedPMT(), HasGeneratedPMT(), SetChannelByString(), and ~DTVChannel().
|
staticprotected |
Definition at line 178 of file dtvchannel.h.
Referenced by DeregisterForMaster(), DVBChannel::DVBChannel(), GetMasterLock(), RegisterForMaster(), ReturnMasterLock(), and DVBChannel::~DVBChannel().
|
staticprotected |
Definition at line 179 of file dtvchannel.h.
Referenced by DeregisterForMaster(), DVBChannel::DVBChannel(), GetMasterLock(), RegisterForMaster(), and DVBChannel::~DVBChannel().