vdr 2.6.3
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
cChannels Class Reference

#include <channels.h>

Public Member Functions

 cChannels (void)
 
void HashChannel (cChannel *Channel)
 
void UnhashChannel (cChannel *Channel)
 
int GetNextGroup (int Idx) const
 
int GetPrevGroup (int Idx) const
 
int GetNextNormal (int Idx) const
 
int GetPrevNormal (int Idx) const
 
void ReNumber (void)
 
bool MoveNeedsDecrement (cChannel *From, cChannel *To)
 
void Del (cChannel *Channel)
 
const cChannelGetByNumber (int Number, int SkipGap=0) const
 
cChannelGetByNumber (int Number, int SkipGap=0)
 
const cChannelGetByServiceID (int Source, int Transponder, unsigned short ServiceID) const
 
cChannelGetByServiceID (int Source, int Transponder, unsigned short ServiceID)
 
const cChannelGetByChannelID (tChannelID ChannelID, bool TryWithoutRid=false, bool TryWithoutPolarization=false) const
 
cChannelGetByChannelID (tChannelID ChannelID, bool TryWithoutRid=false, bool TryWithoutPolarization=false)
 
const cChannelGetByTransponderID (tChannelID ChannelID) const
 
cChannelGetByTransponderID (tChannelID ChannelID)
 
bool HasUniqueChannelID (const cChannel *NewChannel, const cChannel *OldChannel=NULL) const
 
bool SwitchTo (int Number) const
 
void SetModifiedByUser (void)
 
bool ModifiedByUser (int &State) const
 
cChannelNewChannel (const cChannel *Transponder, const char *Name, const char *ShortName, const char *Provider, int Nid, int Tid, int Sid, int Rid=0)
 
bool MarkObsoleteChannels (int Source, int Nid, int Tid)
 
- Public Member Functions inherited from cConfig< cChannel >
 cConfig (const char *NeedsLocking=NULL)
 
virtual ~cConfig ()
 
const char * FileName (void)
 
bool Load (const char *FileName=NULL, bool AllowComments=false, bool MustExist=false)
 
bool Save (void) const
 
- Public Member Functions inherited from cList< T >
 cList (const char *NeedsLocking=NULL)
 
const T * Get (int Index) const
 
const T * First (void) const
 
const T * Last (void) const
 
const T * Prev (const T *Object) const
 
const T * Next (const T *Object) const
 
T * Get (int Index)
 
T * First (void)
 
T * Last (void)
 
T * Prev (const T *Object)
 
T * Next (const T *Object)
 
- Public Member Functions inherited from cListBase
virtual ~cListBase ()
 
bool Lock (cStateKey &StateKey, bool Write=false, int TimeoutMs=0) const
 
void SetSyncStateKey (cStateKey &StateKey)
 
void SetUseGarbageCollector (void)
 
void SetExplicitModify (void)
 
void SetModified (void)
 
void Add (cListObject *Object, cListObject *After=NULL)
 
void Ins (cListObject *Object, cListObject *Before=NULL)
 
void Del (cListObject *Object, bool DeleteObject=true)
 
virtual void Move (int From, int To)
 
void Move (cListObject *From, cListObject *To)
 
virtual void Clear (void)
 
bool Contains (const cListObject *Object) const
 
const cListObjectGet (int Index) const
 
cListObjectGet (int Index)
 
int Count (void) const
 
void Sort (void)
 

Static Public Member Functions

static const cChannelsGetChannelsRead (cStateKey &StateKey, int TimeoutMs=0)
 
static cChannelsGetChannelsWrite (cStateKey &StateKey, int TimeoutMs=0)
 
static bool Load (const char *FileName, bool AllowComments=false, bool MustExist=false)
 
static int MaxNumber (void)
 
static int MaxChannelNameLength (void)
 
static int MaxShortChannelNameLength (void)
 

Private Member Functions

void DeleteDuplicateChannels (void)
 

Private Attributes

int modifiedByUser
 
cHash< cChannelchannelsHashSid
 

Static Private Attributes

static cChannels channels
 
static int maxNumber = 0
 
static int maxChannelNameLength = 0
 
static int maxShortChannelNameLength = 0
 

Additional Inherited Members

- Protected Member Functions inherited from cListBase
 cListBase (const char *NeedsLocking=NULL)
 
- Protected Attributes inherited from cListBase
cListObjectobjects
 
