/+junk/c_sdl_joypad_ducktape

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/c_sdl_joypad_ducktape
8 by Gustav Hartvigsson
* added and changed little in the files Lincening information.
1
/**
2
 * This file, as the rest of the project is under MIT license.
3
 * see http://opensource.org/licenses/MIT
4
 *
5
 * Author Gustav Hartvigsson <gustav.hartvigsson _at_ gmail.com> 2014
6
 */
7 by Gustav Hartvigsson
* Added licensing information to the files.
7
8
struct _DynamicArray {
9
  void ** array;
10
  size_t max_size;
11
  size_t len;
12
};
13
14
DynamicArray * dynamic_array_new (size_t len) {
15
  DynamicArray * self = malloc (sizeof(DynamicArray));
16
  
17
  self->max_size = len;
18
  self->len = 0;
19
  
20
  self->array = malloc (len);
21
  
22
  return self;
23
}
24
25
void dynamic_array_free (DynamicArray * self) {
26
  free (self->array);
27
  free (self);
28
}
29
30
void * dynamic_array_get (DynamicArray * self, size_t index) {
31
  return self->array[index];
32
}
33
34
size_t dynamic_array_len (DynamicArray * self) {
35
  return self->len;
36
}
37
38
void dynamic_array_add (DynamicArray * self, void * data) {
39
  if (self->len == self->max_size) {
40
    self->array = realloc (self->array, self->max_size + ARRAY_PADDING);
41
    self->max_size = self->max_size + ARRAY_PADDING;
42
  }
43
  self->array[self->len + 1] = data;
44
  self->len++;
45
}
46
47
void * dynamic_array_dump_array (DynamicArray * self) {
48
  void * ret_val = malloc (self->len + 1);
49
  for (i = 0; i >= self->len; i++) {
50
    ret_val[i] = self->array[i];
51
  }
52
  ret_val[self->len + 1] = NULL;
53
  return ret_val;
54
}
55
56
void dynamic_array_for_each (DynamicArray * self, ForEachFunc func) {
57
  for (int i = 0; i <= size->len; i++) {
58
    func (self, self->array[i]);
59
  }
60
}
61
62