MythTV
master
|
Keeps track of recordings in a current LiveTV instance. More...
#include <livetvchain.h>
Public Member Functions | |
LiveTVChain () | |
~LiveTVChain () override | |
QString | InitializeNewChain (const QString &seed) |
void | LoadFromExistingChain (const QString &id) |
void | SetHostPrefix (const QString &prefix) |
void | SetInputType (const QString &type) |
void | DestroyChain (void) |
void | AppendNewProgram (ProgramInfo *pginfo, const QString &channum, const QString &inputname, bool discont) |
void | FinishedRecording (ProgramInfo *pginfo) |
void | DeleteProgram (ProgramInfo *pginfo) |
void | ReloadAll (const QStringList &data=QStringList()) |
QString | GetID (void) const |
int | GetCurPos (void) const |
int | ProgramIsAt (uint chanid, const QDateTime &starttime) const |
int | ProgramIsAt (const ProgramInfo &pginfo) const |
std::chrono::seconds | GetLengthAtCurPos (void) |
std::chrono::seconds | GetLengthAtPos (int pos) |
int | TotalSize (void) const |
bool | HasNext (void) const |
bool | HasPrev (void) const |
ProgramInfo * | GetProgramAt (int at) const |
Returns program at the desired location. More... | |
bool | NeedsToSwitch (void) const |
Returns true iff a switch is required but no jump is required m_jumppos sets to INT_MAX means not set. More... | |
bool | NeedsToJump (void) const |
Returns true iff a switch and jump are required. More... | |
QString | GetChannelName (int pos=-1) const |
QString | GetInputName (int pos=-1) const |
QString | GetInputType (int pos=-1) const |
void | SetProgram (const ProgramInfo &pginfo) |
void | SwitchTo (int num) |
Sets the recording to switch to. More... | |
void | SwitchToNext (bool up) |
Sets the recording to switch to. More... | |
void | ClearSwitch (void) |
ProgramInfo * | GetSwitchProgram (bool &discont, bool &newtype, int &newid) |
Returns the recording we should switch to. More... | |
void | JumpTo (int num, std::chrono::seconds pos) |
void | JumpToNext (bool up, std::chrono::seconds pos) |
jump to the next (up == true) or previous (up == false) liveTV program If pos > 0: indicate the absolute position where to start the next program If pos < 0: indicate offset position; in which case the right liveTV program will be found accordingly. More... | |
std::chrono::seconds | GetJumpPos (void) |
Returns the jump position in seconds and clears it. More... | |
void | SetHostSocket (MythSocket *sock) |
bool | IsHostSocket (MythSocket *sock) |
uint | HostSocketCount (void) const |
void | DelHostSocket (MythSocket *sock) |
QString | toString () const |
QStringList | entriesToStringList () const |
bool | entriesFromStringList (const QStringList &items) |
![]() | |
ReferenceCounter (const QString &debugName, bool logDebug=true) | |
Creates reference counter with an initial value of 1. More... | |
virtual int | IncrRef (void) |
Increments reference count. More... | |
virtual int | DecrRef (void) |
Decrements reference count and deletes on 0. More... | |
Private Member Functions | |
void | BroadcastUpdate () |
void | GetEntryAt (int at, LiveTVChainEntry &entry) const |
ProgramInfo * | DoGetNextProgram (bool up, int curpos, int &newid, bool &discont, bool &newtype) |
Static Private Member Functions | |
static ProgramInfo * | EntryToProgram (const LiveTVChainEntry &entry) |
Private Attributes | |
QString | m_id |
QList< LiveTVChainEntry > | m_chain |
int | m_maxPos {0} |
QRecursiveMutex | m_lock |
QString | m_hostPrefix |
QString | m_inputType |
int | m_curPos {0} |
uint | m_curChanId {0} |
QDateTime | m_curStartTs |
int | m_switchId {-1} |
LiveTVChainEntry | m_switchEntry |
std::chrono::seconds | m_jumpPos {std::chrono::seconds::max()} |
QMutex | m_sockLock |
QList< MythSocket * > | m_inUseSocks |
Additional Inherited Members | |
![]() | |
static void | PrintDebug (void) |
Print out any leaks if that level of debugging is enabled. More... | |
![]() | |
virtual | ~ReferenceCounter (void) |
Called on destruction, will warn if object deleted with references in place. More... | |
![]() | |
bool | m_logDebug |
This is used to suppress creating LoggingItem classes for LoggingItem reference count changes. More... | |
QAtomicInt | m_referenceCount {1} |
Keeps track of recordings in a current LiveTV instance.
Definition at line 34 of file livetvchain.h.
LiveTVChain::LiveTVChain | ( | ) |
Definition at line 27 of file livetvchain.cpp.
|
override |
Definition at line 33 of file livetvchain.cpp.
QString LiveTVChain::InitializeNewChain | ( | const QString & | seed | ) |
Definition at line 38 of file livetvchain.cpp.
Referenced by PlayerContext::SetTVChain().
void LiveTVChain::LoadFromExistingChain | ( | const QString & | id | ) |
Definition at line 55 of file livetvchain.cpp.
Referenced by MainServer::HandleRecorderQuery().
void LiveTVChain::SetHostPrefix | ( | const QString & | prefix | ) |
Definition at line 45 of file livetvchain.cpp.
Referenced by TVRec::SpawnLiveTV().
void LiveTVChain::SetInputType | ( | const QString & | type | ) |
Definition at line 50 of file livetvchain.cpp.
Referenced by TVRec::SpawnLiveTV(), and TVRec::TuningFrequency().
void LiveTVChain::DestroyChain | ( | void | ) |
Definition at line 196 of file livetvchain.cpp.
Referenced by PlayerContext::SetTVChain().
void LiveTVChain::AppendNewProgram | ( | ProgramInfo * | pginfo, |
const QString & | channum, | ||
const QString & | inputname, | ||
bool | discont | ||
) |
Definition at line 61 of file livetvchain.cpp.
Referenced by TVRec::CreateLiveTVRingBuffer(), and TVRec::SwitchLiveTVRingBuffer().
void LiveTVChain::FinishedRecording | ( | ProgramInfo * | pginfo | ) |
Definition at line 111 of file livetvchain.cpp.
Referenced by TVRec::FinishedRecording().
void LiveTVChain::DeleteProgram | ( | ProgramInfo * | pginfo | ) |
Definition at line 145 of file livetvchain.cpp.
Referenced by MainServer::DoDeleteThread().
void LiveTVChain::ReloadAll | ( | const QStringList & | data = QStringList() | ) |
Definition at line 210 of file livetvchain.cpp.
Referenced by GetSwitchProgram(), LoadFromExistingChain(), MythMediaBuffer::ReadPriv(), PlayerContext::ReloadTVChain(), TVRec::SpawnLiveTV(), and PlayerContext::UpdateTVChain().
|
inline |
Definition at line 56 of file livetvchain.h.
Referenced by MainServer::connectionClosed(), TV::customEvent(), TVRec::GetChainID(), TV::HandleStateChange(), TVRec::StartRecording(), and TV::SwitchInputs().
|
inline |
Definition at line 57 of file livetvchain.h.
Referenced by MythPlayer::OpenFile().
int LiveTVChain::ProgramIsAt | ( | uint | chanid, |
const QDateTime & | starttime | ||
) | const |
Definition at line 332 of file livetvchain.cpp.
Referenced by ProgramIsAt(), ReloadAll(), and SetProgram().
int LiveTVChain::ProgramIsAt | ( | const ProgramInfo & | pginfo | ) | const |
Definition at line 353 of file livetvchain.cpp.
std::chrono::seconds LiveTVChain::GetLengthAtCurPos | ( | void | ) |
Definition at line 361 of file livetvchain.cpp.
Referenced by MythPlayerUI::JumpToProgram(), and MythPlayerOverlayUI::UpdateSliderInfo().
std::chrono::seconds LiveTVChain::GetLengthAtPos | ( | int | pos | ) |
Definition at line 369 of file livetvchain.cpp.
Referenced by GetLengthAtCurPos(), and JumpToNext().
int LiveTVChain::TotalSize | ( | void | ) | const |
Definition at line 388 of file livetvchain.cpp.
Referenced by TVRec::CreateLiveTVRingBuffer().
bool LiveTVChain::HasNext | ( | void | ) | const |
Definition at line 406 of file livetvchain.cpp.
Referenced by MythPlayer::CalcMaxFFTime(), MythPlayer::CheckTVChain(), TV::customEvent(), MythPlayerUI::EventLoop(), MythPlayer::FindFrame(), MythPlayer::HasTVChainNext(), MythPlayer::IsNearEnd(), MythPlayerUI::JumpToProgram(), MythMediaBuffer::run(), SwitchToNext(), MythPlayerOverlayUI::UpdateSliderInfo(), and MythPlayer::WaitForSeek().
|
inline |
Definition at line 64 of file livetvchain.h.
Referenced by MythPlayer::CalcRWTime(), SwitchToNext(), and MythPlayerOverlayUI::UpdateSliderInfo().
ProgramInfo * LiveTVChain::GetProgramAt | ( | int | at | ) | const |
Returns program at the desired location.
NOTE: The caller must delete the returned program.
at | ProgramInfo to return [0..TotalSize()-1] or -1 for last program |
Definition at line 321 of file livetvchain.cpp.
Referenced by PlayerContext::ReloadTVChain(), and TVRec::TuningRestartRecorder().
|
inline |
Returns true iff a switch is required but no jump is required m_jumppos sets to INT_MAX means not set.
Definition at line 68 of file livetvchain.h.
Referenced by MythPlayerUI::EventLoop().
|
inline |
Returns true iff a switch and jump are required.
Definition at line 71 of file livetvchain.h.
Referenced by MythPlayerUI::EventLoop().
QString LiveTVChain::GetChannelName | ( | int | pos = -1 | ) | const |
Definition at line 680 of file livetvchain.cpp.
Referenced by PlayerContext::GetPreviousChannel(), TV::OSDDialogEvent(), TV::PlaybackMenuInit(), PlayerContext::PopPreviousChannel(), TV::PopPreviousChannel(), and PlayerContext::PushPreviousChannel().
QString LiveTVChain::GetInputName | ( | int | pos = -1 | ) | const |
Definition at line 688 of file livetvchain.cpp.
QString LiveTVChain::GetInputType | ( | int | pos = -1 | ) | const |
Definition at line 696 of file livetvchain.cpp.
Referenced by TV::HandleStateChange(), MythPlayerUI::JumpToProgram(), MythPlayer::OpenFile(), TV::SwitchInputs(), TVRec::SwitchLiveTVRingBuffer(), and MythPlayerUI::SwitchToProgram().
void LiveTVChain::SetProgram | ( | const ProgramInfo & | pginfo | ) |
Definition at line 393 of file livetvchain.cpp.
Referenced by MythPlayerUI::FileChanged(), MythPlayerUI::JumpToProgram(), TV::SwitchInputs(), and MythPlayerUI::SwitchToProgram().
void LiveTVChain::SwitchTo | ( | int | num | ) |
Sets the recording to switch to.
num | Index of recording to switch to, -1 for last recording. |
Definition at line 557 of file livetvchain.cpp.
Referenced by JumpTo(), and SwitchToNext().
void LiveTVChain::SwitchToNext | ( | bool | up | ) |
Sets the recording to switch to.
up | Set to true to switch to the next recording, false to switch to the previous recording. |
Definition at line 592 of file livetvchain.cpp.
Referenced by JumpToNext(), and MythMediaBuffer::run().
void LiveTVChain::ClearSwitch | ( | void | ) |
Definition at line 411 of file livetvchain.cpp.
Referenced by GetSwitchProgram().
ProgramInfo * LiveTVChain::GetSwitchProgram | ( | bool & | discont, |
bool & | newtype, | ||
int & | newid | ||
) |
Returns the recording we should switch to.
This returns a ProgramInfo* and tells us if this is a discontiuous switch and whether the recording type is changing.
This also clears the NeedsToSwitch()/NeedsToJump() state.
NOTE: The caller is responsible for deleting the ProgramInfo
Definition at line 429 of file livetvchain.cpp.
Referenced by MythPlayerUI::JumpToProgram(), and MythPlayerUI::SwitchToProgram().
void LiveTVChain::JumpTo | ( | int | num, |
std::chrono::seconds | pos | ||
) |
Definition at line 603 of file livetvchain.cpp.
Referenced by TV::UnpauseLiveTV().
void LiveTVChain::JumpToNext | ( | bool | up, |
std::chrono::seconds | pos | ||
) |
jump to the next (up == true) or previous (up == false) liveTV program If pos > 0: indicate the absolute position where to start the next program If pos < 0: indicate offset position; in which case the right liveTV program will be found accordingly.
Offset is in reference to the beginning of the current recordings when going down and in reference to the end of the current recording when going up
Definition at line 617 of file livetvchain.cpp.
Referenced by MythPlayer::CalcMaxFFTime(), MythPlayer::CalcRWTime(), MythPlayerUI::EventLoop(), and MythPlayerCaptionsUI::SetStream().
std::chrono::seconds LiveTVChain::GetJumpPos | ( | void | ) |
Returns the jump position in seconds and clears it.
Definition at line 673 of file livetvchain.cpp.
Referenced by MythPlayerUI::JumpToProgram().
void LiveTVChain::SetHostSocket | ( | MythSocket * | sock | ) |
Definition at line 704 of file livetvchain.cpp.
Referenced by MainServer::HandleRecorderQuery().
bool LiveTVChain::IsHostSocket | ( | MythSocket * | sock | ) |
Definition at line 712 of file livetvchain.cpp.
uint LiveTVChain::HostSocketCount | ( | void | ) | const |
Definition at line 718 of file livetvchain.cpp.
Referenced by MainServer::connectionClosed(), and MainServer::HandleRecorderQuery().
void LiveTVChain::DelHostSocket | ( | MythSocket * | sock | ) |
Definition at line 724 of file livetvchain.cpp.
Referenced by MainServer::connectionClosed(), and MainServer::HandleRecorderQuery().
QString LiveTVChain::toString | ( | ) | const |
Definition at line 739 of file livetvchain.cpp.
Referenced by MythPlayerUI::JumpToProgram(), ReloadAll(), and MythPlayerUI::SwitchToProgram().
QStringList LiveTVChain::entriesToStringList | ( | ) | const |
Definition at line 751 of file livetvchain.cpp.
Referenced by BroadcastUpdate().
bool LiveTVChain::entriesFromStringList | ( | const QStringList & | items | ) |
Definition at line 770 of file livetvchain.cpp.
Referenced by ReloadAll().
|
private |
Definition at line 189 of file livetvchain.cpp.
Referenced by AppendNewProgram(), DeleteProgram(), and FinishedRecording().
|
private |
Definition at line 272 of file livetvchain.cpp.
Referenced by DoGetNextProgram(), GetChannelName(), GetInputName(), GetInputType(), GetProgramAt(), JumpToNext(), and SwitchTo().
|
staticprivate |
Definition at line 297 of file livetvchain.cpp.
Referenced by DoGetNextProgram(), and GetProgramAt().
|
private |
Definition at line 447 of file livetvchain.cpp.
Referenced by GetSwitchProgram(), and JumpToNext().
|
private |
Definition at line 109 of file livetvchain.h.
Referenced by AppendNewProgram(), BroadcastUpdate(), DeleteProgram(), DestroyChain(), InitializeNewChain(), LoadFromExistingChain(), and ReloadAll().
|
private |
Definition at line 110 of file livetvchain.h.
Referenced by AppendNewProgram(), DeleteProgram(), DestroyChain(), DoGetNextProgram(), entriesFromStringList(), entriesToStringList(), FinishedRecording(), GetEntryAt(), GetLengthAtPos(), HasNext(), JumpToNext(), ProgramIsAt(), ReloadAll(), SwitchTo(), toString(), and TotalSize().
|
private |
Definition at line 111 of file livetvchain.h.
Referenced by AppendNewProgram(), entriesFromStringList(), entriesToStringList(), and ReloadAll().
|
mutableprivate |
Definition at line 115 of file livetvchain.h.
Referenced by AppendNewProgram(), ClearSwitch(), DeleteProgram(), DestroyChain(), entriesFromStringList(), entriesToStringList(), FinishedRecording(), GetEntryAt(), GetLengthAtPos(), GetSwitchProgram(), JumpToNext(), ProgramIsAt(), ReloadAll(), SetProgram(), SwitchTo(), and toString().
|
private |
Definition at line 118 of file livetvchain.h.
Referenced by AppendNewProgram(), and SetHostPrefix().
|
private |
Definition at line 119 of file livetvchain.h.
Referenced by AppendNewProgram(), and SetInputType().
|
private |
Definition at line 121 of file livetvchain.h.
Referenced by GetLengthAtCurPos(), GetSwitchProgram(), HasNext(), JumpToNext(), ReloadAll(), SetProgram(), SwitchTo(), SwitchToNext(), and toString().
|
private |
Definition at line 122 of file livetvchain.h.
Referenced by ReloadAll(), and SetProgram().
|
private |
Definition at line 123 of file livetvchain.h.
Referenced by ReloadAll(), and SetProgram().
|
private |
Definition at line 125 of file livetvchain.h.
Referenced by ClearSwitch(), GetSwitchProgram(), JumpToNext(), ReloadAll(), SetProgram(), and SwitchTo().
|
private |
Definition at line 126 of file livetvchain.h.
Referenced by JumpToNext(), LiveTVChain(), ReloadAll(), and SwitchTo().
|
private |
Definition at line 128 of file livetvchain.h.
Referenced by ClearSwitch(), GetJumpPos(), JumpTo(), and JumpToNext().
|
mutableprivate |
Definition at line 130 of file livetvchain.h.
Referenced by DelHostSocket(), HostSocketCount(), IsHostSocket(), and SetHostSocket().
|
private |
Definition at line 131 of file livetvchain.h.
Referenced by DelHostSocket(), HostSocketCount(), IsHostSocket(), and SetHostSocket().