X-Git-Url: https://hackdaworld.org/gitweb/?p=physik%2Fnlsop.git;a=blobdiff_plain;f=nlsop_gui.c;h=ec9de6d160dd72dfe34e7f782af773882501d2a1;hp=78cc86b8efb04bd96bc399aa8edc94737c63cf6a;hb=dfb3695b3cbe16607a7afa5e2eeefe4d7994c863;hpb=85ca8485e31042e3890d09979c14cafdb75d077f diff --git a/nlsop_gui.c b/nlsop_gui.c index 78cc86b..ec9de6d 100644 --- a/nlsop_gui.c +++ b/nlsop_gui.c @@ -145,6 +145,7 @@ int send_job(t_net *net,t_input *input,t_display *display) { char command[MAX_CONTENT]; int x,y,z; info info; + char *ptr; /* default values */ x=_X; @@ -163,51 +164,53 @@ int send_job(t_net *net,t_input *input,t_display *display) { info.dr_ac=DR_AC; strncpy(command,input->content,MAX_CONTENT); + ptr=command; - strtok(command," "); - while(strtok(NULL," ")!=NULL) { - switch(command[0]) { + ptr=strtok(command," "); + while((ptr=strtok(NULL," "))!=NULL) { + switch(ptr[0]) { case 'b': - info.b=atof(command+1); + info.b=atof(ptr+1); break; case 'c': - info.c=atof(command+1); + info.c=atof(ptr+1); break; case 's': - info.s=atof(command+1); + info.s=atof(ptr+1); break; case 'd': - info.diff_rate=atoi(command+1); + info.diff_rate=atoi(ptr+1); break; case 'D': - info.dr_ac=atof(command+1); + info.dr_ac=atof(ptr+1); break; case 'S': - info.steps=atoi(command+1); + info.steps=atoi(ptr+1); break; case 'C': - info.cpi=atoi(command+1); + info.cpi=atoi(ptr+1); break; case 'r': - info.range=atoi(command+1); + info.range=atoi(ptr+1); break; case 'R': - info.s_rate=atoi(command+1); + info.s_rate=atoi(ptr+1); break; case 'x': - info.save_rate=atoi(command+1); + info.save_rate=atoi(ptr+1); break; case 'X': - x=atoi(command+1); + x=atoi(ptr+1); break; case 'Y': - y=atoi(command+1); + y=atoi(ptr+1); break; case 'Z': - z=atoi(command+1); + z=atoi(ptr+1); break; default: display_new_line(display,input,"unknown command"); + dprintf(display->outfd,"unknown command %s\n",ptr); break; } } @@ -221,6 +224,12 @@ int send_job(t_net *net,t_input *input,t_display *display) { network_send_chan(net,0,(unsigned char *)&info,sizeof(info)); + display_new_line(display,input,"added new job:"); + snprintf(command,MAX_CONTENT,"b:%f | c:%f | s:%f | d: %d %f | %d", + info.b,info.c,info.s,info.diff_rate,info.dr_ac,info.steps); + display_new_line(display,input,command); + + return 1; } @@ -249,6 +258,17 @@ int nothing(t_event *event,void *allineed) { return 1; } +int send_quit(t_net *net) { + + unsigned char data; + + data=GUI_QUIT; + + network_send_chan(net,0,&data,1); + + return 1; +} + int get_command(t_event *event,void *allineed) { t_net *net; @@ -275,9 +295,10 @@ int get_command(t_event *event,void *allineed) { case GUI_QUIT: /* stop everything */ event_math(0,event,READ,REMOVE); + send_quit(net); network_shutdown(net); - display_shutdown(display); input_shutdown(input); + display_shutdown(display); event_stop(event); return 2; default: @@ -393,8 +414,6 @@ int main(int argc,char **argv) /* wait for job */ event_start(&event,allyouneed,get_command,nothing); - dprintf(fd,"hu?\n"); - close(fd); return 1;