Changeset 1234
- Timestamp:
- 01/15/10 10:52:34 (14 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/csctapi/icc_async.c
r1224 r1234 210 210 unsigned np=0; 211 211 212 /* LED Red */213 if (IFD_Towitoko_SetLED () != IFD_TOWITOKO_OK)214 return ICC_ASYNC_IFD_ERROR;215 216 212 /* Initialize Baudrate */ 217 213 if (IFD_Towitoko_SetBaudrate (ifd, ICC_ASYNC_BAUDRATE)!= IFD_TOWITOKO_OK) … … 224 220 #ifdef SCI_DEV 225 221 if (reader[ridx].typ == R_INTERNAL) { 226 if (!Sci_Reset( ifd,&(icc->atr)))222 if (!Sci_Reset(&(icc->atr))) 227 223 { 228 224 icc->atr = NULL; … … 272 268 #endif 273 269 *///really should let PPS handle this 274 /* LED Green */275 if (IFD_Towitoko_SetLED () != IFD_TOWITOKO_OK)276 {277 ATR_Delete (icc->atr);278 icc->atr = NULL;279 icc->convention = 0;280 281 return ICC_ASYNC_IFD_ERROR;282 }283 270 284 271 /* Initialize member variables */ … … 452 439 return ICC_ASYNC_IFD_ERROR; 453 440 454 /* LED Off */455 if (IFD_Towitoko_SetLED () != IFD_TOWITOKO_OK)456 return ICC_ASYNC_IFD_ERROR;457 458 441 /* Delete atr */ 459 442 ATR_Delete (icc->atr); -
trunk/csctapi/ifd_sci.c
r1227 r1234 18 18 #include <fcntl.h> 19 19 #endif 20 #include "../globals.h" 20 21 21 22 #include "ifd_towitoko.h" … … 37 38 } 38 39 39 int Sci_Reset ( IFD * ifd,ATR ** atr)40 int Sci_Reset (ATR ** atr) 40 41 { 41 42 unsigned char buf[SCI_MAX_ATR_SIZE]; … … 60 61 params.T = 0; 61 62 62 if(ioctl( ifd->io->fd, IOCTL_SET_PARAMETERS, ¶ms)!=0)63 if(ioctl(reader[ridx].handle, IOCTL_SET_PARAMETERS, ¶ms)!=0) 63 64 return ERROR; 64 65 65 if(ioctl( ifd->io->fd, IOCTL_SET_RESET)<0)66 if(ioctl(reader[ridx].handle, IOCTL_SET_RESET)<0) 66 67 return ERROR; 67 68 … … 129 130 req_ts.tv_nsec = 50000000; 130 131 nanosleep (&req_ts, NULL); 131 if (ioctl( ifd->io->fd, IOCTL_SET_ATR_READY)<0)132 if (ioctl(reader[ridx].handle, IOCTL_SET_ATR_READY)<0) 132 133 return ERROR; 133 134 return OK; -
trunk/csctapi/ifd_towitoko.c
r1224 r1234 248 248 #endif 249 249 250 ret = IFD_Towitoko_SetLED ();251 if (ret != IFD_TOWITOKO_OK)252 return ret;253 254 250 IFD_Towitoko_Clear (ifd); 255 251 … … 264 260 return IFD_TOWITOKO_OK; 265 261 } 266 /*267 if (IFD_Towitoko_GetMaxBaudrate () < baudrate)268 {269 #ifdef DEBUG_IFD270 printf ("IFD: Tried to set unsupported baudrate: %lu", baudrate);271 #endif272 return IFD_TOWITOKO_PARAM_ERROR;273 }*/274 275 262 #ifdef DEBUG_IFD 276 263 printf ("IFD: Setting baudrate to %lu\n", baudrate); … … 341 328 } 342 329 343 int IFD_Towitoko_SetLED ()344 {345 return IFD_TOWITOKO_OK;346 }347 348 330 int IFD_Towitoko_ActivateICC (IFD * ifd) 349 331 { … … 357 339 358 340 #if defined(TUXBOX) && (defined(MIPSEL) || defined(PPC) || defined(SH4)) 359 if(ioctl( ifd->io->fd, IOCTL_GET_IS_CARD_PRESENT, &in)<0)341 if(ioctl(reader[ridx].handle, IOCTL_GET_IS_CARD_PRESENT, &in)<0) 360 342 #else 361 if(ioctl( ifd->io->fd, IOCTL_GET_IS_CARD_ACTIVATED, &in)<0)343 if(ioctl(reader[ridx].handle, IOCTL_GET_IS_CARD_ACTIVATED, &in)<0) 362 344 #endif 363 345 return IFD_TOWITOKO_IO_ERROR; … … 395 377 396 378 #if defined(TUXBOX) && (defined(MIPSEL) || defined(PPC) || defined(SH4)) 397 if(ioctl( ifd->io->fd, IOCTL_GET_IS_CARD_PRESENT, &in)<0)379 if(ioctl(reader[ridx].handle, IOCTL_GET_IS_CARD_PRESENT, &in)<0) 398 380 #else 399 if(ioctl( ifd->io->fd, IOCTL_GET_IS_CARD_ACTIVATED, &in)<0)381 if(ioctl(reader[ridx].handle, IOCTL_GET_IS_CARD_ACTIVATED, &in)<0) 400 382 #endif 401 383 return IFD_TOWITOKO_IO_ERROR; … … 403 385 if(in) 404 386 { 405 if(ioctl( ifd->io->fd, IOCTL_SET_DEACTIVATE)<0)387 if(ioctl(reader[ridx].handle, IOCTL_SET_DEACTIVATE)<0) 406 388 return IFD_TOWITOKO_IO_ERROR; 407 389 } … … 454 436 else 455 437 #endif 456 IO_Serial_RTS_Set( ifd->io);438 IO_Serial_RTS_Set(); 457 439 458 440 #ifdef HAVE_NANOSLEEP … … 469 451 else 470 452 #endif 471 IO_Serial_RTS_Clr( ifd->io);453 IO_Serial_RTS_Clr(); 472 454 473 455 IO_Serial_Ioctl_Lock(0); … … 511 493 } 512 494 513 int IFD_Towitoko_Transmit (IFD * ifd, IFD_Timings * timings, unsigned size, BYTE * buffer)514 {515 unsigned block_delay, char_delay, sent=0, to_send = 0;516 517 #ifdef DEBUG_IFD518 printf ("IFD: Transmit: ");519 for (sent = 0; sent < size; sent++)520 printf ("%X ", buffer[sent]);521 printf ("\n");522 #endif523 524 525 /* Calculate delays */526 char_delay = IFD_TOWITOKO_DELAY + timings->char_delay;527 block_delay = IFD_TOWITOKO_DELAY + timings->block_delay;528 529 #ifdef USE_GPIO530 if (gpio_detect) set_gpio1(0);531 #endif532 for (sent = 0; sent < size; sent = sent + to_send)533 {534 /* Calculate number of bytes to send */535 to_send = MIN(size, IFD_TOWITOKO_MAX_TRANSMIT);536 537 /* Send data */538 if ((sent == 0) && (block_delay != char_delay))539 {540 if (!IO_Serial_Write (block_delay, 1, buffer))541 return IFD_TOWITOKO_IO_ERROR;542 543 if (!IO_Serial_Write (char_delay, to_send-1, buffer+1))544 return IFD_TOWITOKO_IO_ERROR;545 }546 else547 {548 if (!IO_Serial_Write (char_delay, to_send, buffer+sent))549 return IFD_TOWITOKO_IO_ERROR;550 }551 }552 #ifdef USE_GPIO553 if (gpio_detect) set_gpio1(1);554 #endif555 return IFD_TOWITOKO_OK;556 }557 558 int IFD_Towitoko_Receive (IFD * ifd, IFD_Timings * timings, unsigned size, BYTE * buffer)559 {560 unsigned char_timeout, block_timeout;561 #ifdef DEBUG_IFD562 int i;563 #endif564 565 /* Calculate timeouts */566 char_timeout = IFD_TOWITOKO_TIMEOUT + timings->char_timeout;567 block_timeout = IFD_TOWITOKO_TIMEOUT + timings->block_timeout;568 #ifdef USE_GPIO569 if (gpio_detect) set_gpio1(0);570 #endif571 if (block_timeout != char_timeout)572 {573 /* Read first byte using block timeout */574 if (!IO_Serial_Read (block_timeout, 1, buffer))575 return IFD_TOWITOKO_IO_ERROR;576 577 if (size > 1)578 {579 /* Read remaining data bytes using char timeout */580 if (!IO_Serial_Read (char_timeout, size - 1, buffer + 1))581 return IFD_TOWITOKO_IO_ERROR;582 }583 }584 else585 {586 /* Read all data bytes with the same timeout */587 if (!IO_Serial_Read (char_timeout, size, buffer))588 return IFD_TOWITOKO_IO_ERROR;589 }590 #ifdef USE_GPIO591 if (gpio_detect) set_gpio1(1);592 #endif593 594 #ifdef DEBUG_IFD595 printf ("IFD: Receive: ");596 for (i = 0; i < size; i++)597 printf ("%X ", buffer[i]);598 printf ("\n");599 #endif600 601 return IFD_TOWITOKO_OK;602 }603 604 605 495 BYTE IFD_Towitoko_GetType (IFD * ifd) 606 496 { … … 658 548 { 659 549 return 1; 660 }661 662 unsigned long663 IFD_Towitoko_GetMaxBaudrate ()664 {665 return 115200L;666 550 } 667 551 -
trunk/csctapi/ifd_towitoko.h
r1224 r1234 131 131 extern int IFD_Towitoko_GetBaudrate (IFD * ifd, unsigned long *baudrate); 132 132 extern int IFD_Towitoko_SetParity (IFD * ifd, BYTE parity); 133 extern int IFD_Towitoko_SetLED ();134 133 135 134 /* General handling of ICC inserted in this IFD */ … … 144 143 extern BYTE IFD_Towitoko_GetFirmware (IFD * ifd); 145 144 extern unsigned IFD_Towitoko_GetNumSlots (); 146 extern unsigned long IFD_Towitoko_GetMaxBaudrate ();147 145 extern void IFD_Towitoko_GetDescription (IFD * ifd, BYTE * desc, unsigned length); 148 146 -
trunk/csctapi/io_serial.c
r1224 r1234 63 63 64 64 static bool IO_Serial_WaitToWrite (unsigned delay_ms, unsigned timeout_ms); 65 66 static void IO_Serial_DeviceName (char * filename, unsigned length);67 65 68 66 static bool IO_Serial_InitPnP (IO_Serial * io); … … 130 128 #endif 131 129 132 bool IO_Serial_DTR_RTS( IO_Serial * io,int dtr, int set)130 bool IO_Serial_DTR_RTS(int dtr, int set) 133 131 { 134 132 unsigned int msr; … … 136 134 137 135 #if defined(TUXBOX) && defined(PPC) 138 if (( io->reader_type==R_DB2COM1) || (io->reader_type==R_DB2COM2))139 return(IO_Serial_DTR_RTS_dbox2( io->reader_type==R_DB2COM2, dtr, set));136 if ((reader[ridx].typ == R_DB2COM1) || (reader[ridx].typ == R_DB2COM2)) 137 return(IO_Serial_DTR_RTS_dbox2(reader[ridx].typ == R_DB2COM2, dtr, set)); 140 138 #endif 141 139 142 140 mbit=(dtr) ? TIOCM_DTR : TIOCM_RTS; 143 141 #if defined(TIOCMBIS) && defined(TIOBMBIC) 144 if (ioctl ( io->fd, set ? TIOCMBIS : TIOCMBIC, &mbit) < 0)142 if (ioctl (reader[ridx].handle, set ? TIOCMBIS : TIOCMBIC, &mbit) < 0) 145 143 return FALSE; 146 144 #else 147 if (ioctl( io->fd, TIOCMGET, &msr) < 0)145 if (ioctl(reader[ridx].handle, TIOCMGET, &msr) < 0) 148 146 return FALSE; 149 147 if (set) … … 151 149 else 152 150 msr&=~mbit; 153 return((ioctl( io->fd, TIOCMSET, &msr)<0) ? FALSE : TRUE);151 return((ioctl(reader[ridx].handle, TIOCMSET, &msr)<0) ? FALSE : TRUE); 154 152 #endif 155 153 } … … 168 166 IO_Serial_Clear (io); 169 167 170 io->mhz=mhz;171 io->cardmhz=cardmhz;172 173 168 return io; 174 169 } … … 176 171 bool IO_Serial_Init (IO_Serial * io, int reader_type) 177 172 { 178 io->reader_type= reader_type;179 io->fd= reader[ridx].handle;173 reader[ridx].typ = reader_type; 174 reader[ridx].handle = reader[ridx].handle; 180 175 181 176 if (reader_type != R_INTERNAL) 182 177 IO_Serial_InitPnP (io); 183 178 184 if( io->reader_type!=R_INTERNAL)179 if(reader[ridx].typ!=R_INTERNAL) 185 180 IO_Serial_Flush(); 186 181 … … 195 190 196 191 #ifdef SCI_DEV 197 if( io->reader_type==R_INTERNAL)192 if(reader[ridx].typ == R_INTERNAL) 198 193 return FALSE; 199 194 #endif … … 202 197 return TRUE; 203 198 204 if (tcgetattr ( io->fd, &currtio) != 0)199 if (tcgetattr (reader[ridx].handle, &currtio) != 0) 205 200 return FALSE; 206 201 … … 446 441 io->stopbits = 1; 447 442 448 if (ioctl ( io->fd, TIOCMGET, &mctl) < 0)443 if (ioctl (reader[ridx].handle, TIOCMGET, &mctl) < 0) 449 444 return FALSE; 450 445 … … 464 459 465 460 #ifdef SCI_DEV 466 if( io->reader_type==R_INTERNAL)461 if(reader[ridx].typ == R_INTERNAL) 467 462 return FALSE; 468 463 #endif 469 464 470 // printf("IO: Setting properties: reader_type%d, %ld bps; %d bits/byte; %s parity; %d stopbits; dtr=%d; rts=%d\n", io->reader_type, io->input_bitrate, io->bits, io->parity == IO_SERIAL_PARITY_EVEN ? "Even" : io->parity == IO_SERIAL_PARITY_ODD ? "Odd" : "None", io->stopbits, io->dtr, io->rts);465 // printf("IO: Setting properties: reader_type%d, %ld bps; %d bits/byte; %s parity; %d stopbits; dtr=%d; rts=%d\n", reader[ridx].typ, io->input_bitrate, io->bits, io->parity == IO_SERIAL_PARITY_EVEN ? "Even" : io->parity == IO_SERIAL_PARITY_ODD ? "Odd" : "None", io->stopbits, io->dtr, io->rts); 471 466 memset (&newtio, 0, sizeof (newtio)); 472 467 … … 474 469 /* Set the bitrate */ 475 470 #ifdef OS_LINUX 476 if ( io->mhz == io->cardmhz)471 if (reader[ridx].mhz == reader[ridx].cardmhz) 477 472 #endif 478 473 { //no overclocking 479 474 cfsetospeed(&newtio, IO_Serial_Bitrate(io->output_bitrate)); 480 475 cfsetispeed(&newtio, IO_Serial_Bitrate(io->input_bitrate)); 481 cs_debug("standard baudrate: cardmhz=%d mhz=%d -> effective baudrate %lu", io->cardmhz, io->mhz, io->output_bitrate);476 cs_debug("standard baudrate: cardmhz=%d mhz=%d -> effective baudrate %lu", reader[ridx].cardmhz, reader[ridx].mhz, io->output_bitrate); 482 477 } 483 478 #ifdef OS_LINUX … … 485 480 /* these structures are only available on linux as fas as we know so limit this code to OS_LINUX */ 486 481 struct serial_struct nuts; 487 ioctl( io->fd, TIOCGSERIAL, &nuts);488 int custom_baud = io->output_bitrate * io->mhz / io->cardmhz;482 ioctl(reader[ridx].handle, TIOCGSERIAL, &nuts); 483 int custom_baud = io->output_bitrate * reader[ridx].mhz / reader[ridx].cardmhz; 489 484 nuts.custom_divisor = (nuts.baud_base + (custom_baud/2))/ custom_baud; 490 485 cs_debug("custom baudrate: cardmhz=%d mhz=%d custom_baud=%d baud_base=%d divisor=%d -> effective baudrate %d", 491 io->cardmhz, io->mhz, custom_baud, nuts.baud_base, nuts.custom_divisor, nuts.baud_base/nuts.custom_divisor);486 reader[ridx].cardmhz, reader[ridx].mhz, custom_baud, nuts.baud_base, nuts.custom_divisor, nuts.baud_base/nuts.custom_divisor); 492 487 nuts.flags &= ~ASYNC_SPD_MASK; 493 488 nuts.flags |= ASYNC_SPD_CUST; 494 ioctl( io->fd, TIOCSSERIAL, &nuts);489 ioctl(reader[ridx].handle, TIOCSSERIAL, &nuts); 495 490 cfsetospeed(&newtio, IO_Serial_Bitrate(38400)); 496 491 cfsetispeed(&newtio, IO_Serial_Bitrate(38400)); … … 561 556 newtio.c_cc[VTIME] = 0; 562 557 563 // tcdrain( io->fd);564 if (tcsetattr ( io->fd, TCSANOW, &newtio) < 0)558 // tcdrain(reader[ridx].handle); 559 if (tcsetattr (reader[ridx].handle, TCSANOW, &newtio) < 0) 565 560 return FALSE; 566 // tcflush( io->fd, TCIOFLUSH);567 // if (tcsetattr ( io->fd, TCSAFLUSH, &newtio) < 0)561 // tcflush(reader[ridx].handle, TCIOFLUSH); 562 // if (tcsetattr (reader[ridx].handle, TCSAFLUSH, &newtio) < 0) 568 563 // return FALSE; 569 564 570 565 IO_Serial_Ioctl_Lock(1); 571 IO_Serial_DTR_RTS( io,0, io->rts == IO_SERIAL_HIGH);572 IO_Serial_DTR_RTS( io,1, io->dtr == IO_SERIAL_HIGH);566 IO_Serial_DTR_RTS(0, io->rts == IO_SERIAL_HIGH); 567 IO_Serial_DTR_RTS(1, io->dtr == IO_SERIAL_HIGH); 573 568 IO_Serial_Ioctl_Lock(0); 574 569 575 570 #ifdef DEBUG_IO 576 printf("IO: Setting properties: reader_type%d, %ld bps; %d bits/byte; %s parity; %d stopbits; dtr=%d; rts=%d\n", io->reader_type, io->input_bitrate, io->bits, io->parity == IO_SERIAL_PARITY_EVEN ? "Even" : io->parity == IO_SERIAL_PARITY_ODD ? "Odd" : "None", io->stopbits, io->dtr, io->rts);571 printf("IO: Setting properties: reader_type%d, %ld bps; %d bits/byte; %s parity; %d stopbits; dtr=%d; rts=%d\n", reader[ridx].typ, io->input_bitrate, io->bits, io->parity == IO_SERIAL_PARITY_EVEN ? "Even" : io->parity == IO_SERIAL_PARITY_ODD ? "Odd" : "None", io->stopbits, io->dtr, io->rts); 577 572 #endif 578 573 return TRUE; … … 591 586 memcpy (pnp_id, io->PnP_id, io->PnP_id_size); 592 587 } 593 594 unsigned IO_Serial_GetCom (IO_Serial * io)595 {596 return io->reader_type;597 }598 599 588 600 589 bool IO_Serial_Read (unsigned timeout, unsigned size, BYTE * data) … … 699 688 #endif 700 689 /* Discard input data from previous commands */ 701 // tcflush ( io->fd, TCIFLUSH);690 // tcflush (reader[ridx].handle, TCIFLUSH); 702 691 703 692 for (count = 0; count < size; count += to_send) 704 693 { 705 // if( io->reader_type==R_INTERNAL)694 // if(reader[ridx].typ == R_INTERNAL) 706 695 // to_send = 1; 707 696 // else … … 744 733 fflush (stdout); 745 734 #endif 746 // tcflush ( io->fd, TCIFLUSH);735 // tcflush (reader[ridx].handle, TCIFLUSH); 747 736 return FALSE; 748 737 } … … 759 748 bool IO_Serial_Close (IO_Serial * io) 760 749 { 761 char filename[IO_SERIAL_FILENAME_LENGTH]; 762 763 IO_Serial_DeviceName (filename, IO_SERIAL_FILENAME_LENGTH); 764 765 #ifdef DEBUG_IO 766 printf ("IO: Clossing serial port %s\n", filename); 750 751 #ifdef DEBUG_IO 752 printf ("IO: Clossing serial port %s\n", reader[ridx].device); 767 753 #endif 768 754 … … 770 756 close(fdmc); 771 757 #endif 772 if (close ( io->fd) != 0)758 if (close (reader[ridx].handle) != 0) 773 759 return FALSE; 774 760 … … 956 942 static void IO_Serial_Clear (IO_Serial * io) 957 943 { 958 io->fd= -1;959 io->reader_type= 0;944 reader[ridx].handle = -1; 945 reader[ridx].typ = 0; 960 946 memset (io->PnP_id, 0, IO_SERIAL_PNPID_SIZE); 961 947 io->PnP_id_size = 0; … … 971 957 } 972 958 973 static void IO_Serial_DeviceName (char * filename, unsigned length)974 {975 extern char oscam_device[];976 snprintf (filename, length, "%s", oscam_device);977 }978 979 959 static bool IO_Serial_InitPnP (IO_Serial * io) 980 960 { -
trunk/csctapi/io_serial.h
r1224 r1234 28 28 #include "defines.h" 29 29 30 #define IO_Serial_DTR_Set(io) IO_Serial_DTR_RTS(io,1, 1)31 #define IO_Serial_DTR_Clr(io) IO_Serial_DTR_RTS(io,1, 0)32 #define IO_Serial_RTS_Set( io) IO_Serial_DTR_RTS(io,0, 1)33 #define IO_Serial_RTS_Clr( io) IO_Serial_DTR_RTS(io,0, 0)30 //#define IO_Serial_DTR_Set() IO_Serial_DTR_RTS(1, 1) 31 //#define IO_Serial_DTR_Clr() IO_Serial_DTR_RTS(1, 0) 32 #define IO_Serial_RTS_Set() IO_Serial_DTR_RTS(0, 1) 33 #define IO_Serial_RTS_Clr() IO_Serial_DTR_RTS(0, 0) 34 34 /* 35 35 * Exported constants definition … … 55 55 typedef struct 56 56 { 57 int fd; /* Handle of the serial device */58 57 /* Settings that can be modified */ 59 58 unsigned long input_bitrate; … … 68 67 BYTE PnP_id[IO_SERIAL_PNPID_SIZE]; /* PnP Id of the serial device */ 69 68 unsigned PnP_id_size; /* Length of PnP Id */ 70 int mhz; /* mhz specified in config = actual reader clock speed */71 int cardmhz; /* mhz specified in config = standard (non overclocked) clock speed of card*/72 69 } 73 70 IO_Serial; … … 92 89 extern bool IO_Serial_SetProperties (IO_Serial * io); 93 90 extern bool IO_Serial_GetProperties (IO_Serial * io); 94 extern bool IO_Serial_DTR_RTS( IO_Serial * io,int, int);91 extern bool IO_Serial_DTR_RTS(int, int); 95 92 #if defined(TUXBOX) && defined(PPC) 96 93 extern void IO_Serial_Ioctl_Lock(int); … … 104 101 105 102 /* Serial port atributes */ 106 extern unsigned IO_Serial_GetCom (IO_Serial * io);107 103 extern void IO_Serial_GetPnPId (IO_Serial * io, BYTE * pnp_id, unsigned *length); 108 104 -
trunk/csctapi/pps.c
r1224 r1234 437 437 SCI_PARAMETERS params; 438 438 //memset(¶ms,0,sizeof(SCI_PARAMETERS)); 439 if (ioctl( pps->icc->ifd->io->fd, IOCTL_GET_PARAMETERS, ¶ms) < 0 )439 if (ioctl(reader[ridx].handle, IOCTL_GET_PARAMETERS, ¶ms) < 0 ) 440 440 return PPS_ICC_ERROR; 441 441 … … 461 461 cs_debug("Setting T=%d fs=%lu mhz ETU=%d WWT=%d CWT=%d BWT=%d EGT=%d clock=%d check=%d P=%d I=%d U=%d", (int)params.T, params.fs, (int)params.ETU, (int)params.WWT, (int)params.CWT, (int)params.BWT, (int)params.EGT, (int)params.clock_stop_polarity, (int)params.check, (int)params.P, (int)params.I, (int)params.U); 462 462 463 if (ioctl( pps->icc->ifd->io->fd, IOCTL_SET_PARAMETERS, ¶ms)!=0)463 if (ioctl(reader[ridx].handle, IOCTL_SET_PARAMETERS, ¶ms)!=0) 464 464 return PPS_ICC_ERROR; 465 465 -
trunk/reader-common.c
r1221 r1234 2 2 #include "reader-common.h" 3 3 4 char oscam_device[128];5 4 int oscam_card_detect; 6 5 … … 309 308 cs_ptyp_orig=cs_ptyp; 310 309 cs_ptyp=D_DEVICE; 311 snprintf(oscam_device, sizeof(oscam_device), "%s", device);312 310 #ifdef TUXBOX 313 311 if ((rc=CT_init(1, reader_device_type(device),reader[ridx].mhz,reader[ridx].cardmhz))!=OK)
Note:
See TracChangeset
for help on using the changeset viewer.