#include <ftdi.h>
#include <err.h>

int main(int argc, char *argv[])
{
    struct ftdi_context ftdi;
    unsigned char x;

    /* Initialize and find device */
    if (ftdi_init(&ftdi) < 0)
        err(1, "ftdi_init");

    if (ftdi_usb_open(&ftdi, 0x0403, 0x6015) < 0)
        err(2, "can't open device");

    /* Enable bitbang */
    if (ftdi_set_bitmode(&ftdi, 0xff, BITMODE_BITBANG) < 0)
        err(3, "can't enable bitbang mode");

    /* Read state & flip it */
    if (ftdi_read_pins(&ftdi, &x) < 0)
        err(4, "can't read");
    x ^= 0xff;
    if (ftdi_write_data(&ftdi, &x, 1) < 0)
        err(5, "can't write");

    /* Close device */
    ftdi_usb_close(&ftdi);
    ftdi_deinit(&ftdi);

    return 0;
}
