SoundSim
main.h
Go to the documentation of this file.
1 #ifndef MAIN_H
2 #define MAIN_H
3 #include <stdbool.h>
4 extern int x_format;
5 extern int y_format;
6 extern int z_format;
10 typedef struct item_node{
11  //id = 0 -> Sound Item, 1 = Hinderniss, 2 = out of bounds, 3 = Linked List Head
12  int id;
13  struct item_node *next;
14  struct item_node *prev;
15  union{
16  struct{
17  int freq_20_40; // Angabe hier 20 bis 40 hz
25  int freq_6000_10000; //Frequenzbereich hat einen dB Wert
27  bool touched;
28  int direction_id; //direction_id: 1 = 0oben, 2 = 45obenrechts, 3 = 90rechts, 4 = 135untenrechts,
29  // 5 = 180(unten), 6 = 225(unten)links, 7 = 270links, 8 = 315links oben, 0 = nichts
30  // 9 = 0unten, 10 = 45unten, 11 = 90unten, 12 = 135unten, 13 = 180unten, 14 = 225 unten
31  // 15 = 270unten, 16 = 315unten, 17 = 0oben, 18= 45oben, 19 = 90oben, 20 = 135oben, 21= 180 oben
32  // 22 = 225oben, 23 = 270oben, 24 = 315oben, 25 = von der Decke zum Boden, 26 = vom Boden zu decke. Undenkbar =D
33  //Ausfallwinkel: 1 -> 5, 2 -> 4, 3 -> 7, 4 -> 2, 5 -> 1, 6 -> 8, 7 -> 3, 8 -> 6
34  int movement; // Anzahl an Verschiebungen, welche die dB Zahl reduziert TODO Methoden.
37  } Sound;
38  struct{
39  float reduce; // muss ein Absoprtionsfaktor sein ≥ 1 und für die Frequenz angepasst werden
40  } Obstacle;
41  } data;
42 }item_node;
43 int getItemID(item_node *node );
44 void setItemID(item_node *node, int id);
45 int getFieldID(int x, int y, int z);
46 int getReboundID(int currentDirectionID);
47 
48 
49 void setFreq20b40(item_node *node, int value);
50 void setFreq40b100(item_node *node, int value);
51 void setFreq100b150(item_node *node, int value);
52 void setFreq150b400(item_node *node, int value);
53 void setFreq400b1000(item_node *node, int value);
54 void setFreq1000b2000(item_node *node, int value);
55 void setFreq2000b3500(item_node *node, int value);
56 void setFreq3500b6000(item_node *node, int value);
57 void setFreq6000b10000(item_node *node, int value);
58 void setFreq10000b20000(item_node *node, int value);
59 
60 int getFreq20b40(item_node *node);
61 int getFreq40b100(item_node *node);
62 int getFreq100b150(item_node *node);
63 int getFreq150b400(item_node *node);
64 int getFreq400b1000(item_node *node);
65 int getFreq1000b2000(item_node *node);
66 int getFreq2000b3500(item_node *node);
67 int getFreq3500b6000(item_node *node);
68 int getFreq6000b10000(item_node *node);
69 int getFreq10000b20000(item_node *node);
70 
71 void setDirectionID(item_node *node, int value);
72 int getDirectionID(item_node *node);
73 item_node *getItem_Root(int x, int y, int z);
74 item_node* createItem (int x, int y, int z, int id);
75 item_node* addItem (item_node *node, int x, int y, int z);
76 void addItemNewRoom (item_node * node, int x, int y, int z);
77 int isSoundField(int x, int y, int z);
78 void removeItem(item_node *node);
79 
80 #endif
int getFieldID(int x, int y, int z)
Definition: main.c:207
bool touched
Definition: main.h:27
int getReboundID(int currentDirectionID)
Definition: main.c:421
void setFreq3500b6000(item_node *node, int value)
Definition: main.c:292
item_node * addItem(item_node *node, int x, int y, int z)
Definition: main.c:523
int getFreq40b100(item_node *node)
Definition: main.c:320
int freq_3500_6000
Definition: main.h:24
int getItemID(item_node *node)
Definition: main.c:185
int getFreq1000b2000(item_node *node)
Definition: main.c:352
void setFreq20b40(item_node *node, int value)
Definition: main.c:250
int getFreq10000b20000(item_node *node)
Definition: main.c:384
void setFreq400b1000(item_node *node, int value)
Definition: main.c:274
int freq_6000_10000
Definition: main.h:25
int getFreq6000b10000(item_node *node)
Definition: main.c:376
struct item_node * next
Definition: main.h:13
int freq_1000_2000
Definition: main.h:22
int freq_2000_3500
Definition: main.h:23
int isSoundField(int x, int y, int z)
Definition: main.c:586
struct item_node * prev
Definition: main.h:14
void setFreq2000b3500(item_node *node, int value)
Definition: main.c:286
int id
Definition: main.h:12
void removeItem(item_node *node)
Definition: main.c:500
void setFreq150b400(item_node *node, int value)
Definition: main.c:268
union item_node::@0 data
int getFreq100b150(item_node *node)
Definition: main.c:328
int movement
Definition: main.h:34
int sideofwave
Definition: main.h:35
void setDirectionID(item_node *node, int value)
Definition: main.c:399
int y_format
Definition: main.c:18
int getFreq3500b6000(item_node *node)
Definition: main.c:368
int getDirectionID(item_node *node)
Definition: main.c:410
int getFreq2000b3500(item_node *node)
Definition: main.c:360
int freq_10000_20000
Definition: main.h:26
int x_format
Raum Formate.
Definition: main.c:17
struct item_node::@0::@1 Sound
int freq_100_150
Definition: main.h:19
Definition: main.h:10
int freq_20_40
Definition: main.h:17
int getFreq400b1000(item_node *node)
Definition: main.c:344
struct item_node item_node
int getFreq20b40(item_node *node)
Definition: main.c:312
int freq_40_100
Definition: main.h:18
void setFreq100b150(item_node *node, int value)
Definition: main.c:262
item_node * getItem_Root(int x, int y, int z)
Definition: main.c:454
int direction_id
Definition: main.h:28
void setFreq1000b2000(item_node *node, int value)
Definition: main.c:280
struct item_node::@0::@2 Obstacle
void setItemID(item_node *node, int id)
Definition: main.c:196
int freq_150_400
Definition: main.h:20
float reduce
Definition: main.h:39
int getFreq150b400(item_node *node)
Definition: main.c:336
void setFreq6000b10000(item_node *node, int value)
Definition: main.c:298
int z_format
Definition: main.c:19
void setFreq40b100(item_node *node, int value)
Definition: main.c:256
int freq_400_1000
Definition: main.h:21
item_node * createItem(int x, int y, int z, int id)
Definition: main.c:476
void setFreq10000b20000(item_node *node, int value)
Definition: main.c:304
struct item_node * waveroot
Definition: main.h:36
void addItemNewRoom(item_node *node, int x, int y, int z)
Definition: main.c:565