cTransfer Class Reference

#include <transfer.h>

Inheritance diagram for cTransfer:

Inheritance graph
Collaboration diagram for cTransfer:

Collaboration graph

List of all members.

Public Member Functions

 cTransfer (int VPid, const int *APids, const int *DPids, const int *SPids)
virtual ~cTransfer ()

Protected Member Functions

virtual void Activate (bool On)
virtual void Receive (uchar *Data, int Length)
virtual void Action (void)

Private Attributes


Detailed Description

Definition at line 19 of file transfer.h.

Constructor & Destructor Documentation

cTransfer::cTransfer ( int  VPid,
const int *  APids,
const int *  DPids,
const int *  SPids 

Definition at line 17 of file transfer.c.

References remux, ringBuffer, Setup, TRANSFERBUFSIZE, TS_SIZE, and cSetup::UseDolbyDigital.

cTransfer::~cTransfer (  )  [virtual]

Definition at line 25 of file transfer.c.

References cPlayer::Detach(), cReceiver::Detach(), remux, and ringBuffer.

Here is the call graph for this function:

Member Function Documentation

void cTransfer::Activate ( bool  On  )  [protected, virtual]

Reimplemented from cPlayer.

Definition at line 33 of file transfer.c.

References cThread::Cancel(), and cThread::Start().

Here is the call graph for this function:

void cTransfer::Receive ( uchar Data,
int  Length 
) [protected, virtual]

This function is called from the cDevice we are attached to, and delivers one TS packet from the set of PIDs the cReceiver has requested. The data packet must be accepted immediately, and the call must return as soon as possible, without any unnecessary delay. Each TS packet will be delivered only ONCE, so the cReceiver must make sure that it will be able to buffer the data if necessary.

Implements cReceiver.

Definition at line 41 of file transfer.c.

References cPlayer::IsAttached(), cRingBufferLinear::Put(), cRingBuffer::ReportOverflow(), ringBuffer, and cThread::Running().

Here is the call graph for this function:

void cTransfer::Action ( void   )  [protected, virtual]

A derived cThread class must implement the code it wants to execute as a separate thread in this function. If this is a loop, it must check Running() repeatedly to see whether it's time to stop.

Implements cThread.

Definition at line 51 of file transfer.c.

References cRingBufferLinear::Available(), cRemux::Clear(), cRingBufferLinear::Clear(), cRemux::Del(), cRingBufferLinear::Del(), cPlayer::DeviceClear(), cPlayer::DevicePoll(), dsyslog, FATALERRNO, cRemux::Get(), cRingBufferLinear::Get(), LOG_ERROR, cPlayer::PlayPes(), POLLTIMEOUTS_BEFORE_DEVICECLEAR, cRemux::Put(), remux, ringBuffer, cThread::Running(), and TRANSFERBUFSIZE.

Here is the call graph for this function:

Member Data Documentation

cRingBufferLinear* cTransfer::ringBuffer [private]

Definition at line 21 of file transfer.h.

Referenced by Action(), cTransfer(), Receive(), and ~cTransfer().

cRemux* cTransfer::remux [private]

Definition at line 22 of file transfer.h.

Referenced by Action(), cTransfer(), and ~cTransfer().

The documentation for this class was generated from the following files:
Generated on Tue Nov 6 20:31:22 2007 for VDR by  doxygen 1.5.3-20071008