blob: 091267a7fa6815002888322f27cde51c92137207 [file] [log] [blame]
Paul Cercueil6780a982017-01-20 14:38:44 +01001/*
2 * libiio - Library for interfacing industrial I/O (IIO) devices
3 *
4 * Copyright (C) 2017 Analog Devices, Inc.
5 * Author: Paul Cercueil <paul.cercueil@analog.com>
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 */
17
18#include "iio-config.h"
19#include "iio-private.h"
20
21#include <string.h>
22
23unsigned int iio_get_backends_count(void)
24{
25 unsigned int count = 0;
26
27#ifdef WITH_LOCAL_BACKEND
28 count++;
29#endif
30#ifdef WITH_XML_BACKEND
31 count++;
32#endif
33#ifdef WITH_NETWORK_BACKEND
34 count++;
35#endif
36#ifdef WITH_USB_BACKEND
37 count++;
38#endif
39#ifdef WITH_SERIAL_BACKEND
40 count++;
41#endif
42
43 return count;
44}
45
46const char * iio_get_backend(unsigned int index)
47{
48#ifdef WITH_LOCAL_BACKEND
49 if (index == 0)
50 return "local";
51 index--;
52#endif
53#ifdef WITH_XML_BACKEND
54 if (index == 0)
55 return "xml";
56 index--;
57#endif
58#ifdef WITH_NETWORK_BACKEND
59 if (index == 0)
60 return "ip";
61 index--;
62#endif
63#ifdef WITH_USB_BACKEND
64 if (index == 0)
65 return "usb";
66 index--;
67#endif
68#ifdef WITH_SERIAL_BACKEND
69 if (index == 0)
70 return "serial";
71#endif
72 return NULL;
73}
74
75bool iio_has_backend(const char *backend)
76{
77 unsigned int i;
78
79 for (i = 0; i < iio_get_backends_count(); i++)
80 if (strcmp(backend, iio_get_backend(i)) == 0)
81 return true;
82
83 return false;
84}