MythTV
master
|
#include <libmythtv/recorders/hdhrstreamhandler.h>
Public Member Functions | |
void | AddListener (MPEGStreamData *data, bool=false, bool=false, const QString &output_file=QString()) override |
void | GetTunerStatus (struct hdhomerun_tuner_status_t *status) |
bool | IsConnected (void) const |
std::vector< DTVTunerType > | GetTunerTypes (void) const |
bool | TuneChannel (const QString &chanid) |
bool | TuneProgram (uint mpeg_prog_num) |
bool | TuneVChannel (const QString &vchn) |
Public Member Functions inherited from StreamHandler | |
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... | |
Static Public Member Functions | |
static HDHRStreamHandler * | Get (const QString &devname, int inputid, int majorid) |
static void | Return (HDHRStreamHandler *&ref, int inputid) |
Private Member Functions | |
HDHRStreamHandler (const QString &device, int inputid, int majorid) | |
bool | Connect (void) |
QString | TunerGet (const QString &name) |
QString | TunerSet (const QString &name, const QString &value) |
bool | Open (void) |
void | Close (void) |
void | run (void) override |
Reads HDHomeRun socket for tables & data. More... | |
bool | UpdateFilters (void) override |
Private Attributes | |
hdhomerun_device_t * | m_hdhomerunDevice {nullptr} |
hdhomerun_device_selector_t * | m_deviceSelector {nullptr} |
int | m_tuner {-1} |
std::vector< DTVTunerType > | m_tunerTypes |
HDHRTuneMode | m_tuneMode {hdhrTuneModeNone} |
int | m_majorId |
QRecursiveMutex | m_hdhrLock |
Static Private Attributes | |
static QMutex | s_handlersLock |
static QMap< int, HDHRStreamHandler * > | s_handlers |
static QMap< int, uint > | s_handlersRefCnt |
Additional Inherited Members | |
Protected Types inherited from StreamHandler | |
using | StreamDataList = QHash< MPEGStreamData *, QString > |
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 void | CycleFiltersByPriority () |
PIDPriority | GetPIDPriority (uint pid) const |
void | ReaderPaused (int fd) override |
void | PriorityEvent (int fd) override |
virtual PIDInfo * | CreatePIDInfo (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 | |
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 | |
MThread & | operator= (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 |
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 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< uint > | m_eitPids |
PIDInfoMap | m_pidInfo |
uint | m_openPidFilters {0} |
bool | m_filtersChanged {false} |
MythTimer | m_cycleTimer |
ThreadedFileWriter * | m_mptsTfw {nullptr} |
QSet< QString > | m_mptsFiles |
QString | m_mptsBaseFile |
QMutex | m_mptsLock |
QRecursiveMutex | m_listenerLock |
StreamDataList | m_streamDataList |
Protected Attributes inherited from MThread | |
MThreadInternal * | m_thread {nullptr} |
QRunnable * | m_runnable {nullptr} |
bool | m_prologExecuted {true} |
bool | m_epilogExecuted {true} |
Definition at line 47 of file hdhrstreamhandler.h.
|
explicitprivate |
Definition at line 97 of file hdhrstreamhandler.cpp.
Referenced by Get().
|
static |
Definition at line 29 of file hdhrstreamhandler.cpp.
Referenced by HDHRSignalMonitor::HDHRSignalMonitor(), HDHRRecorder::Open(), and HDHRChannel::Open().
|
static |
Definition at line 60 of file hdhrstreamhandler.cpp.
Referenced by HDHRRecorder::Close(), HDHRChannel::Close(), and HDHRSignalMonitor::~HDHRSignalMonitor().
|
inlineoverridevirtual |
Reimplemented from StreamHandler.
Definition at line 54 of file hdhrstreamhandler.h.
Referenced by HDHRRecorder::PauseAndWait(), HDHRRecorder::run(), and HDHRSignalMonitor::UpdateValues().
void HDHRStreamHandler::GetTunerStatus | ( | struct hdhomerun_tuner_status_t * | status | ) |
Definition at line 500 of file hdhrstreamhandler.cpp.
Referenced by HDHRSignalMonitor::UpdateValues().
bool HDHRStreamHandler::IsConnected | ( | void | ) | const |
Definition at line 507 of file hdhrstreamhandler.cpp.
Referenced by HDHRChannel::Open().
|
inline |
Definition at line 64 of file hdhrstreamhandler.h.
Referenced by HDHRChannel::Open().
bool HDHRStreamHandler::TuneChannel | ( | const QString & | chanid | ) |
Definition at line 512 of file hdhrstreamhandler.cpp.
Referenced by Close(), and HDHRChannel::Tune().
Definition at line 529 of file hdhrstreamhandler.cpp.
bool HDHRStreamHandler::TuneVChannel | ( | const QString & | vchn | ) |
Definition at line 548 of file hdhrstreamhandler.cpp.
Referenced by HDHRChannel::Tune().
|
private |
Definition at line 379 of file hdhrstreamhandler.cpp.
Referenced by Open().
|
private |
Definition at line 418 of file hdhrstreamhandler.cpp.
Referenced by TuneChannel(), and TuneVChannel().
|
private |
Definition at line 450 of file hdhrstreamhandler.cpp.
Referenced by TuneChannel(), TuneProgram(), TuneVChannel(), and UpdateFilters().
|
private |
Definition at line 305 of file hdhrstreamhandler.cpp.
|
private |
Definition at line 364 of file hdhrstreamhandler.cpp.
Referenced by Return().
|
overrideprivatevirtual |
Reads HDHomeRun socket for tables & data.
Reimplemented from MThread.
Definition at line 108 of file hdhrstreamhandler.cpp.
|
overrideprivatevirtual |
Reimplemented from StreamHandler.
Definition at line 235 of file hdhrstreamhandler.cpp.
Referenced by run().
|
private |
Definition at line 87 of file hdhrstreamhandler.h.
Referenced by Close(), Connect(), GetTunerStatus(), IsConnected(), Open(), run(), TunerGet(), and TunerSet().
|
private |
Definition at line 88 of file hdhrstreamhandler.h.
|
private |
Definition at line 89 of file hdhrstreamhandler.h.
Referenced by Connect(), TunerGet(), and TunerSet().
|
private |
Definition at line 90 of file hdhrstreamhandler.h.
Referenced by GetTunerTypes(), and Open().
|
private |
Definition at line 91 of file hdhrstreamhandler.h.
Referenced by run(), TuneChannel(), TuneProgram(), TuneVChannel(), and UpdateFilters().
|
private |
Definition at line 92 of file hdhrstreamhandler.h.
Referenced by Return().
|
mutableprivate |
Definition at line 94 of file hdhrstreamhandler.h.
Referenced by GetTunerStatus(), run(), TunerGet(), and TunerSet().
|
staticprivate |
Definition at line 97 of file hdhrstreamhandler.h.
|
staticprivate |
Definition at line 98 of file hdhrstreamhandler.h.
|
staticprivate |
Definition at line 99 of file hdhrstreamhandler.h.