24 #include <sys/types.h>
34 void error(
int num,
const char *m,
const char *path);
36 int generic_handler(
const char *path,
const char *types,
lo_arg ** argv,
37 int argc,
void *data,
void *user_data);
39 int foo_handler(
const char *path,
const char *types,
lo_arg ** argv,
40 int argc,
void *data,
void *user_data);
42 int quit_handler(
const char *path,
const char *types,
lo_arg ** argv,
43 int argc,
void *data,
void *user_data);
45 void read_stdin(
void);
85 retval = select(lo_fd + 1, &rfds, NULL, NULL, NULL);
89 printf(
"select() error\n");
92 }
else if (retval > 0) {
94 if (FD_ISSET(0, &rfds)) {
99 if (FD_ISSET(lo_fd, &rfds)) {
114 (
"non-blocking input from stdin not supported under Windows\n");
124 retval = select(1, &rfds, NULL, NULL, &tv);
128 printf(
"select() error\n");
131 }
else if (retval > 0 && FD_ISSET(0, &rfds)) {
146 void error(
int num,
const char *msg,
const char *path)
148 printf(
"liblo server error %d in path %s: %s\n", num, path, msg);
153 int generic_handler(
const char *path,
const char *types,
lo_arg ** argv,
154 int argc,
void *data,
void *user_data)
158 printf(
"path: <%s>\n", path);
159 for (i = 0; i < argc; i++) {
160 printf(
"arg %d '%c' ", i, types[i]);
170 int foo_handler(
const char *path,
const char *types,
lo_arg ** argv,
171 int argc,
void *data,
void *user_data)
174 printf(
"%s <- f:%f, i:%d\n\n", path, argv[0]->f, argv[1]->i);
180 int quit_handler(
const char *path,
const char *types,
lo_arg ** argv,
181 int argc,
void *data,
void *user_data)
184 printf(
"quiting\n\n");
189 void read_stdin(
void)
195 int len = read(0, buf, 256);
198 fwrite(buf, len, 1, stdout);