cListObjectlastObject
 
int count
 
cStateLock stateLock
 
const char * needsLocking
 
bool useGarbageCollector
 

Detailed Description

Definition at line 211 of file channels.h.

Constructor & Destructor Documentation

◆ cChannels()

cChannels::cChannels ( void  )

Definition at line 849 of file channels.c.

References modifiedByUser.

Member Function Documentation

◆ Del()

void cChannels::Del ( cChannel Channel)

Delete the given Channel from the list.

Definition at line 974 of file channels.c.

References cListBase::Del(), cList< T >::First(), cList< T >::Next(), and UnhashChannel().

Referenced by cMenuChannels::Delete(), and DeleteDuplicateChannels().

◆ DeleteDuplicateChannels()

void cChannels::DeleteDuplicateChannels ( void  )
private

◆ GetByChannelID() [1/2]

cChannel * cChannels::GetByChannelID ( tChannelID  ChannelID,
bool  TryWithoutRid = false,
bool  TryWithoutPolarization = false 
)
inline

Definition at line 243 of file channels.h.

References GetByChannelID().

Referenced by GetByChannelID().

◆ GetByChannelID() [2/2]

const cChannel * cChannels::GetByChannelID ( tChannelID  ChannelID,
bool  TryWithoutRid = false,
bool  TryWithoutPolarization = false 
) const

◆ GetByNumber() [1/2]

cChannel * cChannels::GetByNumber ( int  Number,
int  SkipGap = 0 
)
inline

Definition at line 239 of file channels.h.

References GetByNumber().

Referenced by GetByNumber().

◆ GetByNumber() [2/2]

const cChannel * cChannels::GetByNumber ( int  Number,
int  SkipGap = 0 
) const

◆ GetByServiceID() [1/2]

cChannel * cChannels::GetByServiceID ( int  Source,
int  Transponder,
unsigned short  ServiceID 
)
inline

Definition at line 241 of file channels.h.

References GetByServiceID().

Referenced by GetByServiceID().

◆ GetByServiceID() [2/2]

const cChannel * cChannels::GetByServiceID ( int  Source,
int  Transponder,
unsigned short  ServiceID 
) const

◆ GetByTransponderID() [1/2]

cChannel * cChannels::GetByTransponderID ( tChannelID  ChannelID)
inline

Definition at line 245 of file channels.h.

References GetByTransponderID().

Referenced by GetByTransponderID().

◆ GetByTransponderID() [2/2]

const cChannel * cChannels::GetByTransponderID ( tChannelID  ChannelID) const

◆ GetChannelsRead()

const cChannels * cChannels::GetChannelsRead ( cStateKey StateKey,
int  TimeoutMs = 0 
)
static

Gets the list of channels for read access.

See cTimers::GetTimersRead() for details.

Definition at line 855 of file channels.c.

References channels, and cListBase::Lock().

Referenced by cRecordControl::cRecordControl(), main(), cEITScanner::Process(), cMenuChannels::Set(), and cRecordControls::Start().

◆ GetChannelsWrite()

cChannels * cChannels::GetChannelsWrite ( cStateKey StateKey,
int  TimeoutMs = 0 
)
static

Gets the list of channels for write access.

See cTimers::GetTimersWrite() for details.

Definition at line 860 of file channels.c.

References channels, and cListBase::Lock().

Referenced by cEIT::cEIT(), cMenuChannels::Delete(), cMenuChannels::Move(), cNitFilter::Process(), cPatFilter::Process(), cSdtFilter::Process(), and cMenuEditChannel::ProcessKey().

◆ GetNextGroup()

int cChannels::GetNextGroup ( int  Idx) const

Get next channel group.

Definition at line 905 of file channels.c.

References cList< T >::Get(), cChannel::GroupSep(), and cChannel::Name().

◆ GetNextNormal()

int cChannels::GetNextNormal ( int  Idx) const

Get next normal channel (not group)

Definition at line 921 of file channels.c.

References cList< T >::Get(), and cChannel::GroupSep().

Referenced by cMenuChannels::Delete().

◆ GetPrevGroup()

int cChannels::GetPrevGroup ( int  Idx) const

Get previous channel group.

Definition at line 913 of file channels.c.

References cList< T >::Get(), cChannel::GroupSep(), and cChannel::Name().

◆ GetPrevNormal()

