MythTV master
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
CetonStreamHandler Class Reference

#include <libmythtv/recorders/cetonstreamhandler.h>

Inheritance diagram for CetonStreamHandler:
[legend]
Collaboration diagram for CetonStreamHandler:
[legend]

Public Member Functions

bool IsConnected (void) const
 
bool IsCableCardInstalled () const
 
bool EnterPowerSavingMode (void)
 
bool TuneFrequency (uint frequency, const QString &modulation)
 
bool TuneProgram (uint program)
 
bool TuneVChannel (const QString &vchannel)
 
uint GetProgramNumber (void) const
 
- Public Member Functions inherited from IPTVStreamHandler
void AddListener (MPEGStreamData *data, bool=false, bool=false, const QString &output_file=QString()) override
 
- Public Member Functions inherited from StreamHandler
virtual void AddListener (MPEGStreamData *data, bool allow_section_reader=false, bool needs_buffering=false, const QString &output_file=QString())
 
virtual void RemoveListener (MPEGStreamData *data)
 
bool IsRunning (void) const
 
bool HasError (void) const
 
virtual bool AddNamedOutputFile (const QString &filename)
 Called with _listener_lock locked just after adding new output file. More...
 
virtual void RemoveNamedOutputFile (const QString &filename)
 Called with _listener_lock locked just before removing old output file. More...
 
virtual void ReaderPaused (int fd)=0
 
virtual void PriorityEvent (int fd)=0
 

Static Public Member Functions

static CetonStreamHandlerGet (const QString &devname, int inputid)
 
static void Return (CetonStreamHandler *&ref, int inputid)
 
- Static Public Member Functions inherited from IPTVStreamHandler
static IPTVStreamHandlerGet (const IPTVTuningData &tuning, int inputid)
 
static void Return (IPTVStreamHandler *&ref, int inputid)
 

Private Member Functions

 CetonStreamHandler (const QString &device, int inputid)
 
bool Connect (void)
 
bool Open (void)
 
void Close (void)
 
bool VerifyTuning (void)
 
void RepeatTuning (void)
 
bool TunerOff (void)
 
bool PerformTuneVChannel (const QString &vchannel)
 
void ClearProgramNumber (void)
 
QString GetVar (const QString &section, const QString &variable) const
 
QStringList GetProgramList ()
 
bool HttpRequest (const QString &method, const QString &script, const QUrlQuery &params, QString &response, uint &status_code) const
 

Private Attributes

QString m_ipAddress
 
uint m_card {0}
 
uint m_tuner {0}
 
bool m_usingCablecard {false}
 
bool m_connected {false}
 
bool m_valid {false}
 
uint m_lastFrequency {0}
 
QString m_lastModulation
 
uint m_lastProgram {0}
 
QString m_lastVchannel
 

Static Private Attributes

static QMutex s_handlersLock
 
static QMap< QString, CetonStreamHandler * > s_handlers
 
static QMap< QString, uints_handlersRefCnt
 
static QMap< QString, bools_infoQueried
 

Additional Inherited Members

- Protected Types inherited from StreamHandler
using StreamDataList = QHash< MPEGStreamData *, QString >
 
- Protected Member Functions inherited from IPTVStreamHandler
 IPTVStreamHandler (const IPTVTuningData &tuning, int inputid)
 
void run (void) override
 Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More...
 
- Protected Member Functions inherited from StreamHandler
 StreamHandler (QString device, int inputid)
 
 ~StreamHandler () override
 
void Start (void)
 
void Stop (void)
 
void SetRunning (bool running, bool using_buffering, bool using_section_reader)
 
bool AddPIDFilter (PIDInfo *info)
 
bool RemovePIDFilter (uint pid)
 
bool RemoveAllPIDFilters (void)
 
void UpdateListeningForEIT (void)
 
bool UpdateFiltersFromStreamData (void)
 
virtual bool UpdateFilters (void)
 
virtual void CycleFiltersByPriority ()
 
PIDPriority GetPIDPriority (uint pid) const
 
void ReaderPaused (int fd) override
 
