예제 #1
0
파일: files.cpp 프로젝트: Smeetal/BrainBay
HANDLE create_captfile(LPCTSTR lpFName)
{
    HANDLE hTemp;
	DWORD dwWritten;
	int t;

	CAPTFILEHEADERStruct  header;
	if (TTY.devicetype>1) 
	{ report_error("Can only create ModuarEEG P2 or P3 Archive Files."); return(INVALID_HANDLE_VALUE); }

	for(t=0;t<sizeof(header);t++)  * (((char *)&header)+t) = ' ';
	append_newline(header.description,sizeof(header.description));

	write_logfile("create capture file: %s",(char *)lpFName);

    hTemp=CreateFile(lpFName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0,NULL);
	if (hTemp==INVALID_HANDLE_VALUE)
          { report_error("CreateFile"); return (INVALID_HANDLE_VALUE); }

	strcpy(header.description, "BrainBay Archive File\r\n");
	strcpy(header.filetype, captfiletypes[CAPTFILE.filetype]);
	append_newline(header.filetype,sizeof(header.filetype));

	strcpy(header.devicetype, devicetypes[TTY.devicetype]);
	append_newline(header.devicetype,sizeof(header.devicetype));

	
    if (!WriteFile(hTemp,&header,sizeof(header), &dwWritten, NULL))  report_error("Could not write to Archive");
	
	CAPTFILE.start=TIMING.packetcounter;
	CAPTFILE.file_action=FILE_WRITING;
	GLOBAL.actcolumn=0;
	return hTemp;
}
예제 #2
0
      void write(const char* message, ...) {
        thread::SpinLock::LockGuard guard(lock_);

        if(logger_) {
          char buf[LOGGER_MSG_SIZE];

          va_list args;

          va_start(args, message);
          (void) vsnprintf(buf, LOGGER_MSG_SIZE, message, args);
          va_end(args);

          logger_->write(buf, append_newline(buf));
        }
      }