int cChannels::GetPrevNormal ( int  Idx) const

Get previous normal channel (not group)

Definition at line 929 of file channels.c.

References cList< T >::Get(), and cChannel::GroupSep().

Referenced by cMenuChannels::Delete().

◆ HashChannel()

void cChannels::HashChannel ( cChannel Channel)

Definition at line 895 of file channels.c.

References cHashBase::Add(), channelsHashSid, and cChannel::Sid().

Referenced by ReNumber(), and cChannel::SetId().

◆ HasUniqueChannelID()

bool cChannels::HasUniqueChannelID ( const cChannel NewChannel,
const cChannel OldChannel = NULL 
) const

◆ Load()

bool cChannels::Load ( const char *  FileName,
bool  AllowComments = false,
bool  MustExist = false 
)
static

◆ MarkObsoleteChannels()

bool cChannels::MarkObsoleteChannels ( int  Source,
int  Nid,
int  Tid 
)

◆ MaxChannelNameLength()

int cChannels::MaxChannelNameLength ( void  )
static

◆ MaxNumber()

static int cChannels::MaxNumber ( void  )
inlinestatic

◆ MaxShortChannelNameLength()

int cChannels::MaxShortChannelNameLength ( void  )
static

◆ ModifiedByUser()

bool cChannels::ModifiedByUser ( int &  State) const

Returns true if the channels have been modified by the user since the last call to this function with the same State variable.

State must be initialized with 0 and will be set to the current value of the list's internal state variable upon return from this function.

Definition at line 1098 of file channels.c.

References modifiedByUser.

Referenced by main().

◆ MoveNeedsDecrement()

bool cChannels::MoveNeedsDecrement ( cChannel From,
cChannel To 
)

Definition at line 955 of file channels.c.

References cList< T >::Next(), and cChannel::Number().

◆ NewChannel()

cChannel * cChannels::NewChannel ( const cChannel Transponder,
const char *  Name,
const char *  ShortName,
const char *  Provider,
int  Nid,
int  Tid,
int  Sid,
int  Rid = 0 
)

◆ ReNumber()

void cChannels::ReNumber ( void  )

Recalculate 'number' based on channel type.

Definition at line 937 of file channels.c.

References channelsHashSid, cHashBase::Clear(), cList< T >::First(), HashChannel(), maxNumber, and cList< T >::Next().

Referenced by Load(), NewChannel(), cMenuEditChannel::ProcessKey(), and cMenuChannels::Propagate().

◆ SetModifiedByUser()

void cChannels::SetModifiedByUser ( void  )

◆ SwitchTo()

bool cChannels::SwitchTo ( int  Number) const

Definition at line 1062 of file channels.c.

References GetByNumber(), cDevice::PrimaryDevice(), and cDevice::SwitchChannel().

Referenced by cMenuChannels::Delete(), and main().

◆ UnhashChannel()

void cChannels::UnhashChannel ( cChannel Channel)

Definition at line 900 of file channels.c.

References channelsHashSid, cHashBase::Del(), and cChannel::Sid().

Referenced by Del(), and cChannel::SetId().

Member Data Documentation

◆ channels

cChannels cChannels::channels
staticprivate

Definition at line 213 of file channels.h.

Referenced by GetChannelsRead(), GetChannelsWrite(), and Load().

◆ channelsHashSid

cHash<cChannel> cChannels::channelsHashSid
private

Definition at line 218 of file channels.h.

Referenced by GetByChannelID(), GetByServiceID(), HashChannel(), ReNumber(), and UnhashChannel().

◆ maxChannelNameLength

int cChannels::maxChannelNameLength = 0
staticprivate

Definition at line 215 of file channels.h.

Referenced by MaxChannelNameLength(), and SetModifiedByUser().

◆ maxNumber

int cChannels::maxNumber = 0
staticprivate

Definition at line 214 of file channels.h.

Referenced by MaxNumber(), and ReNumber().

◆ maxShortChannelNameLength

int cChannels::maxShortChannelNameLength = 0
staticprivate

Definition at line 216 of file channels.h.

Referenced by MaxShortChannelNameLength(), and SetModifiedByUser().

◆ modifiedByUser

int cChannels::modifiedByUser
private

Definition at line 217 of file channels.h.

Referenced by cChannels(), ModifiedByUser(), and SetModifiedByUser().


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