Commit | Line | Data |
---|---|---|
bf956a00 TJ |
1 | /* find_all.c |
2 | ||
3 | Example for ftdi_usb_find_all() | |
4 | ||
5 | This program is distributed under the GPL, version 2 | |
6db32169 TJ |
6 | */ |
7 | ||
8 | #include <stdio.h> | |
9 | #include <ftdi.h> | |
10 | ||
6ac169ea | 11 | int main(void) |
6db32169 TJ |
12 | { |
13 | int ret, i; | |
14 | struct ftdi_context ftdic; | |
15 | struct ftdi_device_list *devlist, *curdev; | |
16 | char manufacturer[128], description[128]; | |
17 | ||
6ac169ea TJ |
18 | if (ftdi_init(&ftdic) < 0) |
19 | { | |
20 | fprintf(stderr, "ftdi_init failed\n"); | |
21 | return EXIT_FAILURE; | |
22 | } | |
6db32169 | 23 | |
22d12cda TJ |
24 | if ((ret = ftdi_usb_find_all(&ftdic, &devlist, 0x0403, 0x6001)) < 0) |
25 | { | |
6db32169 TJ |
26 | fprintf(stderr, "ftdi_usb_find_all failed: %d (%s)\n", ret, ftdi_get_error_string(&ftdic)); |
27 | return EXIT_FAILURE; | |
28 | } | |
29 | ||
30 | printf("Number of FTDI devices found: %d\n", ret); | |
31 | ||
32 | i = 0; | |
22d12cda TJ |
33 | for (curdev = devlist; curdev != NULL; i++) |
34 | { | |
6db32169 | 35 | printf("Checking device: %d\n", i); |
22d12cda TJ |
36 | if ((ret = ftdi_usb_get_strings(&ftdic, curdev->dev, manufacturer, 128, description, 128, NULL, 0)) < 0) |
37 | { | |
6db32169 TJ |
38 | fprintf(stderr, "ftdi_usb_get_strings failed: %d (%s)\n", ret, ftdi_get_error_string(&ftdic)); |
39 | return EXIT_FAILURE; | |
40 | } | |
41 | printf("Manufacturer: %s, Description: %s\n\n", manufacturer, description); | |
42 | curdev = curdev->next; | |
43 | } | |
44 | ||
45 | ftdi_list_free(&devlist); | |
46 | ftdi_deinit(&ftdic); | |
47 | ||
48 | return EXIT_SUCCESS; | |
49 | } |