[med-svn] [SCM] aghermann branch, master, updated. c0bd21ca8eb529ade7e0c7aad22951a308a8dc8f
andrei zavada
jh at johnhommer.com
Wed May 1 00:09:42 UTC 2013
The following commit has been merged in the master branch:
commit 7c9394f8041fd4fa1b6dc07091b6669e3f057c73
Author: andrei zavada <jh at johnhommer.com>
Date: Mon Apr 29 08:36:55 2013 +0000
WIP
diff --git a/src/libsigfile/edf.cc b/src/libsigfile/edf.cc
index 021638c..6bf263d 100644
--- a/src/libsigfile/edf.cc
+++ b/src/libsigfile/edf.cc
@@ -674,10 +674,38 @@ _parse_header()
} else {
channels.resize( n_channels);
- for ( auto &H : channels )
- H.ucd = trim( string (_get_next_field( H.header.label, 16), 16));
- // includes figuring signal type and mapping to a canonicalised name
+ // determine & validate signal types
+ for ( auto &H : channels ) {
+ _get_next_field( H.header.label, 16);
+
+ if ( 0 == strcmp( H.header.label == sigfile::edf_annotations_label )
+ H.ucd = sigfile::SChannel<sigfile::TType::embedded_annotation>(0);
+ else {
+ auto tt = agh::str::tokens( H.name, " ");
+ SChannel::TType figured_type;
+ // parse legacy pre 0.9 specs ("EEG F3" etc)
+ if ( tt.size() > 1 &&
+ (figured_type = SChannel::figure_signal_type(tt.front().c_str()))
+ != SChannel::TType::other ) {
+ H.signal_type = figured_type;
+ H.signal_type_s = tt.front();
+ H.name = (tt.pop_front(), agh::str::join( tt, " "));
+ if ( not H.name.follows_system1020() )
+ _status |= non1020_channel;
+ } else {
+ H.signal_type_s = SChannel::kemp_signal_types[
+ H.signal_type = SChannel::signal_type_of_channel( H.name) ];
+
+ if ( not H.label.follows_system1020() )
+ _status |= non1020_channel;
+ if ( H.signal_type == SChannel::TType::other )
+ _status |= nonkemp_signaltype;
+ }
+ }
+ H.ucd = trim( string (, 16));
+ // includes figuring signal type and mapping to a canonicalised name
+ }
for ( auto &H : channels )
H.transducer_type =
trim( string (_get_next_field( H.header.transducer_type, 80), 80));
@@ -775,37 +803,6 @@ _parse_header()
}
- // determine & validate signal types
- i = 0;
- for ( auto &H : channels ) {
- if ( H.ucd.type() == sigfile::SChannel::TType::embedded_annotation )
- ;
- else {
- ??? move this up right after SChannel ctor
- auto tt = agh::str::tokens( H.name, " ");
- SChannel::TType figured_type;
- // parse legacy pre 0.9 specs ("EEG F3" etc)
- if ( tt.size() > 1 &&
- (figured_type = SChannel::figure_signal_type(tt.front().c_str()))
- != SChannel::TType::other ) {
- H.signal_type = figured_type;
- H.signal_type_s = tt.front();
- H.name = (tt.pop_front(), agh::str::join( tt, " "));
- if ( not H.name.follows_system1020() )
- _status |= non1020_channel;
- } else {
- H.signal_type_s = SChannel::kemp_signal_types[
- H.signal_type = SChannel::signal_type_of_channel( H.name) ];
-
- if ( not H.label.follows_system1020() )
- _status |= non1020_channel;
- if ( H.signal_type == SChannel::TType::other )
- _status |= nonkemp_signaltype;
- }
- }
- ++i;
- }
-
// convenience field
_total_samples_per_record = 0;
for ( auto &H : channels ) {
--
Sleep experiment manager
More information about the debian-med-commit
mailing list