/[pcsclite]/trunk/Drivers/ccid/src/ccid_usb.c
ViewVC logotype

Diff of /trunk/Drivers/ccid/src/ccid_usb.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 279 by rousseau, Thu Aug 14 06:53:21 2003 UTC revision 301 by rousseau, Wed Aug 20 08:37:34 2003 UTC
# Line 99  status_t OpenUSB(int lun, int Channel) Line 99  status_t OpenUSB(int lun, int Channel)
99          struct usb_dev_handle *dev_handle;          struct usb_dev_handle *dev_handle;
100          char keyValue[TOKEN_MAX_VALUE_SIZE];          char keyValue[TOKEN_MAX_VALUE_SIZE];
101          int vendorID, productID;          int vendorID, productID;
102            char infofile[FILENAME_MAX];
103    
104          DEBUG_COMM3("OpenUSB: Lun: %X, Channel: %X", lun, Channel);          DEBUG_COMM3("OpenUSB: Lun: %X, Channel: %X", lun, Channel);
105    
# Line 125  status_t OpenUSB(int lun, int Channel) Line 126  status_t OpenUSB(int lun, int Channel)
126                  return STATUS_UNSUCCESSFUL;                  return STATUS_UNSUCCESSFUL;
127          }          }
128    
129            /* Info.plist full patch filename */
130            snprintf(infofile, sizeof(infofile), "%s/Contents/Info.plist", PCSCLITE_HP_DROPDIR);
131    
132          /* general driver info */          /* general driver info */
133          if (!LTPBundleFindValueWithKey(PCSCLITE_HP_DROPDIR "/Contents/Info.plist", "ifdManufacturerString", keyValue, 0))          if (!LTPBundleFindValueWithKey(infofile, "ifdManufacturerString", keyValue, 0))
134                  DEBUG_CRITICAL2("Manufacturer: %s", keyValue);                  DEBUG_CRITICAL2("Manufacturer: %s", keyValue);
135          else          else
136          {          {
137                  DEBUG_CRITICAL2("LTPBundleFindValueWithKey error. Can't find %s?",                  DEBUG_CRITICAL2("LTPBundleFindValueWithKey error. Can't find %s?",
138                          PCSCLITE_HP_DROPDIR "/Contents/Info.plist");                          infofile);
139                  return STATUS_UNSUCCESSFUL;                  return STATUS_UNSUCCESSFUL;
140          }          }
141          if (!LTPBundleFindValueWithKey(PCSCLITE_HP_DROPDIR "/Contents/Info.plist", "ifdProductString", keyValue, 0))          if (!LTPBundleFindValueWithKey(infofile, "ifdProductString", keyValue, 0))
142                  DEBUG_CRITICAL2("ProductString: %s", keyValue);                  DEBUG_CRITICAL2("ProductString: %s", keyValue);
143          else          else
144                  return STATUS_UNSUCCESSFUL;                  return STATUS_UNSUCCESSFUL;
145          if (!LTPBundleFindValueWithKey(PCSCLITE_HP_DROPDIR "/Contents/Info.plist", "Copyright", keyValue, 0))          if (!LTPBundleFindValueWithKey(infofile, "Copyright", keyValue, 0))
146                  DEBUG_CRITICAL2("Copyright: %s", keyValue);                  DEBUG_CRITICAL2("Copyright: %s", keyValue);
147          else          else
148                  return STATUS_UNSUCCESSFUL;                  return STATUS_UNSUCCESSFUL;
# Line 148  status_t OpenUSB(int lun, int Channel) Line 152  status_t OpenUSB(int lun, int Channel)
152                  alias ^= keyValue[vendorID];                  alias ^= keyValue[vendorID];
153    
154          /* for any supported reader */          /* for any supported reader */
155          while (LTPBundleFindValueWithKey(PCSCLITE_HP_DROPDIR "/Contents/Info.plist", PCSCLITE_MANUKEY_NAME, keyValue, alias) == 0)          while (LTPBundleFindValueWithKey(infofile, PCSCLITE_MANUKEY_NAME, keyValue, alias) == 0)
156          {          {
157                  vendorID = strtol(keyValue, 0, 16);                  vendorID = strtoul(keyValue, 0, 16);
158    
159                  if (LTPBundleFindValueWithKey(PCSCLITE_HP_DROPDIR "/Contents/Info.plist", PCSCLITE_PRODKEY_NAME, keyValue, alias))                  if (LTPBundleFindValueWithKey(infofile, PCSCLITE_PRODKEY_NAME, keyValue, alias))
160                          goto end;                          goto end;
161                  productID = strtol(keyValue, 0, 16);                  productID = strtoul(keyValue, 0, 16);
162    
163                  if (LTPBundleFindValueWithKey(PCSCLITE_HP_DROPDIR "/Contents/Info.plist", PCSCLITE_NAMEKEY_NAME, keyValue, alias))                  if (LTPBundleFindValueWithKey(infofile, PCSCLITE_NAMEKEY_NAME, keyValue, alias))
164                          goto end;                          goto end;
165    
166                  /* on any USB buses */                  /* on any USB buses */
# Line 195  status_t OpenUSB(int lun, int Channel) Line 199  status_t OpenUSB(int lun, int Channel)
199    
200                                          if (!already_used)                                          if (!already_used)
201                                          {                                          {
202                                                    DEBUG_COMM2("Trying to open USB bus/device: %s",
203                                                             device_name);
204    
205                                                  dev_handle = usb_open(dev);                                                  dev_handle = usb_open(dev);
206                                                  if (dev_handle)                                                  if (dev_handle)
207                                                  {                                                  {
208                                                          int interface;                                                          int interface;
209    
                                                         DEBUG_COMM2("Trying to open USB bus/device: %s", device_name);  
   
210                                                          if (dev->config == NULL)                                                          if (dev->config == NULL)
211                                                          {                                                          {
212                                                                  DEBUG_CRITICAL2("No dev->config found for %s", device_name);                                                                  DEBUG_CRITICAL2("No dev->config found for %s",
213                                                                             device_name);
214                                                                  return STATUS_UNSUCCESSFUL;                                                                  return STATUS_UNSUCCESSFUL;
215                                                          }                                                          }
216    
# Line 220  status_t OpenUSB(int lun, int Channel) Line 226  status_t OpenUSB(int lun, int Channel)
226                                                          DEBUG_INFO4("Found Vendor/Product: %04X/%04X (%s)",                                                          DEBUG_INFO4("Found Vendor/Product: %04X/%04X (%s)",
227                                                                  dev->descriptor.idVendor,                                                                  dev->descriptor.idVendor,
228                                                                  dev->descriptor.idProduct, keyValue);                                                                  dev->descriptor.idProduct, keyValue);
229                                                          DEBUG_INFO2("Using USB bus/device: %s", device_name);                                                          DEBUG_INFO2("Using USB bus/device: %s",
230                                                                     device_name);
231    
232                                                          /* Get Endpoints values*/                                                          /* Get Endpoints values*/
233                                                          get_end_points(dev, &usbDevice[reader]);                                                          get_end_points(dev, &usbDevice[reader]);
# Line 235  status_t OpenUSB(int lun, int Channel) Line 242  status_t OpenUSB(int lun, int Channel)
242                                                          goto end;                                                          goto end;
243                                                  }                                                  }
244                                                  else                                                  else
245                                                          DEBUG_CRITICAL3("Can't usb_open(%s): %s", device_name,                                                          DEBUG_CRITICAL3("Can't usb_open(%s): %s",
246                                                                    device_name,
247                                                                  strerror(errno));                                                                  strerror(errno));
248                                          }                                          }
249                                          else                                          else
# Line 352  status_t CloseUSB(int lun) Line 360  status_t CloseUSB(int lun)
360  } /* CloseUSB */  } /* CloseUSB */
361    
362    
363    /*****************************************************************************
364     *
365     *                                      ccid_get_seq
366     *
367     ****************************************************************************/
368  int ccid_get_seq(int lun)  int ccid_get_seq(int lun)
369  {  {
370          return usbDevice[LunToReaderIndex(lun)].bSeq++;          return usbDevice[LunToReaderIndex(lun)].bSeq++;
371  } /* ccid_get_seq */  } /* ccid_get_seq */
372    
373    
374    /*****************************************************************************
375     *
376     *                                      ccid_error
377     *
378     ****************************************************************************/
379  void ccid_error(int error, char *file, int line)  void ccid_error(int error, char *file, int line)
380  {  {
381          char *text;          char *text;
# Line 445  void ccid_error(int error, char *file, i Line 463  void ccid_error(int error, char *file, i
463    
464  } /* ccid_error */  } /* ccid_error */
465    
466    /*****************************************************************************
467     *
468     *                                      get_desc
469     *
470     ****************************************************************************/
471  int get_desc(int channel, char *device_name[], usb_dev_handle **handle, struct  int get_desc(int channel, char *device_name[], usb_dev_handle **handle, struct
472          usb_device **dev)          usb_device **dev)
473  {  {
# Line 458  int get_desc(int channel, char *device_n Line 481  int get_desc(int channel, char *device_n
481          return 0;          return 0;
482  } /* get_desc */  } /* get_desc */
483    
484    /*****************************************************************************
485     *
486     *                                      get_end_points
487     *
488     ****************************************************************************/
489  int get_end_points(struct usb_device *dev, _usbDevice *usb_device)  int get_end_points(struct usb_device *dev, _usbDevice *usb_device)
490  {  {
491          int i;          int i;

Legend:
Removed from v.279  
changed lines
  Added in v.301

  ViewVC Help
Powered by ViewVC 1.1.5