array.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef _ARRAY_H_
  2. #define _ARRAY_H_
  3. #include "common.h"
  4. #include <stdint.h>
  5. #define ARRAY_TYPE_NONE 0
  6. #define ARRAY_TYPE_INT 1
  7. #define ARRAY_TYPE_STRING 2
  8. #define ARRAY_TYPE_FLOAT 3
  9. #define ARRAY_TYPE_PTR 4
  10. /* defined in array.c */
  11. void array_init(array_t *a, uint32_t type);
  12. array_t *array_create(uint32_t type);
  13. array_t *array_copy(array_t *a);
  14. int array_cmp(array_t *a1, array_t *a2);
  15. void array_free(array_t *a, int freestruct);
  16. int array_push_int(array_t *a, uint32_t v);
  17. int array_push_float(array_t *a, float v);
  18. int array_push_string(array_t *a, char* v);
  19. int array_push_ptr(array_t *a, void *v);
  20. int array_push_colour(array_t *a, colour_t *c);
  21. int array_push_v3t(array_t *a, v3_t *v);
  22. int array_push_v2t(array_t *a, v2_t *v);
  23. int array_set_int(array_t *a, uint32_t v, int i);
  24. int array_set_float(array_t *a, float v, int i);
  25. int array_set_string(array_t *a, char* v, int i);
  26. int array_set_ptr(array_t *a, void* v, int i);
  27. uint32_t array_pop_int(array_t *a);
  28. float array_pop_float(array_t *a);
  29. char* array_pop_string(array_t *a);
  30. void *array_pop_ptr(array_t *a);
  31. uint32_t array_get_int(array_t *a, int i);
  32. float array_get_float(array_t *a, int i);
  33. char* array_get_string(array_t *a, int i);
  34. void *array_get_ptr(array_t *a, int i);
  35. int array_find_int(array_t *a, uint32_t v);
  36. int array_find_float(array_t *a, float v);
  37. int array_find_string(array_t *a, char* v);
  38. int array_find_ptr(array_t *a, void *v);
  39. int array_remove_string(array_t *a, char* v);
  40. array_t *array_split(char* str, char* s, int strings);
  41. char* array_join(array_t *a, char* glue, int start);
  42. #endif