Changeset 7774
- Timestamp:
- 10/21/12 10:05:37 (11 years ago)
- Location:
- trunk
- Files:
-
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/csctapi/cardreaders.h
r7719 r7774 6 6 void cardreader_pcsc(struct s_cardreader *crdr); 7 7 void cardreader_smargo(struct s_cardreader *crdr); 8 void cardreader_smartreader(struct s_cardreader *crdr); 8 9 void cardreader_stapi(struct s_cardreader *crdr); 9 10 -
trunk/csctapi/icc_async.c
r7766 r7774 34 34 #include "ifd_sc8in1.h" 35 35 #include "ifd_sci.h" 36 #include "ifd_smartreader.h"37 36 #include "ifd_azbox.h" 38 37 … … 139 138 } 140 139 break; 141 case R_SMART:142 #if defined(WITH_LIBUSB)143 call (SR_Init(reader));144 break;145 #else146 rdr_log(reader, "ERROR: You have specified 'protocol = smartreader' in oscam.server, recompile with libusb support");147 return ERROR;148 #endif149 140 case R_INTERNAL: 150 141 #if defined(WITH_COOLAPI) … … 241 232 call (Phoenix_GetStatus(reader, &in)); 242 233 break; 243 #if defined(WITH_LIBUSB)244 case R_SMART:245 call (SR_GetStatus(reader, &in));246 break;247 #endif248 234 case R_INTERNAL: 249 235 #if defined(WITH_COOLAPI) … … 299 285 } 300 286 break; 301 #if defined(WITH_LIBUSB)302 case R_SMART:303 if ( ! reader->ins7e11_fast_reset) {304 call (SR_Reset(reader, atr));305 }306 else {307 rdr_log(reader, "Doing fast reset");308 call (SR_FastReset_With_ATR(reader, atr));309 }310 break;311 #endif312 287 case R_INTERNAL: 313 288 #if defined(WITH_COOLAPI) … … 470 445 ret = Phoenix_Transmit (reader, sent, size, reader->block_delay, reader->char_delay); 471 446 break; 472 #if defined(WITH_LIBUSB)473 case R_SMART:474 ret = SR_Transmit(reader, sent, size);475 break;476 #endif477 447 case R_INTERNAL: 478 448 #if defined(WITH_COOLAPI) … … 521 491 ret = Phoenix_Receive (reader, data, size, reader->read_timeout); 522 492 break; 523 #if defined(WITH_LIBUSB)524 case R_SMART:525 ret = SR_Receive(reader, data, size);526 break;527 #endif528 493 case R_INTERNAL: 529 494 #if defined(WITH_COOLAPI) … … 572 537 call (Phoenix_Close(reader)); 573 538 break; 574 #if defined(WITH_LIBUSB)575 case R_SMART:576 call (SR_Close(reader));577 break;578 #endif579 539 case R_INTERNAL: 580 540 #if defined(WITH_COOLAPI) … … 889 849 call (IO_Serial_SetParity (reader, parity)); 890 850 break; 891 #if defined(WITH_LIBUSB)892 case R_SMART:893 call (SR_SetParity(reader, parity));894 break;895 #endif896 851 case R_INTERNAL: 897 852 return OK; … … 923 878 if (reader->typ != R_INTERNAL) 924 879 #endif 925 #if defined(WITH_LIBUSB) 880 #if defined(WITH_LIBUSB) // FIXME: Is this necessary??? 926 881 if (reader->typ != R_SMART) 927 882 #endif … … 929 884 return OK; 930 885 } 886 887 #if defined(WITH_LIBUSB) // FIXME: Move to card reader API 888 int32_t SR_WriteSettings (struct s_reader *reader, uint16_t F, unsigned char D, unsigned char N, unsigned char T, uint16_t convention); 889 #endif 931 890 932 891 static int32_t InitCard (struct s_reader * reader, ATR * atr, unsigned char FI, double d, double n, uint16_t deprecated) … … 1164 1123 #endif //WITH_COOLAPI 1165 1124 } 1166 #if defined(WITH_LIBUSB) 1125 #if defined(WITH_LIBUSB) // FIXME: Move to card reader API 1167 1126 if (reader->typ == R_SMART) 1168 1127 SR_WriteSettings(reader, (uint16_t) atr_f_table[FI], (unsigned char)d, (unsigned char)EGT, (unsigned char)reader->protocol_type, reader->convention); -
trunk/csctapi/ifd_smartreader.c
r7764 r7774 7 7 8 8 #if defined(WITH_CARDREADER) && defined(WITH_LIBUSB) 9 #include <memory.h> 10 #if defined(__FreeBSD__) 11 #include <libusb.h> 12 #else 13 #include <libusb-1.0/libusb.h> 14 #endif 9 15 #include "../oscam-lock.h" 10 16 #include "../oscam-string.h" 11 17 #include "../oscam-time.h" 12 18 #include "atr.h" 13 #include "ifd_smartreader.h"14 19 #include "ifd_smartreader_types.h" 15 20 … … 28 33 //The number of concurrent bulk reads to queue onto the smartreader 29 34 #define NUM_TXFERS 2 35 36 extern CS_MUTEX_LOCK sr_lock; 30 37 31 38 struct s_sr_config { … … 95 102 static int32_t init_count = 0; 96 103 97 int32_t SR_Init (struct s_reader *reader)104 static int32_t SR_Init (struct s_reader *reader) 98 105 { 99 106 uint8_t out_endpoint; … … 194 201 195 202 196 int32_t SR_GetStatus (struct s_reader *reader, int32_t * in)203 static int32_t SR_GetStatus (struct s_reader *reader, int32_t * in) 197 204 { 198 205 int32_t state; … … 254 261 } 255 262 256 int32_t SR_Reset (struct s_reader *reader, ATR *atr)263 static int32_t SR_Reset (struct s_reader *reader, ATR *atr) 257 264 { 258 265 unsigned char data[ATR_MAX_SIZE]; … … 380 387 } 381 388 382 int32_t SR_Transmit (struct s_reader *reader, unsigned char * buffer, uint32_t size)389 static int32_t SR_Transmit (struct s_reader *reader, unsigned char * buffer, uint32_t size) 383 390 { 384 391 uint32_t ret; … … 393 400 } 394 401 395 int32_t SR_Receive (struct s_reader *reader, unsigned char * buffer, uint32_t size)402 static int32_t SR_Receive (struct s_reader *reader, unsigned char * buffer, uint32_t size) 396 403 { 397 404 uint32_t ret; … … 437 444 } 438 445 439 int32_t SR_SetParity (struct s_reader *reader, uint16_tparity)446 static int32_t SR_SetParity (struct s_reader *reader, uchar parity) 440 447 { 441 448 int32_t ret; … … 454 461 } 455 462 456 int32_t SR_Close (struct s_reader *reader)463 static int32_t SR_Close (struct s_reader *reader) 457 464 { 458 465 if (!reader->sr_config) return OK; … … 480 487 } 481 488 482 int32_t SR_FastReset(struct s_reader *reader, int32_t delay)489 /*static int32_t SR_FastReset(struct s_reader *reader, int32_t delay) 483 490 { 484 491 unsigned char data[ATR_MAX_SIZE]; … … 499 506 smart_fastpoll(reader, 0); 500 507 return 0; 501 } 502 503 int32_t SR_FastReset_With_ATR(struct s_reader *reader, ATR *atr)508 } */ 509 510 static int32_t SR_FastReset_With_ATR(struct s_reader *reader, ATR *atr) 504 511 { 505 512 unsigned char data[ATR_MAX_SIZE]; … … 806 813 807 814 808 int32_t smartreader_usb_reset(S_READER *reader)815 static int32_t smartreader_usb_reset(S_READER *reader) 809 816 { 810 817 if (libusb_control_transfer(reader->sr_config->usb_dev_handle, … … 825 832 826 833 827 int32_t smartreader_usb_open_dev(S_READER *reader)834 static int32_t smartreader_usb_open_dev(S_READER *reader) 828 835 { 829 836 int32_t detach_errno = 0; … … 973 980 974 981 975 int32_t smartreader_usb_purge_rx_buffer(S_READER *reader)982 static int32_t smartreader_usb_purge_rx_buffer(S_READER *reader) 976 983 { 977 984 if (libusb_control_transfer(reader->sr_config->usb_dev_handle, … … 991 998 } 992 999 993 int32_t smartreader_usb_purge_tx_buffer(S_READER *reader)1000 static int32_t smartreader_usb_purge_tx_buffer(S_READER *reader) 994 1001 { 995 1002 if (libusb_control_transfer(reader->sr_config->usb_dev_handle, … … 1008 1015 } 1009 1016 1010 int32_t smartreader_usb_purge_buffers(S_READER *reader)1017 static int32_t smartreader_usb_purge_buffers(S_READER *reader) 1011 1018 { 1012 1019 int32_t result; … … 1143 1150 } 1144 1151 1145 int32_t smartreader_set_baudrate(S_READER *reader, int32_t baudrate)1152 static int32_t smartreader_set_baudrate(S_READER *reader, int32_t baudrate) 1146 1153 { 1147 1154 uint16_t value, idx; … … 1184 1191 } 1185 1192 1186 int32_t smartreader_setdtr_rts(S_READER *reader, int32_t dtr, int32_t rts)1193 static int32_t smartreader_setdtr_rts(S_READER *reader, int32_t dtr, int32_t rts) 1187 1194 { 1188 1195 uint16_t usb_val; … … 1213 1220 } 1214 1221 1215 int32_t smartreader_setflowctrl(S_READER *reader, int32_t flowctrl)1222 static int32_t smartreader_setflowctrl(S_READER *reader, int32_t flowctrl) 1216 1223 { 1217 1224 if (libusb_control_transfer(reader->sr_config->usb_dev_handle, … … 1230 1237 } 1231 1238 1232 int32_t smartreader_set_line_property2(S_READER *reader, enum smartreader_bits_type bits,1239 static int32_t smartreader_set_line_property2(S_READER *reader, enum smartreader_bits_type bits, 1233 1240 enum smartreader_stopbits_type sbit, enum smartreader_parity_type parity, 1234 1241 enum smartreader_break_type break_type) … … 1294 1301 1295 1302 1296 int32_t smartreader_set_line_property(S_READER *reader, enum smartreader_bits_type bits,1303 static int32_t smartreader_set_line_property(S_READER *reader, enum smartreader_bits_type bits, 1297 1304 enum smartreader_stopbits_type sbit, enum smartreader_parity_type parity) 1298 1305 { … … 1302 1309 1303 1310 1304 void smart_flush(S_READER *reader)1311 static void smart_flush(S_READER *reader) 1305 1312 { 1306 1313 smartreader_usb_purge_buffers(reader); … … 1444 1451 } 1445 1452 1453 int32_t SR_Activate(struct s_reader *reader, struct s_ATR *atr) 1454 { 1455 if (!reader->ins7e11_fast_reset) { 1456 call(SR_Reset(reader, atr)); 1457 } else { 1458 rdr_log(reader, "Doing fast reset"); 1459 call(SR_FastReset_With_ATR(reader, atr)); 1460 } 1461 return OK; 1462 } 1463 1464 void cardreader_smartreader(struct s_cardreader *crdr) 1465 { 1466 crdr->desc = "smartreader"; 1467 crdr->typ = R_SMART; 1468 crdr->reader_init = SR_Init; 1469 crdr->get_status = SR_GetStatus; 1470 crdr->set_parity = SR_SetParity; 1471 crdr->activate = SR_Activate; 1472 crdr->transmit = SR_Transmit; 1473 crdr->receive = SR_Receive; 1474 crdr->close = SR_Close; 1475 } 1476 1446 1477 #endif // WITH_LIBUSB -
trunk/globals.h
r7759 r7774 1759 1759 extern char *loghist, *loghistptr; 1760 1760 #endif 1761 #if defined(WITH_LIBUSB)1762 extern CS_MUTEX_LOCK sr_lock;1763 #endif1764 1761 1765 1762 extern pid_t server_pid; // PID of server - set while startup -
trunk/oscam-config-reader.c
r7719 r7774 672 672 } 673 673 674 if (!strcmp(value, "smartreader")) {675 rdr->typ = R_SMART;676 return;677 }678 679 674 if (!strcmp(value, "internal")) { 680 675 rdr->typ = R_INTERNAL; -
trunk/oscam.c
r7771 r7774 3911 3911 #endif 3912 3912 cardreader_smargo, 3913 #ifdef WITH_LIBUSB 3914 cardreader_smartreader, 3915 #endif 3913 3916 #ifdef WITH_STAPI 3914 3917 cardreader_stapi,
Note:
See TracChangeset
for help on using the changeset viewer.