vdr  2.0.6
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
cCiAdapter Class Referenceabstract

#include <ci.h>

Collaboration diagram for cCiAdapter:
[legend]

Public Member Functions

 cCiAdapter (void)
 
virtual ~cCiAdapter ()
 
virtual bool Ready (void)
 
virtual bool SetIdle (bool Idle, bool TestOnly)
 
virtual bool IsIdle (void) const
 
- Public Member Functions inherited from cThread
 cThread (const char *Description=NULL, bool LowPriority=false)
 
virtual ~cThread ()
 
void SetDescription (const char *Description,...) __attribute__((format(printf
 
void bool Start (void)
 
bool Active (void)
 

Protected Member Functions

virtual void Action (void)
 
virtual int Read (uint8_t *Buffer, int MaxLength)=0
 
virtual void Write (const uint8_t *Buffer, int Length)=0
 
virtual bool Reset (int Slot)=0
 
virtual eModuleStatus ModuleStatus (int Slot)=0
 
virtual bool Assign (cDevice *Device, bool Query=false)=0
 
- Protected Member Functions inherited from cThread
void SetPriority (int Priority)
 
void SetIOPriority (int Priority)
 
void Lock (void)
 
void Unlock (void)
 
bool Running (void)
 
void Cancel (int WaitSeconds=0)
 

Private Member Functions

void AddCamSlot (cCamSlot *CamSlot)
 

Private Attributes

cDeviceassignedDevice
 
cCamSlotcamSlots [MAX_CAM_SLOTS_PER_ADAPTER]
 

Friends

class cCamSlot
 

Additional Inherited Members

- Static Public Member Functions inherited from cThread
static tThreadId ThreadId (void)
 
static tThreadId IsMainThread (void)
 
static void SetMainThreadId (void)
 

Detailed Description

Definition at line 79 of file ci.h.

Constructor & Destructor Documentation

cCiAdapter::cCiAdapter ( void  )

Definition at line 1493 of file ci.c.

References assignedDevice, camSlots, and MAX_CAM_SLOTS_PER_ADAPTER.

cCiAdapter::~cCiAdapter ( )
virtual

The derived class must call Cancel(3) in its destructor.

Definition at line 1501 of file ci.c.

References camSlots, cThread::Cancel(), and MAX_CAM_SLOTS_PER_ADAPTER.

Member Function Documentation

void cCiAdapter::Action ( void  )
protectedvirtual

Handles the attached CAM slots in a separate thread.

The derived class must call the Start() function to actually start CAM handling.

Implements cThread.

Definition at line 1531 of file ci.c.

References cTPDU::Buffer(), camSlots, cTPDU::Dump(), MAX_CAM_SLOTS_PER_ADAPTER, cTPDU::MaxSize(), cCamSlot::Process(), Read(), cThread::Running(), cTPDU::SetSize(), cTPDU::Slot(), and cCamSlot::SlotNumber().

void cCiAdapter::AddCamSlot ( cCamSlot CamSlot)
private

Adds the given CamSlot to this CI adapter.

Definition at line 1508 of file ci.c.

References camSlots, esyslog, MAX_CAM_SLOTS_PER_ADAPTER, and cCamSlot::slotIndex.

Referenced by cCamSlot::cCamSlot().

virtual bool cCiAdapter::Assign ( cDevice Device,
bool  Query = false 
)
protectedpure virtual

Assigns this adapter to the given Device, if this is possible.

If Query is 'true', the adapter only checks whether it can be assigned to the Device, but doesn't actually assign itself to it. Returns true if the adapter can be assigned to the Device. If Device is NULL, the adapter will be unassigned from any device it was previously assigned to. The value of Query is ignored in that case, and this function always returns 'true'.

Implemented in cDvbCiAdapter.

Referenced by cCamSlot::Assign().

virtual bool cCiAdapter::IsIdle ( void  ) const
inlinevirtual

Reimplemented in cDvbCiAdapter.

Definition at line 119 of file ci.h.

Referenced by cDvbDevice::ProvidesEIT().

virtual eModuleStatus cCiAdapter::ModuleStatus ( int  Slot)
protectedpure virtual

Returns the status of the CAM in the given Slot.

Implemented in cDvbCiAdapter.

Referenced by cCamSlot::ModuleStatus().

virtual int cCiAdapter::Read ( uint8_t *  Buffer,
int  MaxLength 
)
protectedpure virtual

Reads one chunk of data into the given Buffer, up to MaxLength bytes.

If no data is available immediately, wait for up to CAM_READ_TIMEOUT. Returns the number of bytes read (in case of an error it will also return 0).

Implemented in cDvbCiAdapter.

Referenced by Action().

bool cCiAdapter::Ready ( void  )
virtual

Returns 'true' if all present CAMs in this adapter are ready.

Definition at line 1522 of file ci.c.

References camSlots, and MAX_CAM_SLOTS_PER_ADAPTER.

Referenced by cDvbDevice::Ready().

virtual bool cCiAdapter::Reset ( int  Slot)
protectedpure virtual

Resets the CAM in the given Slot.

Returns true if the operation was successful.

Implemented in cDvbCiAdapter.

Referenced by cCamSlot::Reset().

virtual bool cCiAdapter::SetIdle ( bool  Idle,
bool  TestOnly 
)
inlinevirtual

Reimplemented in cDvbCiAdapter.

Definition at line 118 of file ci.h.

Referenced by cDvbDevice::SetIdleDevice().

virtual void cCiAdapter::Write ( const uint8_t *  Buffer,
int  Length 
)
protectedpure virtual

Writes Length bytes of the given Buffer.

Implemented in cDvbCiAdapter.

Referenced by cCamSlot::Write().

Friends And Related Function Documentation

friend class cCamSlot
friend

Definition at line 80 of file ci.h.

Referenced by cDvbCiAdapter::cDvbCiAdapter().

Member Data Documentation

cDevice* cCiAdapter::assignedDevice
private

Definition at line 82 of file ci.h.

Referenced by cCamSlot::Assign(), cCiAdapter(), cCamSlot::Device(), and cCamSlot::~cCamSlot().

cCamSlot* cCiAdapter::camSlots[MAX_CAM_SLOTS_PER_ADAPTER]
private

Definition at line 83 of file ci.h.

Referenced by Action(), AddCamSlot(), cCiAdapter(), Ready(), and ~cCiAdapter().


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