ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VP_SDK / Examples / elinux / atcodec_sorted_list.c
diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VP_SDK/Examples/elinux/atcodec_sorted_list.c b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VP_SDK/Examples/elinux/atcodec_sorted_list.c
new file mode 100644 (file)
index 0000000..ee30a22
--- /dev/null
@@ -0,0 +1,71 @@
+
+#include <stdio.h>
+
+#include "VP_Os/vp_os_types.h"
+#include "ATcodec/ATcodec_Sorted_List.h"
+
+void print_element(void *element)
+{
+  printf("%d, ", *(uint32_t *)element);
+}
+
+void print_list(ATcodec_Sorted_List_t *list)
+{
+  printf("{ ");
+  ATcodec_Sorted_List_batchProcess(list, print_element);
+  printf("}\n");
+}
+
+#define INSERT(VALUE) \
+  element = VALUE; \
+  ATcodec_Sorted_List_insertElement(&list, &element, element); \
+  print_list(&list)
+
+#define REMOVE(INDEX) \
+  ATcodec_Sorted_List_removeElement(&list, ATcodec_Sorted_List_getElement(&list, INDEX)); \
+  print_list(&list)
+
+int main(int argc, char **argv)
+{
+  ATcodec_Sorted_List_t list;
+  int element;
+
+  ATcodec_Sorted_List_init(&list, sizeof(int));
+  print_list(&list);
+
+  INSERT(10);
+  INSERT(5);
+  INSERT(7);
+  INSERT(12);
+  INSERT(1);
+
+  REMOVE(3);
+
+  INSERT(12);
+
+  REMOVE(0);
+  REMOVE(0);
+
+  INSERT(3);
+  INSERT(4);
+  INSERT(6);
+
+  REMOVE(0);
+  REMOVE(0);
+  REMOVE(0);
+  REMOVE(0);
+  REMOVE(0);
+  REMOVE(0);
+
+  INSERT(7);
+  INSERT(12);
+  INSERT(1);
+
+  REMOVE(1);
+  REMOVE(1);
+  REMOVE(0);
+
+  ATcodec_Sorted_List_destroy(&list);
+
+  return EXIT_SUCCESS;
+}