diff options
-rw-r--r-- | src/makefile.linux | 3 | ||||
-rw-r--r-- | src/z_operating_system.c | 52 | ||||
-rw-r--r-- | src/zexy.c | 3 |
3 files changed, 57 insertions, 1 deletions
diff --git a/src/makefile.linux b/src/makefile.linux index 0fc21c3..00dda36 100644 --- a/src/makefile.linux +++ b/src/makefile.linux @@ -36,7 +36,8 @@ TARGETS = zexy \ z_dfreq z_sigzero z_pdf \ z_sfplay z_sfrecord \ z_sigpack \ - z_prime z_random z_wrap + z_prime z_random z_wrap \ + z_operating_system # ----------------------- LINUX ---------------------------- .SUFFIXES: .pd_linux diff --git a/src/z_operating_system.c b/src/z_operating_system.c new file mode 100644 index 0000000..fdac649 --- /dev/null +++ b/src/z_operating_system.c @@ -0,0 +1,52 @@ + +/* 1008:forum::für::umläute:2001 */ + +/* + operating_system : operating_system-code for message-objects +*/ + +#include "zexy.h" + +/* ------------------------- operating_system ------------------------------- */ + +/* +MESSAGE OPERATING_SYSTEM: simple and easy +*/ + +static t_class *operating_system_class; + +typedef struct _operating_system +{ + t_object x_obj; + +} t_operating_system; + + +static void operating_system_bang(t_operating_system *x) +{ + t_symbol *s=gensym("unknown"); +#ifdef __linux__ + s=gensym("linux"); +#elif defined __APPLE__ + s=gensym("macos"); +#elif defined NT + s=gensym("windows"); +#endif + outlet_symbol(x->x_obj.ob_outlet, s); +} + +static void *operating_system_new(t_floatarg f) +{ + t_operating_system *x = (t_operating_system *)pd_new(operating_system_class); + outlet_new(&x->x_obj, 0); + return (x); +} + +void z_operating_system_setup(void) +{ + operating_system_class = class_new(gensym("operating_system"), (t_newmethod)operating_system_new, + 0, sizeof(t_operating_system), 0, A_DEFFLOAT, 0); + + class_addbang (operating_system_class, operating_system_bang); + class_sethelpsymbol(operating_system_class, gensym("zexy/operating_system")); +} @@ -95,6 +95,7 @@ static void zexy_help(void) "\nlp\t\t:: write to the (parallel) port" "\nwrap\t\t:: wrap a floating number between 2 limits" "\nurn\t\t:: unique random numbers" + "\noperating_system\t:: information on the OS" #if 0 "\nexecute\t\t:: execute an application" #endif @@ -206,6 +207,7 @@ void z_wrap_setup(); sql ... */ +void z_operating_system_setup(); void zexy_setup(void) { @@ -266,6 +268,7 @@ void zexy_setup(void) z_sigmatrix_setup(); z_strings_setup(); + z_operating_system_setup(); /* lp ports are only on i386 machines */ #ifdef __i386__ |