void EDF_READEROBJ::load(HANDLE hFile) { state=0; loading=1; load_object_basics(this); load_property("filename",P_STRING,&filename); load_property("offset",P_INT,&offset); if ((edffile=open_edf_file(&header,channel,filename))==INVALID_HANDLE_VALUE) { char st[150]; reduce_filepath(st,filename); strcpy(filename,GLOBAL.resourcepath); strcat(filename,"ARCHIVES\\"); strcat(filename,st); edffile=open_edf_file(&header,channel,filename); } if (edffile!=INVALID_HANDLE_VALUE) { header.samplingrate=PACKETSPERSECOND; calc_session_length(); session_pos(0); outports=header.channels; state=1; } else { report_error("EDF archive file not found, please open file in EDF-Reader"); sessionlength=0; } height=CON_START+outports*CON_HEIGHT+5; sampos=0; get_captions(); loading=0; }
BOOL load_configfile(LPCTSTR pszFileName) { HANDLE hFile; int t, act_samplingrate=DEF_PACKETSPERSECOND; int act_type,num_objects, save_toolbox, save_connected, try_connect; const char * d_name; char new_name[256],szdata[20]; write_logfile("loading design configuration: %s",(char *)pszFileName); hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if(hFile != INVALID_HANDLE_VALUE) { GLOBAL.loading=1; d_name=pszFileName; while (strstr(d_name,"\\")) d_name=strstr(d_name,"\\")+1; strcpy(new_name,"BrainBay - ");strcat(new_name,d_name); SetWindowText(ghWndMain,new_name); strcpy(GLOBAL.configfile,pszFileName); save_settings(); save_toolbox=-1; save_connected=TTY.CONNECTED; SendMessage(ghWndStatusbox,WM_COMMAND, IDC_STOPSESSION,0); //TTY.read_pause=1; close_captfile(); if (ghWndAnimation!=NULL) SendMessage(ghWndAnimation,WM_CLOSE,0,0); ghWndAnimation=NULL; close_toolbox();actobject=NULL; //InvalidateRect(ghWndMain, NULL, TRUE); while (GLOBAL.objects>0) free_object(0); GLOBAL.run_exception=0; GLOBAL.minimized=FALSE; load_next_config_buffer(hFile); load_property("objects",P_INT,&GLOBAL.objects); load_property("main-top",P_INT,&GLOBAL.top); load_property("main-left",P_INT,&GLOBAL.left); load_property("main-right",P_INT,&GLOBAL.right); load_property("main-bottom",P_INT,&GLOBAL.bottom); load_property("anim-top",P_INT,&GLOBAL.anim_top); load_property("anim-left",P_INT,&GLOBAL.anim_left); load_property("anim-right",P_INT,&GLOBAL.anim_right); load_property("anim-bottom",P_INT,&GLOBAL.anim_bottom); load_property("design-top",P_INT,&GLOBAL.design_top); load_property("design-left",P_INT,&GLOBAL.design_left); load_property("design-right",P_INT,&GLOBAL.design_right); load_property("design-bottom",P_INT,&GLOBAL.design_bottom); load_property("tool-top",P_INT,&GLOBAL.tool_top); load_property("tool-left",P_INT,&GLOBAL.tool_left); load_property("tool-right",P_INT,&GLOBAL.tool_right); load_property("tool-bottom",P_INT,&GLOBAL.tool_bottom); load_property("showdesign",P_INT,&GLOBAL.showdesign); load_property("hidestatus",P_INT,&GLOBAL.hidestatus); load_property("showtoolbox",P_INT,&GLOBAL.showtoolbox); load_property("autorun",P_INT,&GLOBAL.autorun); load_property("minimized",P_INT,&GLOBAL.minimized); save_toolbox=GLOBAL.showtoolbox; TTY.PORT=0;try_connect=0; load_property("comport",P_INT,&TTY.PORT); load_property("connected",P_INT,&try_connect); load_property("bidirect",P_INT,&TTY.BIDIRECT); load_property("devicetype",P_INT,&TTY.devicetype); load_property("samplingtype",P_INT,&TTY.samplingrate); load_property("baudtype",P_INT,&TTY.BAUDRATE); load_property("flow_control",P_INT,&TTY.FLOW_CONTROL); if (save_connected) { update_p21state(); save_connected=TTY.CONNECTED; } BreakDownCommPort(); if (try_connect) { TTY.CONNECTED=SetupCommPort(TTY.PORT); update_p21state(); } load_property("captfilename",P_STRING,CAPTFILE.filename); load_property("captfiletype",P_INT,&CAPTFILE.filetype); load_property("captfileoffset",P_INT,&CAPTFILE.offset); load_property("dialoginterval",P_INT,&GLOBAL.dialog_interval); load_property("drawinterval",P_INT,&GLOBAL.draw_interval); load_property("samplingrate",P_INT,&act_samplingrate); PACKETSPERSECOND=act_samplingrate; MoveWindow(ghWndMain,GLOBAL.left,GLOBAL.top,GLOBAL.right-GLOBAL.left,GLOBAL.bottom-GLOBAL.top,TRUE); MoveWindow(ghWndDesign,GLOBAL.design_left,GLOBAL.design_top,GLOBAL.design_right-GLOBAL.design_left,GLOBAL.design_bottom-GLOBAL.design_top,TRUE); if (!GLOBAL.showdesign) { ShowWindow(ghWndDesign, FALSE); SetDlgItemText(ghWndStatusbox,IDC_DESIGN,"Show Design"); } else { ShowWindow(ghWndDesign,TRUE); SetWindowPos(ghWndDesign,0,0,0,0,0,SWP_DRAWFRAME|SWP_NOMOVE|SWP_NOSIZE); SetDlgItemText(ghWndStatusbox,IDC_DESIGN,"Hide Design"); } if (!GLOBAL.hidestatus) ShowWindow(ghWndStatusbox, TRUE); else ShowWindow(ghWndStatusbox,FALSE); num_objects=GLOBAL.objects; GLOBAL.objects=0; for (t=0;t<num_objects;t++) { act_type=load_next_config_buffer(hFile); if (act_type>=0) { create_object(act_type); if (actobject != NULL ) { actobject->load(hFile); link_object(actobject); } else critical_error("Could not load all objects, quitting ...\ndelete brainbay.cfg to prevent this at program startup ... "); } } CloseHandle(hFile); for (t=0;t<num_objects;t++) objects[t]->update_inports(); update_dimensions(); CAPTFILE.filehandle=INVALID_HANDLE_VALUE; CAPTFILE.do_read=0; if (strcmp(CAPTFILE.filename,"none")) { char st[150]; reduce_filepath(st,CAPTFILE.filename); strcpy(CAPTFILE.filename,GLOBAL.resourcepath); strcat(CAPTFILE.filename,"ARCHIVES\\"); strcat(CAPTFILE.filename,st); open_captfile(CAPTFILE.filename); } init_system_time(); reset_oscilloscopes(); PACKET.readstate=0; ShowWindow( ghWndMain, TRUE ); UpdateWindow( ghWndMain ); update_samplingrate(act_samplingrate); update_devicetype(); get_session_length(); SetDlgItemInt(ghWndStatusbox,IDC_SAMPLINGRATE,act_samplingrate,0); SetDlgItemText(ghWndStatusbox,IDC_STATUS,"Configuration loaded"); SetDlgItemText(ghWndStatusbox,IDC_TIME,"0.0"); SetDlgItemText(ghWndStatusbox,IDC_JUMPPOS,"0.0"); sprintf(szdata, "%.1f", (float)GLOBAL.session_length/(float)PACKETSPERSECOND); SetDlgItemText(ghWndStatusbox,IDC_SESSLEN,szdata); SendMessage(GetDlgItem(ghWndStatusbox,IDC_SESSIONPOS),TBM_SETPOS,TRUE,(LONG)0); SendMessage(GetDlgItem(ghWndStatusbox,IDC_SESSIONPOS),TBM_SETSELEND,TRUE,(LONG)0); SendMessage(GetDlgItem(ghWndStatusbox,IDC_SESSIONPOS),TBM_SETSELSTART,TRUE,(LONG)0); SetWindowPos(ghWndMain,0,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); InvalidateRect(ghWndMain,NULL,TRUE); InvalidateRect(ghWndDesign,NULL,TRUE); SendMessage(GetDlgItem(ghWndStatusbox,IDC_SESSIONPOS),TBM_SETSELSTART,TRUE,0); SendMessage(GetDlgItem(ghWndStatusbox,IDC_SESSIONPOS),TBM_SETSELEND,TRUE,1000); SendMessage(GetDlgItem(ghWndStatusbox,IDC_SESSIONPOS),TBM_SETPOS,TRUE,(LONG)(0)); if (GLOBAL.minimized) ShowWindow(ghWndMain, SW_MINIMIZE); GLOBAL.loading=0; if ((GLOBAL.autorun) && (!GLOBAL.run_exception)) SendMessage(ghWndStatusbox,WM_COMMAND, IDC_RUNSESSION,0); if (save_toolbox!=-1) { GLOBAL.showtoolbox=save_toolbox; actobject=objects[GLOBAL.showtoolbox]; actobject->make_dialog(); } write_logfile("load successful"); return TRUE; } write_logfile("could not load design configuration file."); return FALSE; }
LRESULT CALLBACK ParticleDlgHandler( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { PARTICLEOBJ * st; st = (PARTICLEOBJ *) actobject; if ((st==NULL)||(st->type!=OB_PARTICLE)) return(FALSE); switch( message ) { case WM_INITDIALOG: { SCROLLINFO lpsi; char sztemp[3]; int t; lpsi.cbSize=sizeof(SCROLLINFO); lpsi.fMask=SIF_RANGE|SIF_POS; lpsi.nMin=1; lpsi.nMax=1024; SetScrollInfo(GetDlgItem(hDlg,IDC_VALUEBAR),SB_CTL,&lpsi,TRUE); for (t=0;t<PARTICLE_PARAMS;t++) SendDlgItemMessage(hDlg, IDC_PARAMETERCOMBO, CB_ADDSTRING, 0,(LPARAM) (LPSTR) PARTICLEPARAMETER[t].paramname ) ; SendDlgItemMessage(hDlg, IDC_REMOTECOMBO, CB_ADDSTRING, 0,(LPARAM) (LPSTR) "none" ) ; for (t=1;t<7;t++) { sprintf(sztemp,"%d",t); SendDlgItemMessage(hDlg, IDC_REMOTECOMBO, CB_ADDSTRING, 0,(LPARAM) (LPSTR) sztemp ) ; } update_particledialog(hDlg,st); } return TRUE; case WM_CLOSE: EndDialog(hDlg, LOWORD(wParam)); return TRUE; break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_PARAMETERCOMBO: if (HIWORD(wParam)==CBN_SELCHANGE) { st->act_parameter=SendDlgItemMessage(hDlg, IDC_PARAMETERCOMBO, CB_GETCURSEL, 0, 0 ) ; update_particledialog(hDlg,st); EnableWindow(GetDlgItem(hDlg, IDC_VALUEBAR),TRUE); } break; case IDC_PARTICLEMUTE: st->mute=IsDlgButtonChecked(hDlg, IDC_PARTICLEMUTE); break; case IDC_REMOTECOMBO: if (HIWORD(wParam)==CBN_SELCHANGE) { st->remote[st->act_parameter]=SendDlgItemMessage(hDlg, IDC_REMOTECOMBO, CB_GETCURSEL, 0, 0 ) ; //update_particledialog(hDlg,st); } break; case IDC_SETMIN: st->min[st->act_parameter]=st->get_paramvalue(st->act_parameter); st->value[st->act_parameter]=1.0f; //SetScrollPos(GetDlgItem(hDlg,IDC_VALUEBAR), SB_CTL,1,TRUE); update_particledialog(hDlg,st); break; case IDC_SETMAX: st->max[st->act_parameter]=st->get_paramvalue(st->act_parameter); st->value[st->act_parameter]=1024.0f; //SetScrollPos(GetDlgItem(hDlg,IDC_VALUEBAR), SB_CTL,1024,TRUE); update_particledialog(hDlg,st); break; case IDC_RESETMINMAX: st->min[st->act_parameter]=PARTICLEPARAMETER[st->act_parameter].min; st->max[st->act_parameter]=PARTICLEPARAMETER[st->act_parameter].max; update_particledialog(hDlg,st); break; case IDC_LOADPAL: { char szFileName[100]; int t; strcpy(szFileName,GLOBAL.resourcepath); strcat(szFileName,"PALETTES\\*.pal"); if (open_file_dlg(hDlg, szFileName, FT_PALETTE, OPEN_LOAD)) { if (!load_from_file(szFileName, &(st->cols), sizeof(st->cols))) report_error("Could not load Color Palette"); else { reduce_filepath(szFileName,szFileName); strcpy(st->palettefile,szFileName); SetDlgItemText(hDlg, IDC_PALETTEFILE, st->palettefile); for (t=0;t<128;t++) { st->colors[t][0]=(float)((st->cols[t]&0xff)/256.0); st->colors[t][1]=(float)(((st->cols[t]>>8)&0xff)/256.0); st->colors[t][2]=(float)((st->cols[t]>>16)/256.0); } } } } break; } return TRUE; break; case WM_HSCROLL: { int nNewPos; if ((nNewPos=get_scrollpos(wParam, lParam))>=0) { if (lParam == (long) GetDlgItem(hDlg,IDC_VALUEBAR)) { char sztemp[10]; st->value[st->act_parameter]=(float)nNewPos; sprintf(sztemp,"%.2f",st->get_paramvalue(st->act_parameter)); SetDlgItemText(hDlg, IDC_VALUE,sztemp); } } } case WM_SIZE: case WM_MOVE: update_toolbox_position(hDlg); break; return TRUE; } return FALSE; }
void draw_speller(SPELLEROBJ * st) { PAINTSTRUCT ps; HDC hdc; char szdata[400]; RECT rect; HBRUSH actbrush; int ballx,bally,i; GetClientRect(st->displayWnd, &rect); hdc = BeginPaint (st->displayWnd, &ps); //ballx=(int) ((rect.right/100.0f)*st->xpos); //bally=(int) ((rect.bottom/100.0f)*st->ypos); ballx=(int)st->xpos; bally=(int)st->ypos; actbrush=CreateSolidBrush(RGB(180,0,0)); SelectObject (hdc, DRAW.pen_white); SelectObject (hdc, DRAW.brush_ltgreen); Rectangle(hdc,0,0,rect.right,rect.bottom); SelectObject(hdc, DRAW.mediumFont); SetTextColor(hdc,RGB(255,0,0)); SelectObject (hdc, DRAW.pen_red); sprintf(szdata, "-> %s",st->word); // st->selstart,st->selend,st->suggestions, DrawText(hdc, szdata, -1, &rect, DT_CENTER | DT_WORDBREAK ); // sprintf(szdata, "PAD: %d SEL: %d",st->paddle,st->select); // ExtTextOut( hdc, 10,10, 0, &rect,szdata, strlen(szdata), NULL ) ; for (i=0;i<st->selections;i++) { if ((st->dict[st->selstart+i].type==EXTEND_CHARACTERS) ||(st->dict[st->selstart+i].type==FINAL_CHARACTERS) ||(st->dict[st->selstart+i].type==DICTIONARY)) strcpy(szdata, st->dict[st->selstart+i].tag); else strcpy(szdata,"inv"); if (i==st->select) { SetTextColor(hdc,RGB(255,0,0)); SetBkColor(hdc,RGB(255,255,0)); } else { SetTextColor(hdc,RGB(255,0,0)); SetBkColor(hdc,RGB(30,30,30)); } ExtTextOut( hdc, 100,80+i*30, 0, &rect,szdata, strlen(szdata), NULL ) ; /* switch (i) { case 0: ExtTextOut( hdc, 150,50, 0, &rect,szdata, strlen(szdata), NULL ) ; break; case 1: ExtTextOut( hdc, 250,100, 0, &rect,szdata, strlen(szdata), NULL ) ; break; case 2: ExtTextOut( hdc, 50,100, 0, &rect,szdata, strlen(szdata), NULL ) ; break; case 3: ExtTextOut( hdc, 150,150, 0, &rect,szdata, strlen(szdata), NULL ) ; break; } */ } if (st->dictfile[0]) { char fn[256]; SelectObject(hdc, DRAW.scaleFont); SetTextColor(hdc,RGB(255,255,255)); SetBkColor(hdc,RGB(0,0,50)); reduce_filepath(fn,st->dictfile); sprintf(szdata,"Wörterbuch: %s, %d words.",fn, st->wordcount); ExtTextOut( hdc, 360, 70, 0, &rect,szdata, strlen(szdata), NULL ); //ExtTextOut( hdc, 360, 80, 0, &rect,st->fn, strlen(st->fn), NULL ); } if (st->suggestions) { SelectObject(hdc, st->sugfont); SetTextColor(hdc,RGB(255,255,0)); SetBkColor(hdc,RGB(40,40,0)); for (i=0;(i<st->suggestions);i++) { strcpy(szdata, st->dict[st->suggest[i]].tag); ExtTextOut( hdc, 360,100+i*20, 0, &rect,szdata, strlen(szdata), NULL ); } if (i==MAX_SUGGEST) { strcpy(szdata, "(...)"); ExtTextOut( hdc, 360,100+i*20, 0, &rect,szdata, strlen(szdata), NULL ); } } SelectObject (hdc, DRAW.brush_orange); // Rectangle(hdc,ballx,bally,ballx+20,bally+20); DeleteObject(actbrush); EndPaint( st->displayWnd, &ps ); }