void PriorityEvent (int fd) override
 
virtual PIDInfoCreatePIDInfo (uint pid, uint stream_type, int pes_type)
 
void WriteMPTS (const unsigned char *buffer, uint len)
 Write out a copy of the raw MPTS. More...
 
virtual void SetRunningDesired (bool desired)
 At minimum this sets _running_desired, this may also send signals to anything that might be blocking the run() loop. More...
 
- Protected Member Functions inherited from MThread
virtual void run (void)
 Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More...
 
int exec (void)
 Enters the qt event loop. call exit or quit to exit thread. More...
 
 MThread (const QString &objectName)
 Standard constructor. More...
 
 MThread (const QString &objectName, QRunnable *runnable)
 Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More...
 
virtual ~MThread ()
 
 MThread (const MThread &)=delete
 
MThreadoperator= (const MThread &)=delete
 
void RunProlog (void)
 Sets up a thread, call this if you reimplement run(). More...
 
void RunEpilog (void)
 Cleans up a thread's resources, call this if you reimplement run(). More...
 
QThread * qthread (void)
 Returns the thread, this will always return the same pointer no matter how often you restart the thread. More...
 
void setObjectName (const QString &name)
 
QString objectName (void) const
 
void setPriority (QThread::Priority priority)
 
QThread::Priority priority (void) const
 
bool isFinished (void) const
 
bool isRunning (void) const
 
void setStackSize (uint stackSize)
 
uint stackSize (void) const
 
void exit (int retcode=0)
 Use this to exit from the thread if you are using a Qt event loop. More...
 
void start (QThread::Priority p=QThread::InheritPriority)
 Tell MThread to start running the thread in the near future. More...
 
void terminate (void)
 Kill a thread unsafely. More...
 
void quit (void)
 calls exit(0) More...
 
bool wait (std::chrono::milliseconds time=std::chrono::milliseconds::max())
 Wait for the MThread to exit, with a maximum timeout. More...
 
- Protected Member Functions inherited from DeviceReaderCB
virtual ~DeviceReaderCB ()=default
 
virtual void ReaderPaused (int fd)=0
 
virtual void PriorityEvent (int fd)=0
 
- Static Protected Member Functions inherited from MThread
static void setTerminationEnabled (bool enabled=true)
 
static void usleep (std::chrono::microseconds time)
 
template<typename R , typename P >
static std::enable_if_t< std::chrono::treat_as_floating_point< R >::value, void > usleep (std::chrono::duration< R, P > time)
 
static void ThreadSetup (const QString &name)
 This is to be called on startup in those few threads that haven't been ported to MThread. More...
 
static void ThreadCleanup (void)
 This is to be called on exit in those few threads that haven't been ported to MThread. More...
 
static void Cleanup (void)
 This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More...
 
static void GetAllThreadNames (QStringList &list)
 
static void GetAllRunningThreadNames (QStringList &list)
 
- Protected Attributes inherited from IPTVStreamHandler
IPTVTuningData m_tuning
 
std::array< QUdpSocket *, IPTV_SOCKET_COUNTm_sockets {}
 
std::array< IPTVStreamHandlerReadHelper *, IPTV_SOCKET_COUNTm_readHelpers {}
 
std::array< QHostAddress, IPTV_SOCKET_COUNTm_sender
 
IPTVStreamHandlerWriteHelperm_writeHelper {nullptr}
 
PacketBufferm_buffer {nullptr}
 
bool m_useRtpStreaming
 
ushort m_rtspRtpPort {0}
 
ushort m_rtspRtcpPort {0}
 
uint32_t m_rtspSsrc {0}
 
QHostAddress m_rtcpDest
 
- Protected Attributes inherited from StreamHandler
QString m_device
 
int m_inputId
 
bool m_needsBuffering {false}
 
bool m_allowSectionReader {false}
 
QMutex m_addRmLock
 
QMutex m_startStopLock
 
volatile bool m_runningDesired {false}
 
volatile bool m_bError {false}
 
bool m_running {false}
 
bool m_restarting {false}
 
bool m_usingBuffering {false}
 
