Lines Matching refs:dn
182 * per-device information, using the functions' parameters dn as index */
446 DBG (3, "store_device: overwrite dn %d with %s\n", pos, device.devname);
461 DBG (3, "store_device: add dn %d with %s\n", pos, device.devname);
2402 sanei_usb_get_vendor_product (SANE_Int dn, SANE_Word * vendor,
2408 if (dn >= device_number || dn < 0)
2410 DBG (1, "sanei_usb_get_vendor_product: dn >= device number || dn < 0\n");
2413 if (devices[dn].missing >= 1)
2415 DBG (1, "sanei_usb_get_vendor_product: dn=%d is missing!\n",dn);
2421 vendorID = devices[dn].vendor;
2422 productID = devices[dn].product;
2432 "seem to support detection of vendor+product ids\n", dn);
2438 "productID: 0x%04x\n", dn, vendorID, productID);
2447 SANE_Int dn = 0;
2453 while (devices[dn].devname && dn < device_number)
2455 if (devices[dn].vendor == vendor
2456 && devices[dn].product == product
2457 && !devices[dn].missing
2459 attach (devices[dn].devname);
2460 dn++;
2466 sanei_usb_set_endpoint (SANE_Int dn, SANE_Int ep_type, SANE_Int ep)
2468 if (dn >= device_number || dn < 0)
2470 DBG (1, "sanei_usb_set_endpoint: dn >= device number || dn < 0\n");
2478 devices[dn].bulk_in_ep = ep;
2481 devices[dn].bulk_out_ep = ep;
2484 devices[dn].iso_in_ep = ep;
2487 devices[dn].iso_out_ep = ep;
2490 devices[dn].int_in_ep = ep;
2493 devices[dn].int_out_ep = ep;
2496 devices[dn].control_in_ep = ep;
2499 devices[dn].control_out_ep = ep;
2576 sanei_usb_get_endpoint (SANE_Int dn, SANE_Int ep_type)
2578 if (dn >= device_number || dn < 0)
2580 DBG (1, "sanei_usb_get_endpoint: dn >= device number || dn < 0\n");
2587 return devices[dn].bulk_in_ep;
2589 return devices[dn].bulk_out_ep;
2591 return devices[dn].iso_in_ep;
2593 return devices[dn].iso_out_ep;
2595 return devices[dn].int_in_ep;
2597 return devices[dn].int_out_ep;
2599 return devices[dn].control_in_ep;
2601 return devices[dn].control_out_ep;
2621 static void sanei_usb_record_open(SANE_Int dn)
2632 sanei_xml_set_hex_attr(e_description, "id_vendor", devices[dn].vendor);
2633 sanei_xml_set_hex_attr(e_description, "id_product", devices[dn].product);
2646 sanei_xml_set_uint_attr(e_interface, "number", devices[dn].interface_nr);
2656 { "BULK", "IN", devices[dn].bulk_in_ep },
2657 { "BULK", "OUT", devices[dn].bulk_out_ep },
2658 { "ISOCHRONOUS", "IN", devices[dn].iso_in_ep },
2659 { "ISOCHRONOUS", "OUT", devices[dn].iso_out_ep },
2660 { "INTERRUPT", "IN", devices[dn].int_in_ep },
2661 { "INTERRUPT", "OUT", devices[dn].int_out_ep },
2662 { "CONTROL", "IN", devices[dn].control_in_ep },
2663 { "CONTROL", "OUT", devices[dn].control_out_ep }
2695 sanei_usb_open (SANE_String_Const devname, SANE_Int * dn)
2701 if (!dn)
2703 DBG (1, "sanei_usb_open: can't open `%s': dn == NULL\n", devname);
3481 *dn = devcount;
3482 DBG (3, "sanei_usb_open: opened usb device `%s' (*dn=%d)\n",
3488 sanei_usb_close (SANE_Int dn)
3501 DBG (5, "sanei_usb_close: closing device %d\n", dn);
3502 if (dn >= device_number || dn < 0)
3504 DBG (1, "sanei_usb_close: dn >= device number || dn < 0\n");
3507 if (!devices[dn].open)
3510 dn);
3517 else if (devices[dn].method == sanei_usb_method_scanner_driver)
3518 close (devices[dn].fd);
3519 else if (devices[dn].method == sanei_usb_method_usbcalls)
3538 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3541 usb_release_interface (devices[dn].libusb_handle,
3542 devices[dn].interface_nr);
3543 usb_close (devices[dn].libusb_handle);
3553 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3556 libusb_release_interface (devices[dn].lu_handle,
3557 devices[dn].interface_nr);
3558 libusb_close (devices[dn].lu_handle);
3568 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3571 usb_manager_release_interface (devices[dn].usb_manager_handle,
3572 devices[dn].interface_nr);
3573 usb_manager_close (devices[dn].usb_manager_handle);
3578 devices[dn].open = SANE_FALSE;
3598 sanei_usb_clear_halt (SANE_Int dn)
3611 if (dn >= device_number || dn < 0)
3613 DBG (1, "sanei_usb_clear_halt: dn >= device number || dn < 0\n");
3629 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3632 ret = usb_clear_halt (devices[dn].libusb_handle, devices[dn].bulk_in_ep);
3638 ret = usb_clear_halt (devices[dn].libusb_handle, devices[dn].bulk_out_ep);
3653 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3656 ret = libusb_clear_halt (devices[dn].lu_handle, devices[dn].bulk_in_ep);
3662 ret = libusb_clear_halt (devices[dn].lu_handle, devices[dn].bulk_out_ep);
3676 sanei_usb_set_altinterface (dn, devices[dn].alt_setting);
3679 ret = usb_manager_clear_halt (devices[dn].usb_manager_handle, devices[dn].bulk_in_ep);
3685 ret = usb_manager_clear_halt (devices[dn].usb_manager_handle, devices[dn].bulk_out_ep);
3698 sanei_usb_reset (SANE_Int __sane_unused__ dn)
3706 ret = usb_reset (devices[dn].libusb_handle);
3715 ret = libusb_reset_device (devices[dn].lu_handle);
3723 ret = usb_manager_reset_device (devices[dn].usb_manager_handle);
3738 static int sanei_usb_replay_next_read_bulk_packet_size(SANE_Int dn)
3752 devices[dn].bulk_in_ep & 0x0f))
3761 static void sanei_usb_record_read_bulk(xmlNode* node, SANE_Int dn,
3770 sanei_xml_command_common_props(e_tx, devices[dn].bulk_in_ep & 0x0f, "IN");
3798 static void sanei_usb_record_replace_read_bulk(xmlNode* node, SANE_Int dn,
3806 sanei_usb_record_read_bulk(node, dn, buffer, size, read_size);
3811 static int sanei_usb_replay_read_bulk(SANE_Int dn, SANE_Byte* buffer,
3833 sanei_usb_record_read_bulk(NULL, dn, NULL, 0, size);
3845 sanei_usb_record_replace_read_bulk(node, dn, NULL, 0, wanted_size);
3851 sanei_usb_record_replace_read_bulk(node, dn, NULL, 0, wanted_size);
3855 devices[dn].bulk_in_ep & 0x0f,
3858 sanei_usb_record_replace_read_bulk(node, dn, NULL, 0, wanted_size);
3871 sanei_usb_record_replace_read_bulk(node, dn, NULL, 0, wanted_size);
3880 int next_size = sanei_usb_replay_next_read_bulk_packet_size(dn);
3891 sanei_usb_read_bulk (SANE_Int dn, SANE_Byte * buffer, size_t * size)
3901 if (dn >= device_number || dn < 0)
3903 DBG (1, "sanei_usb_read_bulk: dn >= device number || dn < 0\n");
3912 read_size = sanei_usb_replay_read_bulk(dn, buffer, *size);
3918 else if (devices[dn].method == sanei_usb_method_scanner_driver)
3920 read_size = read (devices[dn].fd, buffer, *size);
3926 else if (devices[dn].method == sanei_usb_method_libusb)
3929 if (devices[dn].bulk_in_ep)
3931 read_size = usb_bulk_read (devices[dn].libusb_handle,
3932 devices[dn].bulk_in_ep, (char *) buffer,
3948 if (devices[dn].bulk_in_ep)
3951 ret = libusb_bulk_transfer (devices[dn].lu_handle,
3952 devices[dn].bulk_in_ep, buffer,
3977 if (devices[dn].bulk_in_ep)
3980 ret = usb_manager_bulk_transfer (devices[dn].usb_manager_handle,
3981 devices[dn].bulk_in_ep, buffer,
4010 else if (devices[dn].method == sanei_usb_method_usbcalls)
4020 DBG (5, "Entered usbcalls UsbBulkRead with dn = %d\n",dn);
4022 DBG (5, "Entered usbcalls UsbBulkRead with bulk_in_ep = 0x%02x\n",devices[dn].bulk_in_ep);
4023 DBG (5, "Entered usbcalls UsbBulkRead with interface_nr = %d\n",devices[dn].interface_nr);
4026 if (devices[dn].bulk_in_ep){
4027 rc = UsbBulkRead (dh, devices[dn].bulk_in_ep, devices[dn].interface_nr,
4050 devices[dn].method);
4057 sanei_usb_record_read_bulk(NULL, dn, buffer, *size, read_size);
4071 if (devices[dn].method == sanei_usb_method_libusb)
4072 usb_clear_halt (devices[dn].libusb_handle, devices[dn].bulk_in_ep);
4074 if (devices[dn].method == sanei_usb_method_libusb)
4075 libusb_clear_halt (devices[dn].lu_handle, devices[dn].bulk_in_ep);
4077 if (devices[dn].method == sanei_usb_method_usb_manager)
4078 usb_manager_clear_halt (devices[dn].usb_manager_handle, devices[dn].bulk_in_ep);
4098 static int sanei_usb_record_write_bulk(xmlNode* node, SANE_Int dn,
4107 sanei_xml_command_common_props(e_tx, devices[dn].bulk_out_ep & 0x0f, "OUT");
4118 static void sanei_usb_record_replace_write_bulk(xmlNode* node, SANE_Int dn,
4125 sanei_usb_record_write_bulk(node, dn, buffer, size, write_size);
4131 static int sanei_usb_replay_next_write_bulk_packet_size(SANE_Int dn)
4145 devices[dn].bulk_out_ep & 0x0f))
4154 static int sanei_usb_replay_write_bulk(SANE_Int dn, const SANE_Byte* buffer,
4173 sanei_usb_record_write_bulk(NULL, dn, buffer, size, size);
4184 sanei_usb_record_replace_write_bulk(node, dn, buffer, size, size);
4190 sanei_usb_record_replace_write_bulk(node, dn, buffer, size, size);
4194 devices[dn].bulk_out_ep & 0x0f,
4197 sanei_usb_record_replace_write_bulk(node, dn, buffer, size, size);
4214 sanei_usb_record_replace_write_bulk(node, dn, buffer, size, size);
4229 sanei_usb_record_replace_write_bulk(node, dn, buffer, size,
4236 sanei_usb_replay_next_write_bulk_packet_size(dn) < 0)
4245 sanei_usb_record_replace_write_bulk(node, dn, buffer, size,
4257 sanei_usb_write_bulk (SANE_Int dn, const SANE_Byte * buffer, size_t * size)
4267 if (dn >= device_number || dn < 0)
4269 DBG (1, "sanei_usb_write_bulk: dn >= device number || dn < 0\n");
4280 write_size = sanei_usb_replay_write_bulk(dn, buffer, *size);
4286 else if (devices[dn].method == sanei_usb_method_scanner_driver)
4288 write_size = write (devices[dn].fd, buffer, *size);
4294 else if (devices[dn].method == sanei_usb_method_libusb)
4297 if (devices[dn].bulk_out_ep)
4299 write_size = usb_bulk_write (devices[dn].libusb_handle,
4300 devices[dn].bulk_out_ep,
4316 if (devices[dn].bulk_out_ep)
4320 ret = libusb_bulk_transfer (devices[dn].lu_handle,
4321 devices[dn].bulk_out_ep,
4344 if (devices[dn].bulk_out_ep)
4348 ret = usb_manager_bulk_transfer (devices[dn].usb_manager_handle,
4349 devices[dn].bulk_out_ep,
4376 else if (devices[dn].method == sanei_usb_method_usbcalls)
4380 DBG (5, "Entered usbcalls UsbBulkWrite with dn = %d\n",dn);
4382 DBG (5, "Entered usbcalls UsbBulkWrite with bulk_out_ep = 0x%02x\n",devices[dn].bulk_out_ep);
4383 DBG (5, "Entered usbcalls UsbBulkWrite with interface_nr = %d\n",devices[dn].interface_nr);
4391 if (devices[dn].bulk_out_ep){
4392 rc = UsbBulkWrite (dh, devices[dn].bulk_out_ep, devices[dn].interface_nr,
4417 devices[dn].method);
4424 sanei_usb_record_write_bulk(NULL, dn, buffer, *size, write_size);
4438 if (devices[dn].method == sanei_usb_method_libusb)
4439 usb_clear_halt (devices[dn].libusb_handle, devices[dn].bulk_out_ep);
4441 if (devices[dn].method == sanei_usb_method_libusb)
4442 libusb_clear_halt (devices[dn].lu_handle, devices[dn].bulk_out_ep);
4444 if (devices[dn].method == sanei_usb_method_usb_manager)
4445 usb_manager_clear_halt (devices[dn].usb_manager_handle, devices[dn].bulk_out_ep);
4458 SANE_Int dn, SANE_Int rtype, SANE_Int req,
4462 (void) dn;
4501 SANE_Int dn, SANE_Int rtype, SANE_Int req,
4517 sanei_usb_record_control_msg(node, dn, rtype, req, value, index, len, data);
4524 sanei_usb_replay_control_msg(SANE_Int dn, SANE_Int rtype, SANE_Int req,
4528 (void) dn;
4545 sanei_usb_record_control_msg(NULL, dn, rtype, req, value, index, len,
4562 return sanei_usb_record_replace_control_msg(node, dn, rtype, req, value,
4574 return sanei_usb_record_replace_control_msg(node, dn, rtype, req, value,
4589 return sanei_usb_record_replace_control_msg(node, dn, rtype, req,
4601 return sanei_usb_record_replace_control_msg(node, dn, rtype, req,
4611 sanei_usb_control_msg (SANE_Int dn, SANE_Int rtype, SANE_Int req,
4615 if (dn >= device_number || dn < 0)
4617 DBG (1, "sanei_usb_control_msg: dn >= device number || dn < 0, dn=%d\n",
4618 dn);
4630 return sanei_usb_replay_control_msg(dn, rtype, req, value, index, len,
4637 if (devices[dn].method == sanei_usb_method_scanner_driver)
4649 if (ioctl (devices[dn].fd, SCANNER_IOCTL_CTRLMSG, &c) < 0)
4667 if (ioctl (devices[dn].fd, B_SCANNER_IOCTL_CTRLMSG, &c) < 0)
4680 else if (devices[dn].method == sanei_usb_method_libusb)
4685 result = usb_control_msg (devices[dn].libusb_handle, rtype, req,
4701 result = libusb_control_transfer (devices[dn].lu_handle, rtype, req,
4717 result = usb_manager_control_transfer (devices[dn].usb_manager_handle, rtype, req,
4735 else if (devices[dn].method == sanei_usb_method_usbcalls)
4761 devices[dn].method);
4769 sanei_usb_record_control_msg(NULL, dn, rtype, req, value, index, len,
4781 SANE_Int dn, SANE_Byte* buffer,
4792 sanei_xml_command_common_props(e_tx, devices[dn].int_in_ep & 0x0f, "IN");
4821 SANE_Int dn, SANE_Byte* buffer,
4828 sanei_usb_record_read_int(node, dn, buffer, size, read_size);
4833 static int sanei_usb_replay_read_int(SANE_Int dn, SANE_Byte* buffer,
4850 sanei_usb_record_read_int(NULL, dn, NULL, 0, size);
4862 sanei_usb_record_replace_read_int(node, dn, NULL, 0, size);
4868 sanei_usb_record_replace_read_int(node, dn, NULL, 0, size);
4873 devices[dn].int_in_ep & 0x0f,
4876 sanei_usb_record_replace_read_int(node, dn, NULL, 0, size);
4893 sanei_usb_record_replace_read_int(node, dn, NULL, 0, size);
4905 sanei_usb_read_int (SANE_Int dn, SANE_Byte * buffer, size_t * size)
4918 if (dn >= device_number || dn < 0)
4920 DBG (1, "sanei_usb_read_int: dn >= device number || dn < 0\n");
4929 read_size = sanei_usb_replay_read_int(dn, buffer, *size);
4935 else if (devices[dn].method == sanei_usb_method_scanner_driver)
4938 devices[dn].method);
4941 else if (devices[dn].method == sanei_usb_method_libusb)
4944 if (devices[dn].int_in_ep)
4946 read_size = usb_interrupt_read (devices[dn].libusb_handle,
4947 devices[dn].int_in_ep,
4966 if (devices[dn].int_in_ep)
4970 ret = libusb_interrupt_transfer (devices[dn].lu_handle,
4971 devices[dn].int_in_ep,
4991 if (devices[dn].int_in_ep)
4995 ret = usb_manager_interrupt_transfer (devices[dn].usb_manager_handle,
4996 devices[dn].int_in_ep,
5020 else if (devices[dn].method == sanei_usb_method_usbcalls)
5025 DBG (5, "Entered usbcalls UsbIrqStart with dn = %d\n",dn);
5027 DBG (5, "Entered usbcalls UsbIrqStart with int_in_ep = 0x%02x\n",devices[dn].int_in_ep);
5028 DBG (5, "Entered usbcalls UsbIrqStart with interface_nr = %d\n",devices[dn].interface_nr);
5031 if (devices[dn].int_in_ep){
5032 rc = UsbIrqStart (dh,devices[dn].int_in_ep,devices[dn].interface_nr,
5052 devices[dn].method);
5059 sanei_usb_record_read_int(NULL, dn, buffer, *size, read_size);
5073 if (devices[dn].method == sanei_usb_method_libusb)
5075 usb_clear_halt (devices[dn].libusb_handle, devices[dn].int_in_ep);
5077 if (devices[dn].method == sanei_usb_method_libusb)
5079 libusb_clear_halt (devices[dn].lu_handle, devices[dn].int_in_ep);
5081 if (devices[dn].method == sanei_usb_method_usb_manager)
5083 usb_manager_clear_halt (devices[dn].usb_manager_handle, devices[dn].int_in_ep);
5103 static SANE_Status sanei_usb_replay_set_configuration(SANE_Int dn,
5106 (void) dn;
5146 static void sanei_usb_record_set_configuration(SANE_Int dn,
5149 (void) dn; (void) configuration;
5155 sanei_usb_set_configuration (SANE_Int dn, SANE_Int configuration)
5157 if (dn >= device_number || dn < 0)
5160 "sanei_usb_set_configuration: dn >= device number || dn < 0, dn=%d\n",
5161 dn);
5170 sanei_usb_record_set_configuration(dn, configuration);
5180 return sanei_usb_replay_set_configuration(dn, configuration);
5186 else if (devices[dn].method == sanei_usb_method_scanner_driver)
5195 else if (devices[dn].method == sanei_usb_method_libusb)
5201 usb_set_configuration (devices[dn].libusb_handle, configuration);
5214 result = libusb_set_configuration (devices[dn].lu_handle, configuration);
5227 result = usb_manager_set_configuration (devices[dn].usb_manager_handle, configuration);
5246 devices[dn].method);
5252 sanei_usb_claim_interface (SANE_Int dn, SANE_Int interface_number)
5254 if (dn >= device_number || dn < 0)
5257 "sanei_usb_claim_interface: dn >= device number || dn < 0, dn=%d\n",
5258 dn);
5261 if (devices[dn].missing)
5263 DBG (1, "sanei_usb_claim_interface: device dn=%d is missing\n", dn);
5273 else if (devices[dn].method == sanei_usb_method_scanner_driver)
5282 else if (devices[dn].method == sanei_usb_method_libusb)
5287 result = usb_claim_interface (devices[dn].libusb_handle, interface_number);
5300 result = libusb_claim_interface (devices[dn].lu_handle, interface_number);
5313 result = usb_manager_claim_interface (devices[dn].usb_manager_handle, interface_number);
5331 devices[dn].method);
5337 sanei_usb_release_interface (SANE_Int dn, SANE_Int interface_number)
5339 if (dn >= device_number || dn < 0)
5342 "sanei_usb_release_interface: dn >= device number || dn < 0, dn=%d\n",
5343 dn);
5346 if (devices[dn].missing)
5348 DBG (1, "sanei_usb_release_interface: device dn=%d is missing\n", dn);
5357 else if (devices[dn].method == sanei_usb_method_scanner_driver)
5366 else if (devices[dn].method == sanei_usb_method_libusb)
5371 result = usb_release_interface (devices[dn].libusb_handle, interface_number);
5384 result = libusb_release_interface (devices[dn].lu_handle, interface_number);
5397 result = usb_manager_release_interface (devices[dn].usb_manager_handle, interface_number);
5416 devices[dn].method);
5422 sanei_usb_set_altinterface (SANE_Int dn, SANE_Int alternate)
5424 if (dn >= device_number || dn < 0)
5427 "sanei_usb_set_altinterface: dn >= device number || dn < 0, dn=%d\n",
5428 dn);
5434 devices[dn].alt_setting = alternate;
5440 else if (devices[dn].method == sanei_usb_method_scanner_driver)
5449 else if (devices[dn].method == sanei_usb_method_libusb)
5454 result = usb_set_altinterface (devices[dn].libusb_handle, alternate);
5467 result = libusb_set_interface_alt_setting (devices[dn].lu_handle,
5468 devices[dn].interface_nr, alternate);
5481 result = usb_manager_set_interface_alt_setting (devices[dn].usb_manager_handle,
5482 devices[dn].interface_nr, alternate);
5501 devices[dn].method);
5509 sanei_usb_replay_get_descriptor(SANE_Int dn,
5512 (void) dn;
5569 sanei_usb_record_get_descriptor(SANE_Int dn,
5572 (void) dn;
5596 sanei_usb_get_descriptor( SANE_Int dn,
5600 if (dn >= device_number || dn < 0)
5603 "sanei_usb_get_descriptor: dn >= device number || dn < 0, dn=%d\n",
5604 dn);
5611 return sanei_usb_replay_get_descriptor(dn, desc);
5623 usb_descr = &(devices[dn].libusb_device->descriptor);
5638 ret = libusb_get_device_descriptor (devices[dn].lu_device, &lu_desc);
5662 ret = usb_manager_get_device_descriptor (devices[dn].usb_manager_device, &usb_manager_desc);
5691 sanei_usb_record_get_descriptor(dn, desc);