annotate Renderer/Test/send_linda.cc @ 591:65e52fd2c2e2 draft

send linda not work...
author kazz@kazzone.st.ie.u-ryukyu.ac.jp
date Sun, 01 Nov 2009 06:14:52 +0900
parents 75a0877e962f
children 369537cb45ad
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <stdlib.h>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <stdio.h>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include <string.h>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include <fcntl.h>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 #include <sys/types.h>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 #include <sys/mman.h>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 #include <sys/stat.h>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 #include <unistd.h>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 #include <arpa/inet.h>
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 #include "SceneGraphRoot.h"
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 #include "lindaapi.h"
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 #include "send_linda.h"
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 #define HOSTNAME "localhost"
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 #define PORT_NUM 10000
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 #define LISTEN_PORT 1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 #define MULTI_NUM 10
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
18 #define SEND_DATA_SIZE 24 //sizeof(float) * 6;
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
19 void
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
20 send_position(SceneGraphPtr node)
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
21 {
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
22 char *data;
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
23 char send_data[SEND_DATA_SIZE]; // xyz[3] and angle[3]
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
24 int tapleid = node->id * 10 + 1;
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
25 int fd = *(int*)node->propertyptr;
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
26 int seq;
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
27 int i;
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
28
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
29 for (i = 0; i < 3; i ++) {
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
30 ((float *)send_data)[i] = htonl(node->xyz[i]);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
31 ((float *)send_data)[i+3] = htonl(node->angle[i]);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
32 }
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
33 seq = psx_in(fd, tapleid);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
34 do {
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
35 psx_sync_n();
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
36 data = (char *)psx_reply(seq);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
37 } while (data == NULL);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
38 psx_out(fd, tapleid, (unsigned char *)send_data, SEND_DATA_SIZE);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
39 psx_sync_n();
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
40 psx_free(data);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
41 }
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 void
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 root_move(SceneGraphPtr node, int w, int h)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 Pad *pad = sgroot->getController();
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
47 int flag = 0;
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 if (pad->right.isHold() || pad->left.isHold()) {
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
49 if (pad->right.isHold()) {
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
50 node->xyz[0] += 5.0f;
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
51 flag = 1;
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
52 } else if (pad->left.isHold()) {
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
53 node->xyz[0] -= 5.0f;
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
54 flag = 1;
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
55 }
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 if (pad->down.isHold() || pad->up.isHold() ) {
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
59 if (pad->down.isHold()) {
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
60 node->xyz[1] += 5.0f;
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
61 flag = 1;
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
62 } else if (pad->up.isHold()) {
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
63 node->xyz[1] -= 5.0f;
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
64 flag = 1;
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
65 }
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
68 /*
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 ここでキー入力を向こうに送る
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
70 */
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
71
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
72 if (flag) {
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
73 send_position(node);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
74 }
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 void
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 root_collision(SceneGraphPtr node, int w, int h, SceneGraphPtr tree)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 void
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 move(SceneGraphPtr node, int w, int h)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 void
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 collision(SceneGraphPtr node, int w, int h, SceneGraphPtr tree)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 void *
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 file_map(const char *filename, int *size) {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 int fd;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 void *addr;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 struct stat sb;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 if ((fd = open(filename, O_RDONLY)) == -1) {
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
99 fprintf(stderr, "Can't open %s\n", filename);
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
100 perror(NULL);
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 if (fstat(fd, &sb) == -1) {
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
103 fprintf(stderr, "Can't fstat %s\n", filename);
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
104 perror(NULL);
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 *size = sb.st_size;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 addr = mmap(NULL, *size, PROT_READ, MAP_PRIVATE, fd, 0);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 if (addr == MAP_FAILED) {
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
109 perror("mmap error\n");
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
110 exit(EXIT_FAILURE);
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 close(fd);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 return addr;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 int get_serial_id(int fd) {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 char *data;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 int serial;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 int seq;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 seq = psx_in(fd, 65535);
587
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
125 do {
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
126 psx_sync_n();
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
127 data = (char *)psx_reply(seq);
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
128 } while (data == 0);
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 serial = atoi(data + LINDA_HEADER_SIZE);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 psx_free(data);
591
65e52fd2c2e2 send linda not work...
kazz@kazzone.st.ie.u-ryukyu.ac.jp
parents: 588
diff changeset
131 printf("serial = %d\n", serial);
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 return serial;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 void
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 send_xml(int tspace, int xml_id, void *addr, int size) {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 psx_out(tspace, xml_id, (unsigned char *)addr, size);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 psx_sync_n();
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 /*
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 void
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 mainLoop(int tid, int write_id, int fd)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 void *addr;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 struct stat sb;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 if (fstat(fd, &sb) == -1) {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 perror("fstat");
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 exit(1);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 addr = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 if (addr==NULL) {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 perror("mmap");
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 exit(1);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 printf("file size=%d\n", sb.st_size);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 psx_out(tid, write_id, addr, sb.st_size);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 psx_sync_n();
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 return;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 */
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 static char *xml;
577
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 566
diff changeset
169 static char *linda = HOSTNAME;
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 MainLoopPtr
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
172 send_linda::init(Viewer *sgr, int screen_w, int screen_h)
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 void *addr;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 int size;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 int tspace;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 int serial;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 int xml_id;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 SceneGraphPtr sgp;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 SceneGraphPtr root;
587
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
182
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
183 root = sgroot->createSceneGraph();
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 root->set_move_collision(root_move, root_collision);
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
185
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
186 addr = file_map(xml, &size);
587
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
187 sgp = sgroot->createSceneGraph();
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
188 sgroot->createFromXMLmemory(sgroot->tmanager, sgp, (char *)addr, size);
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 sgp->set_move_collision(move, collision);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
190
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 root->addChild(sgp);
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
192
587
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
193 tspace = open_linda_java(linda, PORT_NUM);
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
194 root->propertyptr = sgroot->tmanager->allocate(sizeof(int));
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
195 root->property_size = sizeof(int);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
196 *(int *)root->propertyptr = tspace;
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
197
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
198 serial = get_serial_id(tspace);
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
199 root->id = serial;
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 xml_id = serial * 10;
587
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
201 send_xml(tspace, xml_id, addr, size);
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
202
587
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
203 int client_id = htonl(serial);
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
204 printf("serial id = %d\n", client_id);
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
205 send_xml(tspace, LISTEN_PORT, (unsigned char *)&client_id, sizeof(int));
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
206
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
207 int pos_id = serial * 10 + 1;
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
208 char pos_data[SEND_DATA_SIZE];
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
209 for (int i = 0; i < 6; i++) {
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
210 ((float *)pos_data)[i] = htonl(0.0f);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
211 }
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
212 send_xml(tspace, pos_id, (unsigned char *)pos_data, SEND_DATA_SIZE);
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
213
587
d267ca1a6fa0 dynamic work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 586
diff changeset
214 sgroot->setSceneData(root);
586
7e33deb9d3f4 dynamic not work
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 577
diff changeset
215 return sgr;
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
216 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
217
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 extern Application *
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
219 application() {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
220 return new send_linda();
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
222
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
223
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
224 const char *usr_help_str = "Usage: ./test_nogl [OPTION]\n";
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
225
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
226 extern int init(TaskManager *manager, int argc, char *argv[]);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
227 extern void task_initialize();
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
228 static void TMend(TaskManager *manager);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
229
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
230 int
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
231 TMmain(TaskManager *manager, int argc, char *argv[])
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
233 task_initialize();
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
234 manager->set_TMend(TMend);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
235
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 for(int i=0;i<argc;i++) {
588
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
237 if (strcmp(argv[i],"-xml") == 0 && i+1<=argc) {
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
238 xml = argv[i+1];
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
239 } else if (strcmp(argv[i],"-linda") == 0 && i+1<=argc) {
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
240 linda = argv[i+1];
75a0877e962f send position test
kazz@kazz187.st.ie.u-ryukyu.ac.jp
parents: 587
diff changeset
241 }
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
242 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
243
577
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 566
diff changeset
244 if (xml==0) {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 566
diff changeset
245 printf("-xml xml-file is required\n");
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 566
diff changeset
246 exit(0);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 566
diff changeset
247 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 566
diff changeset
248
566
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
249 return init(manager, argc, argv);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
250
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
251 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
252
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
253 void
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 TMend(TaskManager *manager)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
255 {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
256 printf("test_nogl end\n");
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
257 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
258
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
259 /* end */
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
260