Beispiel #1
0
	  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;

	  }
Beispiel #2
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;    	
}
Beispiel #3
0
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;
}
Beispiel #4
0
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 );
}