bool m_usingSectionReader {false}
 
QWaitCondition m_runningStateChanged
 
QRecursiveMutex m_pidLock
 
std::vector< uintm_eitPids
 
PIDInfoMap m_pidInfo
 
uint m_openPidFilters {0}
 
bool m_filtersChanged {false}
 
MythTimer m_cycleTimer
 
ThreadedFileWriterm_mptsTfw {nullptr}
 
QSet< QString > m_mptsFiles
 
QString m_mptsBaseFile
 
QMutex m_mptsLock
 
QRecursiveMutex m_listenerLock
 
StreamDataList m_streamDataList
 
- Protected Attributes inherited from MThread
MThreadInternalm_thread {nullptr}
 
QRunnable * m_runnable {nullptr}
 
bool m_prologExecuted {true}
 
bool m_epilogExecuted {true}
 
- Static Protected Attributes inherited from IPTVStreamHandler
static QMutex s_iptvhandlers_lock
 
static QMap< QString, IPTVStreamHandler * > s_iptvhandlers
 
static QMap< QString, uints_iptvhandlers_refcnt
 

Detailed Description

Definition at line 25 of file cetonstreamhandler.h.

Constructor & Destructor Documentation

◆ CetonStreamHandler()

CetonStreamHandler::CetonStreamHandler ( const QString &  device,
int  inputid 
)
explicitprivate

Definition at line 110 of file cetonstreamhandler.cpp.

Referenced by Get().

Member Function Documentation

◆ ClearProgramNumber()

void CetonStreamHandler::ClearProgramNumber ( void  )
private

Definition at line 438 of file cetonstreamhandler.cpp.

Referenced by TuneVChannel().

◆ Close()

void CetonStreamHandler::Close ( void  )
private

Definition at line 190 of file cetonstreamhandler.cpp.

Referenced by Return().

◆ Connect()

bool CetonStreamHandler::Connect ( void  )
private

Definition at line 199 of file cetonstreamhandler.cpp.

Referenced by Open().

◆ EnterPowerSavingMode()

bool CetonStreamHandler::EnterPowerSavingMode ( void  )

Definition at line 208 of file cetonstreamhandler.cpp.

Referenced by CetonChannel::EnterPowerSavingMode().

◆ Get()

CetonStreamHandler * CetonStreamHandler::Get ( const QString &  devname,
int  inputid 
)
static

◆ GetProgramList()

QStringList CetonStreamHandler::GetProgramList ( )
private

Definition at line 508 of file cetonstreamhandler.cpp.

Referenced by TuneProgram().

◆ GetProgramNumber()

uint CetonStreamHandler::GetProgramNumber ( void  ) const

Definition at line 452 of file cetonstreamhandler.cpp.

Referenced by CetonChannel::SetChannelByString().

◆ GetVar()

QString CetonStreamHandler::GetVar ( const QString &  section,
const QString &  variable 
) const
private

◆ HttpRequest()

bool CetonStreamHandler::HttpRequest ( const QString &  method,
const QString &  script,
const QUrlQuery &  params,
QString &  response,
uint status_code 
) const
private

◆ IsCableCardInstalled()

bool CetonStreamHandler::IsCableCardInstalled ( ) const
inline

◆ IsConnected()

bool CetonStreamHandler::IsConnected ( void  ) const

Definition at line 224 of file cetonstreamhandler.cpp.

Referenced by CetonChannel::Open().

◆ Open()

bool CetonStreamHandler::Open ( void  )
private

Definition at line 185 of file cetonstreamhandler.cpp.

◆ PerformTuneVChannel()

bool CetonStreamHandler::PerformTuneVChannel ( const QString &  vchannel)
private

Definition at line 394 of file cetonstreamhandler.cpp.

Referenced by ClearProgramNumber(), and TuneVChannel().

◆ RepeatTuning()

void CetonStreamHandler::RepeatTuning ( void  )
private

Definition at line 287 of file cetonstreamhandler.cpp.

◆ Return()

void CetonStreamHandler::Return ( CetonStreamHandler *&  ref,
int  inputid 
)
static

