Keywelt-Board.com


  Reply to this topicStart new topicStart Poll

> Neutrino Zapit Patch, für Multi-Emu Betrieb
Worschter
Geschrieben am: Wed Aug 3 18:48:26 GMT 2005
Quote Post


Super Mods
Group Icon

Gruppe: SuperMods
Beiträge: 17939
Mitgliedsnummer.: 18142
Status: OFFLINE
Mitglied seit: 17-May 03



Ich hoffe otto_promm nimmt´s mir nicht krumm,
aber nachdem ich nun schon wieder ne Weile danach suchen musste hab ich mir
gedacht ich mach das mal dahin wo es nicht verloren geht smile.gif

QUOTE (otto_promm)
cam.h
--------

#ifndef __zapit_cam_h__
#define __zapit_cam_h__

#include "ci.h"
#include <basicclient.h>

class CCam : public CBasicClient
{
private:
unsigned int number;
virtual const unsigned char getVersion(void) const;
virtual const char *getSocketName() const;
public:
bool sendMessage(const char * const data, const size_t length);
bool setCaPmt(CCaPmt * const caPmt);
CCam(int Number);
};
#endif /* __cam_h__ */
-------------------------------------------------------------------------------------------

cam.cpp
---------

/* zapit */
#include <zapit/cam.h>
#include <zapit/settings.h> /* CAMD_UDS_NAME */
#include <messagetools.h> /* get_length_field_size */

const unsigned char CCam::getVersion(void) const
{
return 0x9F;
}

CCam::CCam(int Number)
{
number = Number;
}

const char *CCam::getSocketName(void) const
{
static char camd_uds_name[500];
memset(camd_uds_name, 0, 500);
if(number==0)
sprintf(camd_uds_name, "%s", CAMD_UDS_NAME);
else
sprintf(camd_uds_name, "/tmp/camd.sock%02d", number);

return camd_uds_name;
}

bool CCam::sendMessage(const char * const data, const size_t length)
{
close_connection();

if (!open_connection())
return false;

return send_data(data, length);
}

bool CCam::setCaPmt(CCaPmt * const caPmt)
{
if (!caPmt)
return true;

unsigned int size = caPmt->getLength();
unsigned char buffer[3 + get_length_field_size(size) + size];
size_t pos = caPmt->writeToBuffer(buffer);

return sendMessage((char *)buffer, pos);
}
-------------------------------------------------------------------------------------------

zapit.cpp
-----------
/* the conditional access module */
CCam *cam = NULL;

ändern auf

/* the conditional access module */
#define MAXCAMS 10
CCam *cam[MAXCAMS];
--------------------------------------------------------------------------------------------
cam->setCaPmt(thisChannel->getCaPmt());

ändern auf

for(int k = 0; k < MAXCAMS; k++)
cam[k]->setCaPmt(thisChannel->getCaPmt());
---------------------------------------------------------------------------------------------
if (cam) {
delete cam;
cam = NULL;
}

ändern auf

for(int k = 0; k < MAXCAMS; k++) {
if (cam[k]) {
delete cam[k];
cam[k] = NULL;
}
}
---------------------------------------------------------------------------------------------
}
if (!cam) {
cam = new CCam();
}

ändern auf

for(int k = 0; k < MAXCAMS; k++) {
if (!cam[k]) {
cam[k] = new CCam(k);
}
}
---------------------------------------------------------------------------------------------

Ich glaub das wars.
Sollte ich was vergessen habe bitte verbessern.

mfg
otto


--------------------
Gruß! Worschter
Grüße vom New-Tuxwetter-Team des Keywelt-Boards
user posted image
Im Forum Keywelt-Plugins gibt es Infos, Tipps und Hilfe zum Plugin.
Mini ProfilePM
Top
Thema wird von 1 Benutzer gelesen (0 Gäste und 0 Anonyme Benutzer)
1 Mitglieder: OPPZeroCool

Topic Options Reply to this topicStart new topicStart Poll

 



[ Script Execution time: 0.0625 ]   [ 14 queries used ]   [ GZIP aktiviert ]