Added C++ examples to the build process
[libftdi] / examples / find_all_pp.cpp
diff --git a/examples/find_all_pp.cpp b/examples/find_all_pp.cpp
new file mode 100644 (file)
index 0000000..7a5a85d
--- /dev/null
@@ -0,0 +1,62 @@
+/* final_all_pp.cpp
+
+   Simple libftdi-cpp usage
+
+   This program is distributed under the GPL, version 2
+*/
+
+#include "ftdi.hpp"
+#include <iostream>
+#include <iomanip>
+#include <cstdlib>
+#include <cstring>
+using namespace Ftdi;
+
+int main(int argc, char **argv)
+{
+   // Show help
+   if(argc > 1)
+   {
+      if(strcmp(argv[1],"-h") == 0 || strcmp(argv[1],"--help") == 0)
+      {
+         std::cout << "Usage: " << argv[0] << " [-v VENDOR_ID] [-p PRODUCT_ID]" << std::endl;
+         return EXIT_SUCCESS;
+      }
+   }
+
+   // Parse args
+   int vid = 0x0403, pid = 0x6010, tmp = 0;
+   for(int i = 0; i < (argc - 1); i++)
+   {
+      if(strcmp(argv[i], "-v") == 0)
+         if((tmp = strtol(argv[++i], 0, 16)) >= 0)
+            vid = tmp;
+
+      if(strcmp(argv[i], "-p") == 0)
+         if((tmp = strtol(argv[++i], 0, 16)) >= 0)
+            pid = tmp;
+   }
+
+   // Print header
+   std::cout << std::hex << std::showbase
+             << "Found devices ( VID: " << vid << ", PID: " << pid << " )"
+             << std::endl
+             << "------------------------------------------------"
+             << std::endl << std::dec;
+
+   // Print whole list
+   List* list = List::find_all(vid, pid);
+   for(List::iterator it = list->begin(); it != list->end(); it++)
+   {
+      std::cout << "FTDI (" << &*it << "): "
+                << it->vendor() << ", "
+                << it->description() << ", "
+                << it->serial()
+                << std::endl;
+
+   }
+
+   delete list;
+
+   return EXIT_SUCCESS;
+}