◆ TuneFrequency()

bool CetonStreamHandler::TuneFrequency ( uint  frequency,
const QString &  modulation 
)

Definition at line 311 of file cetonstreamhandler.cpp.

Referenced by RepeatTuning(), CetonChannel::Tune(), and TunerOff().

◆ TuneProgram()

bool CetonStreamHandler::TuneProgram ( uint  program)

Definition at line 359 of file cetonstreamhandler.cpp.

Referenced by RepeatTuning(), and CetonChannel::SetChannelByString().

◆ TunerOff()

bool CetonStreamHandler::TunerOff ( void  )
private

Definition at line 300 of file cetonstreamhandler.cpp.

Referenced by Close(), and EnterPowerSavingMode().

◆ TuneVChannel()

bool CetonStreamHandler::TuneVChannel ( const QString &  vchannel)

Definition at line 419 of file cetonstreamhandler.cpp.

Referenced by RepeatTuning(), CetonChannel::Tune(), and TunerOff().

◆ VerifyTuning()

bool CetonStreamHandler::VerifyTuning ( void  )
private

Definition at line 229 of file cetonstreamhandler.cpp.

Member Data Documentation

◆ m_card

uint CetonStreamHandler::m_card {0}
private

Definition at line 66 of file cetonstreamhandler.h.

Referenced by CetonStreamHandler().

◆ m_connected

bool CetonStreamHandler::m_connected {false}
private

Definition at line 69 of file cetonstreamhandler.h.

Referenced by Close(), Connect(), and IsConnected().

◆ m_ipAddress

QString CetonStreamHandler::m_ipAddress
private

Definition at line 65 of file cetonstreamhandler.h.

Referenced by CetonStreamHandler(), GetProgramList(), GetVar(), and HttpRequest().

◆ m_lastFrequency

uint CetonStreamHandler::m_lastFrequency {0}
private

Definition at line 72 of file cetonstreamhandler.h.

Referenced by RepeatTuning(), TuneFrequency(), and VerifyTuning().

◆ m_lastModulation

QString CetonStreamHandler::m_lastModulation
private

Definition at line 73 of file cetonstreamhandler.h.

Referenced by RepeatTuning(), TuneFrequency(), and VerifyTuning().

◆ m_lastProgram

uint CetonStreamHandler::m_lastProgram {0}
private

Definition at line 74 of file cetonstreamhandler.h.

Referenced by RepeatTuning(), TuneProgram(), and VerifyTuning().

◆ m_lastVchannel

QString CetonStreamHandler::m_lastVchannel
private

Definition at line 75 of file cetonstreamhandler.h.

Referenced by RepeatTuning(), and TuneVChannel().

◆ m_tuner

uint CetonStreamHandler::m_tuner {0}
private

◆ m_usingCablecard

bool CetonStreamHandler::m_usingCablecard {false}
private

Definition at line 68 of file cetonstreamhandler.h.

Referenced by CetonStreamHandler(), IsCableCardInstalled(), and TunerOff().

◆ m_valid

bool CetonStreamHandler::m_valid {false}
private

Definition at line 70 of file cetonstreamhandler.h.

Referenced by CetonStreamHandler(), and Connect().

◆ s_handlers

QMap< QString, CetonStreamHandler * > CetonStreamHandler::s_handlers
staticprivate

Definition at line 79 of file cetonstreamhandler.h.

Referenced by Get(), and Return().

◆ s_handlersLock

QMutex CetonStreamHandler::s_handlersLock
staticprivate

Definition at line 78 of file cetonstreamhandler.h.

Referenced by Get(), and Return().

◆ s_handlersRefCnt

QMap< QString, uint > CetonStreamHandler::s_handlersRefCnt
staticprivate

Definition at line 80 of file cetonstreamhandler.h.

Referenced by Get(), and Return().

◆ s_infoQueried

QMap< QString, bool > CetonStreamHandler::s_infoQueried
staticprivate

Definition at line 81 of file cetonstreamhandler.h.

Referenced by CetonStreamHandler().


The documentation for this class was generated from the following files: