Go to the documentation of this file.
11 #include <linux/dvb/ca.h>
12 #include <sys/ioctl.h>
23 if (ioctl(
fd, CA_GET_CAP, &Caps) == 0) {
24 if ((Caps.slot_type & CA_CI_LINK) != 0) {
25 int NumSlots = Caps.slot_num;
27 for (
int i = 0; i < NumSlots; i++)
48 if (Buffer && MaxLength > 0) {
51 pfd[0].events = POLLIN;
64 if (Buffer && Length > 0) {
72 if (ioctl(
fd, CA_RESET, 1 << Slot) != -1)
83 if (ioctl(
fd, CA_GET_SLOT_INFO, &sinfo) != -1) {
84 if ((sinfo.flags & CA_CI_MODULE_READY) != 0)
86 else if ((sinfo.flags & CA_CI_MODULE_PRESENT) != 0)
virtual int Read(uint8_t *Buffer, int MaxLength)
Reads one chunk of data into the given Buffer, up to MaxLength bytes.
void Cancel(int WaitSeconds=0)
Cancels the thread by first setting 'running' to false, so that the Action() loop can finish in an or...
cDvbCiAdapter(cDevice *Device, int Fd)
virtual void Write(const uint8_t *Buffer, int Length)
Writes Length bytes of the given Buffer.
static cDvbCiAdapter * CreateCiAdapter(cDevice *Device, int Fd)
virtual bool Assign(cDevice *Device, bool Query=false)
Assigns this adapter to the given Device, if this is possible.
void SetDescription(const char *Description,...) __attribute__((format(printf
virtual bool Reset(int Slot)
Resets the CAM in the given Slot.
int DeviceNumber(void) const
Returns the number of this device (0 ... numDevices - 1).
virtual eModuleStatus ModuleStatus(int Slot)
Returns the status of the CAM in the given Slot.
void bool Start(void)
Sets the description of this thread, which will be used when logging starting or stopping of the thre...