#include "defs.hpp" #include "dvbtcontrol.h" uint16_t adapter; string *specialchars(unsigned char *data) { string *ret; char special[256]; int x; unsigned char *p; if (!(ret = new string)) { cout << "no mem for new string ??" << endl; exit(0); } ret->assign(""); p = data; while (*data != '\0') { x = 0; if (*data < 0x10) data++; else if (*data == 0x10) data += 3; switch (*data) { case 0x8a: case 0x0a: case 0x0d: ret->append("
"); x = 1; break; /* case 0x20: ret->append(" "); x = 1; break;*/ case 0x86: ret->append(""); x = 1; break; case 0x87: ret->append(""); x = 1; break; case '\'': ret->append("'"); x = 1; break; case '"': ret->append("""); x = 1; break; case '\\': ret->append("\"); x = 1; break; case '\t': for (int i = 0; i != 4; i++) ret->append(" "); x = 1; break; case '/': ret->append("/"); x = 1; break; } if ( *data > 0x7f && x == 0) { sprintf(special,"&#%d;",(unsigned char)*data); ret->append(special); } else if ( x == 0) ret->append(1,(char)*data); // printf("data = %x -> %c %c\n", *data & 0xff,*data, *data > 0x7f ? '-' : '!'); data++; //cout << "str: " << ret->data() << endl; } return ret; } int main() { DVBccontrol *ctrl; adapter = 0; if(!(ctrl = new DVBccontrol)) exit(printf("no control ?\n")); if(false == ctrl->init(0,0,"yahdr.channels")) { cout << "init failed" << endl; exit(0); } ctrl->scan(); }