Ignore:
Timestamp:
09/03/10 19:33:50 (10 years ago)
Author:
rorothetroll
Message:

new patch to save emm even if we block them

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/csctapi/ifd_sc8in1.c

    r2291 r2980  
    169169    int i,pos, speed,fd = reader->handle;
    170170    unsigned int is_mcr, sc8in1_clock = 0;
     171   
    171172    tcgetattr(reader->handle,&termio);
    172     for (i=0; i<8; i++)
     173    for (i=0; i<8; i++) {
    173174        //init all stored termios to default comm settings after device init, before ATR
    174175        memcpy(&stored_termio[i],&termio,sizeof(termio));
     176    }
     177   
     178    // check for a MCR device and how many slots it has.
    175179    unsigned char buff[] = { 0x74 };
    176180    sc8in1_command(reader, buff, 1, 1);
     
    181185    else
    182186        is_mcr = 0;
     187
    183188    tcflush(reader->handle, TCIOFLUSH); // a non MCR reader might give longer answer
     189
    184190    for (i=0; i<CS_MAXREADER; i++) //copy handle to other slots, FIXME change this if multiple sc8in1 readers
    185191        if (reader[i].typ == R_SC8in1) {
     
    192198            }
    193199            reader[i].handle = fd;
    194             if (!is_mcr)
    195                 continue;
    196             //if MCR set clock
    197             switch (reader[i].mhz) {
    198                 case 357:
    199                 case 358:
    200                     continue;
    201                 case 368:
    202                 case 369:
    203                     speed = 1;
    204                     break;
    205                 case 600:
    206                     speed = 2;
    207                     break;
    208                 case 800:
    209                     speed = 3;
    210                     break;
    211                 default:
    212                     speed = 0;
    213                     cs_log("ERROR Sc8in1, cannot set clockspeed to %i", reader->mhz);
    214                     break;
    215             }
    216             sc8in1_clock |= (speed << (reader[i].slot - 1) * 2);
    217200        }
     201
    218202    if (is_mcr) {
     203        //if MCR set clock
     204        switch (reader->mhz) {
     205            case 357:
     206            case 358:
     207                speed=0;
     208                break;
     209            case 368:
     210            case 369:
     211                speed = 1;
     212                break;
     213            case 600:
     214                speed = 2;
     215                break;
     216            case 800:
     217                speed = 3;
     218                break;
     219            default:
     220                speed = 0;
     221                cs_log("ERROR Sc8in1, cannot set clockspeed to %i", reader->mhz);
     222                break;
     223        }
     224        sc8in1_clock |= (speed << (reader[i].slot - 1) * 2);
    219225        buff[0] = 0x63; //MCR set clock
    220226        buff[1] = (sc8in1_clock >> 8) & 0xFF;
Note: See TracChangeset for help on using the changeset viewer.