[med-svn] [SCM] aghermann branch, master, updated. 99b1d5a023eee9df74b0e0d6f894516fc79435ad
Andrei Zavada
johnhommer at gmail.com
Sun Jul 7 23:04:05 UTC 2013
The following commit has been merged in the master branch:
commit 6c8a981e0a0443238ce101910b283c8f22c099ed
Author: Andrei Zavada <johnhommer at gmail.com>
Date: Thu Jun 27 02:51:55 2013 +0300
WIP
diff --git a/src/common/subject_id.cc b/src/common/subject_id.cc
index dc999a4..93518d3 100644
--- a/src/common/subject_id.cc
+++ b/src/common/subject_id.cc
@@ -139,12 +139,15 @@ str_to_dob( const string& s)
string
SSubjectId::
-str_to_dob( const time_t t_)
+dob_to_str( const time_t t_)
{
struct tm t;
- memset( &t, '\0', sizeof (t));
-
-
+ gmtime_r( &t_, &t);
+ return agh::str::sasprintf(
+ "%02d-%s-%02d",
+ t.tm_mday,
+ english_month_to_str(t.tm_mon),
+ t.tm_year % 100);
}
diff --git a/src/common/subject_id.hh b/src/common/subject_id.hh
index 75fd3c3..ff1442a 100644
--- a/src/common/subject_id.hh
+++ b/src/common/subject_id.hh
@@ -61,6 +61,13 @@ struct SSubjectId {
gender = rv.gender;
}
+ void operator=( const SSubjectId& rv)
+ {
+ id = rv.id;
+ name = rv.name;
+ dob = rv.dob;
+ gender = rv.gender;
+ }
char gender_sign() const
{ return gender_sign(gender); }
@@ -79,7 +86,7 @@ struct SSubjectId {
{
return agh::str::sasprintf(
"%s %c %s %s",
- id.c_str(), gender_sign(), dob_to_str(),
+ id.c_str(), gender_sign(), dob_to_str().c_str(),
name.c_str());
}
diff --git a/src/libsigfile/edf.cc b/src/libsigfile/edf.cc
index f7d6b07..392794c 100644
--- a/src/libsigfile/edf.cc
+++ b/src/libsigfile/edf.cc
@@ -228,7 +228,7 @@ CEDFFile (const string& fname_, const TSubtype subtype_, const int flags_,
strncpy( header.version_number, version_string, 8);
- _subject {"Fafa_1", "Mr. Fafa"};
+ _subject = {"Fafa_1", "Mr. Fafa"};
set_patient_id( _subject.make_recording_id());
set_recording_id( "Zzz");
diff --git a/src/libsigfile/tsv.cc b/src/libsigfile/tsv.cc
index b241515..c6283a7 100644
--- a/src/libsigfile/tsv.cc
+++ b/src/libsigfile/tsv.cc
@@ -99,66 +99,19 @@ CTSVFile (const string& fname_, const TSubtype subtype_, const int flags_,
// fill out some essential header fields
resize_seconds( recording_time_);
- _subject.id = "Fafa_1";
+ _subject = {"Fafa_1", "Mr. Fafa"};
set_recording_id( "Zzz");
set_comment( fname_);
set_start_time( time(NULL));
- strncpy( header.header_length, pad( to_string(header_length), 8).c_str(), 8);
- strncpy( header.data_record_size, pad( to_string(data_record_size), 8).c_str(), 8);
- strncpy( header.n_data_records, pad( to_string(n_data_records), 8).c_str(), 8);
- strncpy( header.n_channels, pad( to_string(channels_.size()), 4).c_str(), 4);
-
- _total_samples_per_record = 0;
size_t hi = 0;
for ( auto& h : channels_ ) {
auto& H = channels[hi];
-
- H.ucd = h.first;
- strncpy( H.header.label,
- pad( H.ucd.name(), 16).c_str(), 16);
-
- strncpy( H.header.transducer_type,
- pad( H.transducer_type = "no transducer info", 80).c_str(), 80);
- strncpy( H.header.physical_dim,
- pad( H.physical_dim = "mV", 8).c_str(), 8);
-
- H.set_physical_range( -20, 20); // expecting these to be reset before put_signal
- H.set_digital_range( INT16_MIN, INT16_MAX);
- H.scale = (H.physical_max - H.physical_min) /
- (H.digital_max - H.digital_min );
-
- strncpy( H.header.filtering_info,
- pad( H.filtering_info = "raw", 80).c_str(), 80);
- strncpy( H.header.samples_per_record,
- pad( to_string( H.samples_per_record = h.second * data_record_size), 8).c_str(), 8);
-
- H._at = _total_samples_per_record;
- _total_samples_per_record += H.samples_per_record;
-
- ++hi;
+ H.ucd = h;
}
}
-void
-CTSVFile::SSignal::
-set_physical_range( const double m, const double M)
-{
- strncpy( header.physical_min, pad( to_string( physical_min = m), 8).c_str(), 8);
- strncpy( header.physical_max, pad( to_string( physical_max = M), 8).c_str(), 8);
-}
-
-
-void
-CTSVFile::SSignal::
-set_digital_range( const int16_t m, const int16_t M)
-{
- strncpy( header.digital_min, pad( to_string( digital_min = m), 8).c_str(), 8);
- strncpy( header.digital_max, pad( to_string( digital_max = M), 8).c_str(), 8);
-}
-
-
// uncomment on demand (also un-dnl AC_CHECK_FUNCS(mremap,,) in configure.ac)
@@ -238,11 +191,10 @@ CTSVFile (CTSVFile&& rv)
CTSVFile::
~CTSVFile ()
{
- if ( _mmapping != (void*)-1 ) {
- munmap( _mmapping, _fsize);
+ if ( _fd != -1 ) {
close( _fd);
- if ( not (flags() & sigfile::CTypedSource::no_ancillary_files) )
+ if ( not (flags() & sigfile::CSource::no_ancillary_files) )
write_ancillary_files();
}
}
@@ -251,44 +203,6 @@ CTSVFile::
-
-void
-CTSVFile::
-write_ancillary_files()
-{
- for ( auto &I : channels ) {
- if ( not I.artifacts().empty() ) {
- ofstream thomas (make_fname_artifacts( I.ucd), ios_base::trunc);
- if ( thomas.good() )
- for ( auto &A : I.artifacts() )
- thomas << A.a << ' ' << A.z << endl;
- } else
- if ( unlink( make_fname_artifacts( I.ucd).c_str()) ) {}
-
- if ( not I.annotations.empty() ) {
- ofstream thomas (make_fname_annotations( I.ucd), ios_base::trunc);
- for ( auto &A : I.annotations )
- thomas << (int)A.type << ' ' << A.span.a << ' ' << A.span.z << ' ' << A.label << EOA << endl;
- } else
- if ( unlink( make_fname_annotations( I.ucd).c_str()) ) {}
- }
- ofstream thomas (make_fname_filters( filename()), ios_base::trunc);
- if ( thomas.good() )
- for ( auto &I : channels )
- thomas << I.filters.low_pass_cutoff << ' ' << I.filters.low_pass_order << ' '
- << I.filters.high_pass_cutoff << ' ' << I.filters.high_pass_order << ' '
- << (int)I.filters.notch_filter << endl;
-}
-
-
-
-
-
-
-
-
-
-
int
CTSVFile::
_parse_header()
--
Sleep experiment manager
More information about the debian-med-commit
mailing list