[med-svn] [SCM] aghermann branch, master, updated. 551e213a23b59b71cba6a9c3a282d1b60e21b854
Andrei Zavada
johnhommer at gmail.com
Sun Apr 21 23:18:01 UTC 2013
The following commit has been merged in the master branch:
commit 6ac9e1abb6bba27ab86f629f44a1e4168e80bd57
Author: Andrei Zavada <johnhommer at gmail.com>
Date: Wed Apr 17 17:47:40 2013 +0300
use const string& in preference to const char* in arguments
diff --git a/src/libsigfile/edf.cc b/src/libsigfile/edf.cc
index 881b4fe..f7c9378 100644
--- a/src/libsigfile/edf.cc
+++ b/src/libsigfile/edf.cc
@@ -31,33 +31,33 @@
using namespace std;
template valarray<TFloat> sigfile::CEDFFile::get_region_original_( int, size_t, size_t) const;
-template valarray<TFloat> sigfile::CEDFFile::get_region_original_( const char*, size_t, size_t) const;
+template valarray<TFloat> sigfile::CEDFFile::get_region_original_( const string&, size_t, size_t) const;
template valarray<TFloat> sigfile::CEDFFile::get_region_filtered_( int, size_t, size_t) const;
-template valarray<TFloat> sigfile::CEDFFile::get_region_filtered_( const char*, size_t, size_t) const;
+template valarray<TFloat> sigfile::CEDFFile::get_region_filtered_( const string&, size_t, size_t) const;
template int sigfile::CEDFFile::put_region_( int, const valarray<TFloat>&, size_t) const;
-template int sigfile::CEDFFile::put_region_( const char*, const valarray<TFloat>&, size_t) const;
-template int sigfile::CEDFFile::export_original_( int, const char*) const;
-template int sigfile::CEDFFile::export_original_( const char*, const char*) const;
+template int sigfile::CEDFFile::put_region_( const string&, const valarray<TFloat>&, size_t) const;
+template int sigfile::CEDFFile::export_original_( int, const string&) const;
+template int sigfile::CEDFFile::export_original_( const string&, const string&) const;
int
sigfile::CEDFFile::
-set_patient_id( const char* s)
+set_patient_id( const string& s)
{
memcpy( header.patient_id, agh::str::pad( s, 80).c_str(), 80);
- return strlen(s) > 80;
+ return s.size() > 80;
}
int
sigfile::CEDFFile::
-set_recording_id( const char* s)
+set_recording_id( const string& s)
{
memcpy( header.recording_id, agh::str::pad( s, 80).c_str(), 80);
- return strlen(s) > 80;
+ return s.size() > 80;
}
int
sigfile::CEDFFile::
-set_episode( const char* s)
+set_episode( const string& s)
{
_episode.assign( s);
return set_recording_id( (_session + '/' + _episode).c_str());
@@ -65,7 +65,7 @@ set_episode( const char* s)
int
sigfile::CEDFFile::
-set_session( const char* s)
+set_session( const string& s)
{
_session.assign( s);
return set_recording_id( (_session + '/' + _episode).c_str());
@@ -73,10 +73,10 @@ set_session( const char* s)
int
sigfile::CEDFFile::
-set_reserved( const char *s)
+set_reserved( const string&s)
{
memcpy( header.reserved, agh::str::pad( s, 44).c_str(), 44);
- return strlen(s) > 44;
+ return s.size() > 44;
}
int
@@ -112,19 +112,19 @@ const char version_string[8] = {'0',' ',' ',' ', ' ',' ',' ',' '};
}
sigfile::CEDFFile::
-CEDFFile (const char *fname_, int flags_)
+CEDFFile (const string& fname_, int flags_)
: CSource (fname_, flags_)
{
{
struct stat stat0;
- int stst = stat( fname_, &stat0);
+ int stst = stat( fname_.c_str(), &stat0);
if ( stst == -1 ) {
_status |= TStatus::sysfail;
throw runtime_error (explain_edf_status(_status));
}
_fsize = stat0.st_size;
}
- _fd = open( fname_, O_RDWR);
+ _fd = open( fname_.c_str(), O_RDWR);
if ( _fd == -1 ) {
_status |= TStatus::sysfail;
throw runtime_error (explain_edf_status(_status));
@@ -148,7 +148,7 @@ CEDFFile (const char *fname_, int flags_)
munmap( _mmapping, _fsize);
throw runtime_error (explain_edf_status(_status));
} else
- fprintf( stderr, "CEDFFile::CEDFFile(\"%s\") Warning: parse header failed, but proceeding anyway\n", fname_);
+ fprintf( stderr, "CEDFFile::CEDFFile(\"%s\") Warning: parse header failed, but proceeding anyway\n", fname_.c_str());
}
// channels now available
@@ -161,7 +161,7 @@ CEDFFile (const char *fname_, int flags_)
total_samples_per_record += H.samples_per_record;
size_t expected_fsize = header_length + sizeof(int16_t) * total_samples_per_record * n_data_records;
if ( _fsize < expected_fsize ) {
- fprintf( stderr, "CEDFFile::CEDFFile(\"%s\") file size less than declared in header\n", fname_);
+ fprintf( stderr, "CEDFFile::CEDFFile(\"%s\") file size less than declared in header\n", fname_.c_str());
close( _fd);
munmap( _mmapping, _fsize);
_status |= file_truncated;
@@ -169,10 +169,12 @@ CEDFFile (const char *fname_, int flags_)
} else if ( _fsize > expected_fsize ) {
_status |= trailing_junk;
fprintf( stderr, "CEDFFile::CEDFFile(\"%s\") Warning: %zu bytes of trailing junk\n",
- fname_, _fsize - expected_fsize);
+ fname_.c_str(), _fsize - expected_fsize);
}
}
+ _extract_embedded_annotations();
+
// ancillary files:
if ( flags_ & sigfile::CTypedSource::no_ancillary_files )
;
@@ -244,7 +246,7 @@ CEDFFile (const char *fname_, int flags_)
sigfile::CEDFFile::
-CEDFFile (const char *fname_, TSubtype subtype_, int flags_,
+CEDFFile (const string& fname_, TSubtype subtype_, int flags_,
const list<pair<string, size_t>>& channels_,
size_t data_record_size_,
size_t n_data_records_)
@@ -253,7 +255,7 @@ CEDFFile (const char *fname_, TSubtype subtype_, int flags_,
n_data_records (n_data_records_),
_subtype (subtype_)
{
- _fd = open( fname_, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP);
+ _fd = open( fname_.c_str(), O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP);
if ( _fd == -1 ) {
_status |= TStatus::sysfail;
throw invalid_argument ("CEDFFile::CEDFFile(): file open error");
diff --git a/src/libsigfile/edf.hh b/src/libsigfile/edf.hh
index e764d55..c80e5f2 100644
--- a/src/libsigfile/edf.hh
+++ b/src/libsigfile/edf.hh
@@ -80,9 +80,9 @@ class CEDFFile
no_field_consistency_check = 1<<5,
};
// open existing
- CEDFFile (const char *fname, int flags = 0);
+ CEDFFile (const string& fname, int flags = 0);
// create new
- CEDFFile (const char *fname, TSubtype subtype_, int flags,
+ CEDFFile (const string& fname, TSubtype subtype_, int flags,
const list<pair<string, size_t>>& channels,
size_t data_record_size = 1,
size_t n_data_records = 0);
@@ -118,12 +118,12 @@ class CEDFFile
{ return n_data_records * data_record_size; }
// setters
- int set_patient_id( const char*);
- int set_recording_id( const char*);
- int set_episode( const char*);
- int set_session( const char*);
- int set_reserved( const char*);
- int set_comment( const char* s)
+ int set_patient_id( const string&);
+ int set_recording_id( const string&);
+ int set_episode( const string&);
+ int set_session( const string&);
+ int set_reserved( const string&);
+ int set_comment( const string& s)
{ return set_reserved( s); }
int set_start_time( time_t);
@@ -139,10 +139,10 @@ class CEDFFile
return ret;
}
bool
- have_channel( const char *h) const
+ have_channel( const string& h) const
{ return find( channels.cbegin(), channels.cend(), h) != channels.cend(); }
int
- channel_id( const char *h) const
+ channel_id( const string& h) const
{
for ( size_t i = 0; i < channels.size(); i++ )
if ( channels[i].label == h )
@@ -161,27 +161,27 @@ class CEDFFile
signal_type( int h) const
{ return (*this)[h].signal_type; }
SChannel::TType
- signal_type( const char* h) const
+ signal_type( const string& h) const
{ return (*this)[h].signal_type; }
size_t
samplerate( int h) const
{ return (*this)[h].samples_per_record / data_record_size; }
size_t
- samplerate( const char* h) const
+ samplerate( const string& h) const
{ return (*this)[h].samples_per_record / data_record_size; }
list<SAnnotation>&
annotations( int h)
{ return (*this)[h].annotations; }
list<SAnnotation>&
- annotations( const char* h)
+ annotations( const string& h)
{ return (*this)[h].annotations; }
const list<SAnnotation>&
annotations( int h) const
{ return (*this)[h].annotations; }
const list<SAnnotation>&
- annotations( const char* h) const
+ annotations( const string& h) const
{ return (*this)[h].annotations; }
// artifacts
@@ -189,13 +189,13 @@ class CEDFFile
artifacts( int h)
{ return (*this)[h].artifacts; }
SArtifacts&
- artifacts( const char* h)
+ artifacts( const string& h)
{ return (*this)[h].artifacts; }
const SArtifacts&
artifacts( int h) const
{ return (*this)[h].artifacts; }
const SArtifacts&
- artifacts( const char* h) const
+ artifacts( const string& h) const
{ return (*this)[h].artifacts; }
// filters
@@ -203,26 +203,26 @@ class CEDFFile
filters( int h)
{ return (*this)[h].filters; }
SFilterPack&
- filters( const char* h)
+ filters( const string& h)
{ return (*this)[h].filters; }
const SFilterPack&
filters( int h) const
{ return (*this)[h].filters; }
const SFilterPack&
- filters( const char* h) const
+ filters( const string& h) const
{ return (*this)[h].filters; }
// signal data extractors
- template <class Th> // accommodates int or const char* as Th
+ template <class Th> // accommodates int or const string& as Th
valarray<TFloat>
get_region_original_( Th h, size_t smpla, size_t smplz) const;
valarray<TFloat>
get_region_original( int h, size_t smpla, size_t smplz) const
{ return get_region_original_<int>( h, smpla, smplz); }
valarray<TFloat>
- get_region_original( const char* h, size_t smpla, size_t smplz) const
- { return get_region_original_<const char*>( h, smpla, smplz); }
+ get_region_original( const string& h, size_t smpla, size_t smplz) const
+ { return get_region_original_<const string&>( h, smpla, smplz); }
template <class Th>
valarray<TFloat>
@@ -238,9 +238,9 @@ class CEDFFile
float timea, float timez) const
{ return get_region_original_<int>( h, timea, timez); }
valarray<TFloat>
- get_region_original( const char* h,
+ get_region_original( const string& h,
float timea, float timez) const
- { return get_region_original_<const char*>( h, timea, timez); }
+ { return get_region_original_<const string&>( h, timea, timez); }
template <class Th>
valarray<TFloat>
@@ -250,7 +250,7 @@ class CEDFFile
get_signal_original( int h) const
{ return get_signal_original_( h); }
valarray<TFloat>
- get_signal_original( const char* h) const
+ get_signal_original( const string& h) const
{ return get_signal_original_( h); }
template <class Th>
@@ -262,7 +262,7 @@ class CEDFFile
size_t smpla, size_t smplz) const
{ return get_region_filtered_( h, smpla, smplz); }
valarray<TFloat>
- get_region_filtered( const char* h,
+ get_region_filtered( const string& h,
size_t smpla, size_t smplz) const
{ return get_region_filtered_( h, smpla, smplz); }
template <class Th>
@@ -279,7 +279,7 @@ class CEDFFile
float timea, float timez) const
{ return get_region_filtered_( h, timea, timez); }
valarray<TFloat>
- get_region_filtered( const char* h,
+ get_region_filtered( const string& h,
float timea, float timez) const
{ return get_region_filtered_( h, timea, timez); }
template <class Th>
@@ -295,7 +295,7 @@ class CEDFFile
put_region( int h, const valarray<TFloat>& src, size_t offset) const
{ return put_region_( h, src, offset); }
int
- put_region( const char* h, const valarray<TFloat>& src, size_t offset) const
+ put_region( const string& h, const valarray<TFloat>& src, size_t offset) const
{ return put_region_( h, src, offset); }
template <class Th>
@@ -313,12 +313,12 @@ class CEDFFile
put_signal( int h, const valarray<TFloat>& src) const
{ return put_signal_( h, src); }
int
- put_signal( const char* h, const valarray<TFloat>& src) const
+ put_signal( const string& h, const valarray<TFloat>& src) const
{ return put_signal_( h, src); }
// signal data info
pair<TFloat, TFloat>
- get_real_original_signal_range( const char* h) const
+ get_real_original_signal_range( const string& h) const
{ return get_real_original_signal_range( channel_id(h)); }
pair<TFloat, TFloat>
get_real_original_signal_range( int h) const
@@ -328,7 +328,7 @@ class CEDFFile
}
pair<TFloat, TFloat>
- get_max_original_signal_range( const char* h) const
+ get_max_original_signal_range( const string& h) const
{ return get_max_original_signal_range( channel_id(h)); }
pair<TFloat, TFloat>
get_max_original_signal_range( int h) const
@@ -336,7 +336,7 @@ class CEDFFile
pair<TFloat, TFloat>
- get_real_filtered_signal_range( const char* h) const
+ get_real_filtered_signal_range( const string& h) const
{ return get_real_filtered_signal_range( channel_id(h)); }
pair<TFloat, TFloat>
get_real_filtered_signal_range( int h) const
@@ -346,7 +346,7 @@ class CEDFFile
}
pair<TFloat, TFloat>
- get_max_filtered_signal_range( const char* h) const
+ get_max_filtered_signal_range( const string& h) const
{ return get_max_filtered_signal_range( channel_id(h)); }
pair<TFloat, TFloat>
get_max_filtered_signal_range( int h) const
@@ -361,21 +361,21 @@ class CEDFFile
// export
int
- export_original( int h, const char *fname) const
+ export_original( int h, const string& fname) const
{ return export_original_( h, fname); }
int
- export_filtered( int h, const char *fname) const
+ export_filtered( int h, const string& fname) const
{ return export_filtered_( h, fname); }
int
- export_original( const char* h, const char *fname) const
+ export_original( const string& h, const string& fname) const
{ return export_original_( h, fname); }
int
- export_filtered( const char* h, const char *fname) const
+ export_filtered( const string& h, const string& fname) const
{ return export_filtered_( h, fname); }
template <class Th>
- int export_original_( Th h, const char *fname) const;
+ int export_original_( Th h, const string& fname) const;
template <class Th>
- int export_filtered_( Th h, const char *fname) const;
+ int export_filtered_( Th h, const string& fname) const;
// reporting & misc
@@ -440,7 +440,7 @@ class CEDFFile
void set_digital_range( int16_t, int16_t);
size_t samples_per_record;
- bool operator==( const char *h) const
+ bool operator==( const string& h) const
{
return label == h;
}
@@ -472,14 +472,14 @@ class CEDFFile
throw out_of_range ("Signal index out of range");
return channels[i];
}
- SSignal& operator[]( const char *h)
+ SSignal& operator[]( const string& h)
{
auto S = find( channels.begin(), channels.end(), h);
if ( S == channels.end() )
throw out_of_range (string ("Unknown channel ") + h);
return *S;
}
- const SSignal& operator[]( const char *h) const
+ const SSignal& operator[]( const string& h) const
{
return (*const_cast<CEDFFile*>(this)) [h];
}
diff --git a/src/libsigfile/edf.ii b/src/libsigfile/edf.ii
index ead7ed5..4d5807d 100644
--- a/src/libsigfile/edf.ii
+++ b/src/libsigfile/edf.ii
@@ -11,13 +11,13 @@
extern template valarray<TFloat> CEDFFile::get_region_original_( int, size_t, size_t) const;
-extern template valarray<TFloat> CEDFFile::get_region_original_( const char*, size_t, size_t) const;
+extern template valarray<TFloat> CEDFFile::get_region_original_( const string&, size_t, size_t) const;
extern template valarray<TFloat> CEDFFile::get_region_filtered_( int, size_t, size_t) const;
-extern template valarray<TFloat> CEDFFile::get_region_filtered_( const char*, size_t, size_t) const;
+extern template valarray<TFloat> CEDFFile::get_region_filtered_( const string&, size_t, size_t) const;
extern template int CEDFFile::put_region_( int, const valarray<TFloat>&, size_t) const;
-extern template int CEDFFile::put_region_( const char*, const valarray<TFloat>&, size_t) const;
-extern template int CEDFFile::export_original_( int, const char*) const;
-extern template int CEDFFile::export_original_( const char*, const char*) const;
+extern template int CEDFFile::put_region_( const string&, const valarray<TFloat>&, size_t) const;
+extern template int CEDFFile::export_original_( int, const string&) const;
+extern template int CEDFFile::export_original_( const string&, const string&) const;
template <typename A>
@@ -224,10 +224,10 @@ template <typename Th>
int
CEDFFile::
export_original_( Th h,
- const char *fname) const
+ const string& fname) const
{
valarray<TFloat> signal = get_signal_original( h);
- FILE *fd = fopen( fname, "w");
+ FILE *fd = fopen( fname.c_str(), "w");
if ( fd ) {
for ( size_t i = 0; i < signal.size(); ++i )
fprintf( fd, "%g\n", signal[i]);
@@ -242,10 +242,10 @@ template <typename Th>
int
CEDFFile::
export_filtered_( Th h,
- const char *fname) const
+ const string& fname) const
{
valarray<TFloat> signal = get_signal_filtered( h);
- FILE *fd = fopen( fname, "w");
+ FILE *fd = fopen( fname.c_str(), "w");
if ( fd ) {
for ( size_t i = 0; i < signal.size(); ++i )
fprintf( fd, "%g\n", signal[i]);
diff --git a/src/libsigfile/source-base.hh b/src/libsigfile/source-base.hh
index 80ffeb1..e35b693 100644
--- a/src/libsigfile/source-base.hh
+++ b/src/libsigfile/source-base.hh
@@ -144,7 +144,7 @@ struct SAnnotation {
inline void
mark_annotation( list<SAnnotation>& annotations,
size_t aa, size_t az,
- const char* label,
+ const string& label,
SAnnotation::TType t = SAnnotation::TType::plain)
{
annotations.emplace_back( aa, az, label, t);
@@ -239,22 +239,22 @@ class CSource {
// channels
virtual size_t n_channels() const = 0;
virtual list<SChannel> channel_list() const = 0;
- virtual bool have_channel( const char*) const = 0;
- virtual int channel_id( const char*) const = 0;
+ virtual bool have_channel( const string&) const = 0;
+ virtual int channel_id( const string&) const = 0;
virtual const char* channel_by_id( int) const = 0;
virtual SChannel::TType
- signal_type( const char*) const = 0;
+ signal_type( const string&) const = 0;
virtual SChannel::TType
signal_type( int) const = 0;
- virtual size_t samplerate( const char*) const = 0;
+ virtual size_t samplerate( const string&) const = 0;
virtual size_t samplerate( int) const = 0;
// the following methods are pass-through:
// annotations
virtual list<SAnnotation>&
- annotations( const char*) = 0;
+ annotations( const string&) = 0;
virtual const list<SAnnotation>&
- annotations( const char*) const = 0;
+ annotations( const string&) const = 0;
virtual list<SAnnotation>&
annotations( int) = 0;
virtual const list<SAnnotation>&
@@ -262,21 +262,21 @@ class CSource {
// artifacts
virtual SArtifacts&
- artifacts( const char*) = 0;
+ artifacts( const string&) = 0;
virtual SArtifacts&
artifacts( int) = 0;
virtual const SArtifacts&
- artifacts( const char*) const = 0;
+ artifacts( const string&) const = 0;
virtual const SArtifacts&
artifacts( int) const = 0;
// filters
virtual SFilterPack&
- filters( const char*) = 0;
+ filters( const string&) = 0;
virtual SFilterPack&
filters( int) = 0;
virtual const SFilterPack&
- filters( const char*) const = 0;
+ filters( const string&) const = 0;
virtual const SFilterPack&
filters( int) const = 0;
@@ -288,17 +288,17 @@ class CSource {
}
// setters
- virtual int set_patient_id( const char*) = 0;
- virtual int set_recording_id( const char*) = 0;
- virtual int set_episode( const char*) = 0;
- virtual int set_session( const char*) = 0;
- virtual int set_comment( const char*) = 0;
+ virtual int set_patient_id( const string&) = 0;
+ virtual int set_recording_id( const string&) = 0;
+ virtual int set_episode( const string&) = 0;
+ virtual int set_session( const string&) = 0;
+ virtual int set_comment( const string&) = 0;
virtual int set_start_time( time_t) = 0;
// get samples
// original
virtual valarray<TFloat>
- get_region_original( const char* h, size_t, size_t) const = 0;
+ get_region_original( const string& h, size_t, size_t) const = 0;
virtual valarray<TFloat>
get_region_original( int h, size_t, size_t) const = 0;
@@ -326,7 +326,7 @@ class CSource {
// filtered
virtual valarray<TFloat>
- get_region_filtered( const char* h, size_t, size_t) const = 0;
+ get_region_filtered( const string& h, size_t, size_t) const = 0;
virtual valarray<TFloat>
get_region_filtered( int h, size_t, size_t) const = 0;
@@ -358,7 +358,7 @@ class CSource {
const valarray<TFloat>& src,
size_t offset) const = 0;
virtual int
- put_region( const char* h,
+ put_region( const string& h,
const valarray<TFloat>& src,
size_t offset) const = 0;
@@ -369,7 +369,7 @@ class CSource {
return put_region( h, src, 0);
}
int
- put_signal( const char* h,
+ put_signal( const string& h,
const valarray<TFloat>& src)
{
return put_region( h, src, 0);
@@ -382,7 +382,7 @@ class CSource {
virtual pair<TFloat, TFloat>
get_real_original_signal_range( int) const = 0;
virtual pair<TFloat, TFloat>
- get_real_original_signal_range( const char*) const = 0;
+ get_real_original_signal_range( const string&) const = 0;
template <typename T>
pair<TFloat, TFloat>
@@ -390,7 +390,7 @@ class CSource {
virtual pair<TFloat, TFloat>
get_max_original_signal_range( int) const = 0;
virtual pair<TFloat, TFloat>
- get_max_original_signal_range( const char*) const = 0;
+ get_max_original_signal_range( const string&) const = 0;
template <typename T>
pair<TFloat, TFloat>
@@ -398,7 +398,7 @@ class CSource {
virtual pair<TFloat, TFloat>
get_real_filtered_signal_range( int) const = 0;
virtual pair<TFloat, TFloat>
- get_real_filtered_signal_range( const char*) const = 0;
+ get_real_filtered_signal_range( const string&) const = 0;
template <typename T>
pair<TFloat, TFloat>
@@ -406,17 +406,17 @@ class CSource {
virtual pair<TFloat, TFloat>
get_max_filtered_signal_range( int) const = 0;
virtual pair<TFloat, TFloat>
- get_max_filtered_signal_range( const char*) const = 0;
+ get_max_filtered_signal_range( const string&) const = 0;
// export
virtual int
- export_original( int, const char* fname) const = 0;
+ export_original( int, const string& fname) const = 0;
virtual int
- export_original( const char*, const char* fname) const = 0;
+ export_original( const string&, const string& fname) const = 0;
virtual int
- export_filtered( int, const char* fname) const = 0;
+ export_filtered( int, const string& fname) const = 0;
virtual int
- export_filtered( const char*, const char* fname) const = 0;
+ export_filtered( const string&, const string& fname) const = 0;
// filenames
string make_fname_artifacts( const SChannel& channel) const
diff --git a/src/libsigfile/source.cc b/src/libsigfile/source.cc
index 37da818..e364667 100644
--- a/src/libsigfile/source.cc
+++ b/src/libsigfile/source.cc
@@ -15,7 +15,7 @@
using namespace std;
sigfile::CTypedSource::
-CTypedSource (const char* fname,
+CTypedSource (const string& fname,
size_t pagesize,
int flags)
: CHypnogram (pagesize)
@@ -43,7 +43,7 @@ CTypedSource (const char* fname,
if ( CHypnogram::pages() > 0 )
fprintf( stderr, "CSource(\"%s\"): number of scorable pages @pagesize=%zu (%lu / %zu = %zu) "
"differs from the number read from hypnogram file (%zu); adjusting hypnogram size\n",
- fname, pagesize, _obj->recording_time(), pagesize, scorable_pages, CHypnogram::pages());
+ fname.c_str(), pagesize, _obj->recording_time(), pagesize, scorable_pages, CHypnogram::pages());
CHypnogram::_pages.resize( scorable_pages);
}
}
@@ -90,9 +90,9 @@ sigfile::CTypedSource::
sigfile::CTypedSource::TType
-sigfile::CTypedSource::source_file_type( const char* fname)
+sigfile::CTypedSource::source_file_type( const string& fname)
{
- if ( strlen(fname) > 4 && strcasecmp( &fname[strlen(fname)-4], ".edf") == 0 )
+ if ( fname.size() > 4 && strcasecmp( &fname[fname.size()-4], ".edf") == 0 )
return TType::edf;
return TType::unrecognised;
}
diff --git a/src/libsigfile/source.hh b/src/libsigfile/source.hh
index adda774..449269a 100644
--- a/src/libsigfile/source.hh
+++ b/src/libsigfile/source.hh
@@ -52,7 +52,7 @@ class CTypedSource
}
// ctor
enum { no_ancillary_files = 1 };
- CTypedSource (const char* fname, size_t pagesize, int flags = 0);
+ CTypedSource (const string& fname, size_t pagesize, int flags = 0);
CTypedSource (CTypedSource&& rv);
~CTypedSource ();
@@ -70,7 +70,7 @@ class CTypedSource
return sigfile::make_fname_hypnogram( _obj->filename(), pagesize());
}
- static TType source_file_type( const char* fname) __attribute__ ((pure));
+ static TType source_file_type( const string& fname) __attribute__ ((pure));
};
diff --git a/src/ui/sf/channel.cc b/src/ui/sf/channel.cc
index 7fa2631..e27c1d4 100644
--- a/src/ui/sf/channel.cc
+++ b/src/ui/sf/channel.cc
@@ -404,7 +404,7 @@ detect_artifacts( const metrics::mc::SArtifactDetectionPP& P)
get_raw_profile();
// if ( this == channel currently displayed on measurements overview )
- if ( strcmp( name, _p._p.AghH()) == 0 )
+ if ( name == _p._p.AghH() )
_p.redraw_ssubject_timeline();
}
}
@@ -445,7 +445,7 @@ mark_flat_regions_as_artifacts( double minsize, double pad)
get_mc_course();
// if ( this == channel currently displayed on measurements overview )
- if ( strcmp( name, _p._p.AghH()) == 0 )
+ if ( name == _p._p.AghH() )
_p.redraw_ssubject_timeline();
}
@@ -476,14 +476,14 @@ mark_region_as_artifact( bool do_mark)
get_swu_course();
get_mc_course();
- if ( strcmp( name, _p._p.AghH()) == 0 )
+ if ( name == _p._p.AghH() )
_p.redraw_ssubject_timeline();
}
}
void
aghui::SScoringFacility::SChannel::
-mark_region_as_annotation( const char *label, sigfile::SAnnotation::TType type)
+mark_region_as_annotation( const string& label, sigfile::SAnnotation::TType type)
{
sigfile::mark_annotation(
crecording.F().annotations(_h),
diff --git a/src/ui/sf/d/artifacts_cb.cc b/src/ui/sf/d/artifacts_cb.cc
index a4d98f6..6b4e867 100644
--- a/src/ui/sf/d/artifacts_cb.cc
+++ b/src/ui/sf/d/artifacts_cb.cc
@@ -215,7 +215,7 @@ wSFAD_show_cb( GtkWidget*, gpointer userdata)
gtk_toggle_button_set_active( AD.bSFADPreview, FALSE);
AD.suppress_preview_handler = false;
- snprintf_buf( "Artifact detection in channel %s", SF.using_channel->name);
+ snprintf_buf( "Artifact detection in channel %s", SF.using_channel->name.c_str());
gtk_label_set_text( AD.lSFADInfo, __buf__);
snprintf_buf( "%4.2f%% marked", SF.using_channel->calculate_dirty_percent() * 100);
gtk_label_set_text( AD.lSFADDirtyPercent, __buf__);
diff --git a/src/ui/sf/d/patterns-construct.cc b/src/ui/sf/d/patterns-construct.cc
index eb36516..0f1eef1 100644
--- a/src/ui/sf/d/patterns-construct.cc
+++ b/src/ui/sf/d/patterns-construct.cc
@@ -87,7 +87,7 @@ SPatternsDialogWidgets (SScoringFacility& SF)
GtkTreeIter iter;
gtk_list_store_append( mSFFDChannels, &iter);
gtk_list_store_set( mSFFDChannels, &iter,
- 0, H.name,
+ 0, H.name.c_str(),
-1);
}
gtk_combo_box_set_model_properly( eSFFDChannel, mSFFDChannels);
diff --git a/src/ui/sf/d/patterns_cb.cc b/src/ui/sf/d/patterns_cb.cc
index 50a3d10..354668f 100644
--- a/src/ui/sf/d/patterns_cb.cc
+++ b/src/ui/sf/d/patterns_cb.cc
@@ -361,7 +361,7 @@ eSFFD_any_criteria_value_changed_cb( GtkSpinButton* button, gpointer userdata)
snprintf_buf(
"%zu match%s in <b>%s</b>",
FD.occurrences.size(), (FD.occurrences.size() == 1) ? "" : "es",
- FD.field_channel->name);
+ FD.field_channel->name.c_str());
gtk_label_set_markup( FD.lSFFDFoundInfo, __buf__);
FD.set_profile_manage_buttons_visibility();
diff --git a/src/ui/sf/d/phasediff-construct.cc b/src/ui/sf/d/phasediff-construct.cc
index 0aa297e..89d2c78 100644
--- a/src/ui/sf/d/phasediff-construct.cc
+++ b/src/ui/sf/d/phasediff-construct.cc
@@ -40,7 +40,7 @@ SPhasediffDialogWidgets (SScoringFacility& SF)
GtkTreeIter iter;
gtk_list_store_append( mSFPDChannels, &iter);
gtk_list_store_set( mSFPDChannels, &iter,
- 0, H.name,
+ 0, H.name.c_str(),
-1);
}
diff --git a/src/ui/sf/d/phasediff.cc b/src/ui/sf/d/phasediff.cc
index 471bb60..b401aa4 100644
--- a/src/ui/sf/d/phasediff.cc
+++ b/src/ui/sf/d/phasediff.cc
@@ -92,7 +92,7 @@ channel_from_cbox( GtkComboBox *cbox)
0, &entry,
-1);
for ( auto &H : _p.channels )
- if ( strcmp( entry, H.name) == 0 )
+ if ( entry == H.name )
return &H;
return nullptr;
}
@@ -100,7 +100,7 @@ channel_from_cbox( GtkComboBox *cbox)
void
aghui::SScoringFacility::SPhasediffDialog::
-preselect_channel( GtkComboBox *cbox, const char *ch)
+preselect_channel( GtkComboBox *cbox, const string& ch)
{
GtkTreeModel *model = gtk_combo_box_get_model( cbox);
GtkTreeIter iter;
@@ -112,7 +112,7 @@ preselect_channel( GtkComboBox *cbox, const char *ch)
gtk_tree_model_get( model, &iter,
0, &entry,
-1);
- if ( strcmp( entry, ch) == 0 ) {
+ if ( entry == ch ) {
gtk_combo_box_set_active_iter( cbox, &iter);
return;
}
diff --git a/src/ui/sf/d/phasediff.hh b/src/ui/sf/d/phasediff.hh
index 39a3e90..526044b 100644
--- a/src/ui/sf/d/phasediff.hh
+++ b/src/ui/sf/d/phasediff.hh
@@ -74,7 +74,7 @@ struct SScoringFacility::SPhasediffDialog
void update_course();
const SScoringFacility::SChannel* channel_from_cbox( GtkComboBox *cbox);
- void preselect_channel( GtkComboBox *cbox, const char *ch);
+ void preselect_channel( GtkComboBox *cbox, const string& ch);
void draw( cairo_t* cr, int wd, int ht);
diff --git a/src/ui/sf/d/phasediff_cb.cc b/src/ui/sf/d/phasediff_cb.cc
index 0ed6b49..a67a827 100644
--- a/src/ui/sf/d/phasediff_cb.cc
+++ b/src/ui/sf/d/phasediff_cb.cc
@@ -150,8 +150,8 @@ wSFPD_show_cb( GtkWidget *wid, gpointer userdata)
gtk_combo_box_get_active( PD.eSFPDChannelB) == -1 ) {
PD.channel1 = &*SF.channels.begin();
PD.channel2 = &*next(SF.channels.begin());
- PD.preselect_channel( PD.eSFPDChannelA, PD.channel1->name);
- PD.preselect_channel( PD.eSFPDChannelB, PD.channel2->name);
+ PD.preselect_channel( PD.eSFPDChannelA, PD.channel1->name.c_str());
+ PD.preselect_channel( PD.eSFPDChannelB, PD.channel2->name.c_str());
} else {
// they have been nicely set before, havent't they
// PD.channel1 = PD.channel_from_cbox( eSFPDChannelA);
diff --git a/src/ui/sf/ica.cc b/src/ui/sf/ica.cc
index 0d1a209..5c82fe8 100644
--- a/src/ui/sf/ica.cc
+++ b/src/ui/sf/ica.cc
@@ -98,7 +98,7 @@ setup_ica()
gtk_container_foreach( (GtkContainer*)iiSFICAPage, (GtkCallback)gtk_widget_destroy, NULL);
GSList *group = NULL;
for ( auto &H : channels ) {
- auto item = (GtkWidget*)gtk_radio_menu_item_new_with_label( group, H.name);
+ auto item = (GtkWidget*)gtk_radio_menu_item_new_with_label( group, H.name.c_str());
group = gtk_radio_menu_item_get_group( (GtkRadioMenuItem*)item);
g_object_set( (GObject*)item,
"visible", TRUE,
diff --git a/src/ui/sf/montage.cc b/src/ui/sf/montage.cc
index e6f3ea0..93565f6 100644
--- a/src/ui/sf/montage.cc
+++ b/src/ui/sf/montage.cc
@@ -182,9 +182,9 @@ expand_by_factor( double fac)
void
aghui::SScoringFacility::SChannel::
-draw_for_montage( const char *fname, int width, int height) // to a file
+draw_for_montage( const string& fname, int width, int height) // to a file
{
- cairo_surface_t *cs = cairo_svg_surface_create( fname, width, height);
+ cairo_surface_t *cs = cairo_svg_surface_create( fname.c_str(), width, height);
cairo_t *cr = cairo_create( cs);
draw_page( cr, width, height/2, false); // or maybe *with* selection?
@@ -565,7 +565,7 @@ draw_page( cairo_t *cr,
{
int x = 15, y = y0 - 16;
- snprintf_buf( "[%s] %s", sigfile::SChannel::kemp_signal_types[type], name);
+ snprintf_buf( "[%s] %s", sigfile::SChannel::kemp_signal_types[type], name.c_str());
cairo_select_font_face( cr, "serif", CAIRO_FONT_SLANT_ITALIC, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size( cr, 14);
@@ -630,9 +630,9 @@ draw_page( cairo_t *cr,
void
aghui::SScoringFacility::
-draw_montage( const char *fname) // to a file
+draw_montage( const string& fname) // to a file
{
- cairo_surface_t *cs = cairo_svg_surface_create( fname, da_wd, da_ht);
+ cairo_surface_t *cs = cairo_svg_surface_create( fname.c_str(), da_wd, da_ht);
cairo_t *cr = cairo_create( cs);
draw_montage( cr);
cairo_destroy( cr);
@@ -672,7 +672,7 @@ _draw_matrix_to_montage( cairo_t *cr, const itpp::Mat<T>& mat)
cairo_set_font_size( cr, 28);
cairo_move_to( cr, 30, our_y-10);
cairo_set_source_rgba( cr, .3, .1, .2, .65);
- cairo_show_text( cr, channel_by_idx(ica_map[r].m).name);
+ cairo_show_text( cr, channel_by_idx(ica_map[r].m).name.c_str());
break;
default:
cairo_move_to( cr, da_wd * .06, our_y - gap/2.5);
diff --git a/src/ui/sf/montage_cb.cc b/src/ui/sf/montage_cb.cc
index bf18141..ef78cdc 100644
--- a/src/ui/sf/montage_cb.cc
+++ b/src/ui/sf/montage_cb.cc
@@ -82,7 +82,7 @@ daSFMontage_button_press_event_cb( GtkWidget *wid, GdkEventButton *event, gpoint
} else if ( SF.remix_mode == aghui::SScoringFacility::TICARemixMode::map ) {
const char *mapped =
(SF.ica_map[SF.using_ic].m != -1)
- ? SF.channel_by_idx( SF.ica_map[SF.using_ic].m) . name
+ ? SF.channel_by_idx( SF.ica_map[SF.using_ic].m) . name.c_str()
: aghui::SScoringFacility::ica_unmapped_menu_item_label;
SF.suppress_redraw = true;
gtk_container_foreach(
@@ -261,7 +261,7 @@ daSFMontage_motion_notify_event_cb( GtkWidget *wid, GdkEventMotion *event, gpoin
if ( SF.mode == aghui::SScoringFacility::TMode::scoring ) {
gtk_label_set_text(
SF.lSFOverChannel,
- SF.channel_near( event->y) -> name);
+ SF.channel_near( event->y) -> name.c_str());
} else
gtk_label_set_text( SF.lSFOverChannel, "");
@@ -521,7 +521,7 @@ iSFPageHide_activate_cb( GtkMenuItem*, gpointer userdata)
SF.using_channel->hidden = true;
// add an item to iSFPageHidden
auto item = (GtkWidget*)(SF.using_channel->menu_item_when_hidden =
- (GtkMenuItem*)gtk_menu_item_new_with_label( SF.using_channel->name));
+ (GtkMenuItem*)gtk_menu_item_new_with_label( SF.using_channel->name.c_str()));
g_object_set( (GObject*)item,
"visible", TRUE,
NULL);
@@ -668,7 +668,7 @@ iSFPageFilter_activate_cb( GtkMenuItem *menuitem, gpointer userdata)
FD.P = H.filters;
FD.W_V.up();
- snprintf_buf( "<big>Filters for channel <b>%s</b></big>", SF.using_channel->name);
+ snprintf_buf( "<big>Filters for channel <b>%s</b></big>", SF.using_channel->name.c_str());
gtk_label_set_markup( FD.lSFFilterCaption,
__buf__);
@@ -685,7 +685,7 @@ iSFPageFilter_activate_cb( GtkMenuItem *menuitem, gpointer userdata)
}
gtk_widget_queue_draw( (GtkWidget*)SF.daSFMontage);
- if ( strcmp( SF.using_channel->name, SF._p.AghH()) == 0 )
+ if ( SF.using_channel->name == SF._p.AghH() )
SF.redraw_ssubject_timeline();
}
}
@@ -727,7 +727,7 @@ iSFPageArtifactsClear_activate_cb( GtkMenuItem *menuitem, gpointer userdata)
{
auto& SF = *(SScoringFacility*)userdata;
- char* chnamee = g_markup_escape_text( SF.using_channel->name, -1);
+ char* chnamee = g_markup_escape_text( SF.using_channel->name.c_str(), -1);
if ( GTK_RESPONSE_YES == pop_question(
SF.wSF,
"All marked artifacts will be lost in channel <b>%s</b>.\n\n"
@@ -900,7 +900,7 @@ iSFPageAnnotationClearAll_activate_cb( GtkMenuItem *menuitem, gpointer userdata)
{
auto& SF = *(SScoringFacility*)userdata;
- char* chnamee = g_markup_escape_text( SF.using_channel->name, -1);
+ char* chnamee = g_markup_escape_text( SF.using_channel->name.c_str(), -1);
if ( GTK_RESPONSE_YES
== pop_question( SF.wSF,
"Sure you want to delete all annotations in channel <b>%s</b>?",
@@ -965,7 +965,7 @@ iSFICAPageMapIC_activate_cb( GtkRadioMenuItem* i, gpointer u)
int target = -1;
int h = 0;
for ( auto H = SF.channels.begin(); H != SF.channels.end(); ++H, ++h )
- if ( strcmp( H->name, label) == 0 ) {
+ if ( H->name == label ) {
target = h;
break;
}
diff --git a/src/ui/sf/sf.cc b/src/ui/sf/sf.cc
index 7290db5..3b4bc42 100644
--- a/src/ui/sf/sf.cc
+++ b/src/ui/sf/sf.cc
@@ -221,7 +221,7 @@ SScoringFacility (agh::CSubject& J,
if ( H.hidden ) {
++n_hidden;
auto item = (GtkWidget*)(H.menu_item_when_hidden =
- (GtkMenuItem*)gtk_menu_item_new_with_label( H.name));
+ (GtkMenuItem*)gtk_menu_item_new_with_label( H.name.c_str()));
g_object_set( (GObject*)item,
"visible", TRUE,
NULL);
@@ -318,7 +318,7 @@ redraw_ssubject_timeline() const
aghui::SScoringFacility::SChannel&
aghui::SScoringFacility::
-operator[]( const char *ch)
+operator[]( const string& ch)
{
auto iter = find( channels.begin(), channels.end(), ch);
if ( unlikely (iter == channels.end()) )
@@ -698,10 +698,10 @@ save_montage()
void
aghui::SScoringFacility::
-sb_message( const char* msg) const
+sb_message( const string& msg) const
{
gtk_statusbar_pop( sbSF, sbSFContextIdGeneral);
- gtk_statusbar_push( sbSF, sbSFContextIdGeneral, msg);
+ gtk_statusbar_push( sbSF, sbSFContextIdGeneral, msg.c_str());
}
void
diff --git a/src/ui/sf/sf.hh b/src/ui/sf/sf.hh
index 80c34e6..4ebb220 100644
--- a/src/ui/sf/sf.hh
+++ b/src/ui/sf/sf.hh
@@ -72,11 +72,10 @@ class SScoringFacility
DELETE_DEFAULT_METHODS (SChannel);
- const char
- *name;
+ string name;
sigfile::SChannel::TType
type;
- bool operator==( const char *) const;
+ bool operator==( const string&) const;
bool operator==( const SChannel&) const;
agh::CRecording&
@@ -200,7 +199,7 @@ class SScoringFacility
// region
void mark_region_as_artifact( bool do_mark);
- void mark_region_as_annotation( const char*, sigfile::SAnnotation::TType);
+ void mark_region_as_annotation( const string&, sigfile::SAnnotation::TType);
void mark_region_as_pattern();
// ctor, dtor
@@ -274,7 +273,7 @@ class SScoringFacility
*menu_item_when_hidden;
// comprehensive draw
- void draw_for_montage( const char *fname, int width, int height); // to a file
+ void draw_for_montage( const string& fname, int width, int height); // to a file
void draw_for_montage( cairo_t*); // to montage
protected:
@@ -304,7 +303,7 @@ class SScoringFacility
list<SChannel>
channels;
size_t n_eeg_channels;
- SChannel& operator[]( const char*);
+ SChannel& operator[]( const string&);
SChannel& operator[]( size_t i)
{
return channel_by_idx(i);
@@ -471,7 +470,7 @@ class SScoringFacility
void reset_montage();
// draw
void draw_montage( cairo_t*);
- void draw_montage( const char *fname); // to a file (uses da_wd and da_ht
+ void draw_montage( const string& fname); // to a file (uses da_wd and da_ht
private:
template <class T>
void _draw_matrix_to_montage( cairo_t*, const itpp::Mat<T>&);
@@ -486,7 +485,7 @@ class SScoringFacility
void do_score_back( char score_ch);
// status bar
- void sb_message( const char*) const;
+ void sb_message( const string&) const;
void sb_clear() const;
// tips
@@ -572,19 +571,22 @@ class SScoringFacility
inline bool
-SScoringFacility::SChannel::operator==( const char *_name) const
+SScoringFacility::SChannel::
+operator==( const string& _name) const
{
- return 0 == strcmp( name, _name);
+ return name == _name;
}
inline bool
-SScoringFacility::SChannel::operator==( const SChannel& rv) const
+SScoringFacility::SChannel::
+operator==( const SChannel& rv) const
{
- return 0 == strcmp( name, rv.name);
+ return name == rv.name;
}
inline bool
-SScoringFacility::SChannel::have_low_pass() const
+SScoringFacility::SChannel::
+have_low_pass() const
{
return isfinite(filters.low_pass_cutoff)
&& filters.low_pass_cutoff > 0.
@@ -592,46 +594,53 @@ SScoringFacility::SChannel::have_low_pass() const
}
inline bool
-SScoringFacility::SChannel::have_high_pass() const
+SScoringFacility::SChannel::
+have_high_pass() const
{
return isfinite(filters.high_pass_cutoff)
&& filters.high_pass_cutoff > 0.
&& filters.high_pass_order > 0;
}
inline bool
-SScoringFacility::SChannel::have_notch_filter() const
+SScoringFacility::SChannel::
+have_notch_filter() const
{
return filters.notch_filter != sigfile::SFilterPack::TNotchFilter::none;
}
inline size_t
-SScoringFacility::SChannel::n_samples() const
+SScoringFacility::SChannel::
+n_samples() const
{
return signal_filtered.size();
}
inline bool
-SScoringFacility::SChannel::operator<( const SChannel& rv) const
+SScoringFacility::SChannel::
+operator<( const SChannel& rv) const
{
return zeroy < rv.zeroy;
}
inline float
-SScoringFacility::SChannel::spp() const
+SScoringFacility::SChannel::
+spp() const
{
return (float)samplerate() * _p.vpagesize() / _p.da_wd;
}
inline float
-SScoringFacility::SChannel::fine_line() const
+SScoringFacility::SChannel::
+fine_line() const
{
return ((not resample_signal) and spp() > 1.)
? agh::alg::value_within( .6 / (spp() + .2), .1, 3.)
: .6;
}
inline int
-SScoringFacility::SChannel::sample_at_click( double x) const
+SScoringFacility::SChannel::
+sample_at_click( double x) const
{
return _p.time_at_click( x) * samplerate();
}
@@ -640,7 +649,8 @@ SScoringFacility::SChannel::sample_at_click( double x) const
inline size_t
-SScoringFacility::SChannel::samplerate() const
+SScoringFacility::SChannel::
+samplerate() const
{
return crecording.F().samplerate(_h);
}
@@ -648,34 +658,40 @@ SScoringFacility::SChannel::samplerate() const
inline size_t
-SScoringFacility::vpagesize() const
+SScoringFacility::
+vpagesize() const
{
return DisplayPageSizeValues[pagesize_item];
}
inline bool
-SScoringFacility::pagesize_is_right() const
+SScoringFacility::
+pagesize_is_right() const
{
return pagesize() == vpagesize();
}
inline size_t
-SScoringFacility::cur_vpage_start() const // in seconds
+SScoringFacility::
+cur_vpage_start() const // in seconds
{
return _cur_vpage * vpagesize();
}
inline size_t
-SScoringFacility::cur_vpage_end() const // in seconds
+SScoringFacility::
+cur_vpage_end() const // in seconds
{
return (_cur_vpage + 1) * vpagesize();
}
inline size_t
-SScoringFacility::p2ap( size_t p) const // page to visible_page
+SScoringFacility::
+p2ap( size_t p) const // page to visible_page
{
return (size_t)(p * (float)pagesize() / vpagesize());
}
inline size_t
-SScoringFacility::ap2p( size_t p) const
+SScoringFacility::
+ap2p( size_t p) const
{
return (size_t)((p) * (float)vpagesize() / pagesize());
}
@@ -683,28 +699,33 @@ SScoringFacility::ap2p( size_t p) const
inline float
-SScoringFacility::xvpagesize() const
+SScoringFacility::
+xvpagesize() const
{
return (1. + 2*skirting_run_per1) * vpagesize();
}
inline double
-SScoringFacility::cur_xvpage_start() const
+SScoringFacility::
+cur_xvpage_start() const
{
return cur_vpage_start() - skirting_run_per1 * vpagesize();
}
inline double
-SScoringFacility::cur_xvpage_end() const
+SScoringFacility::
+cur_xvpage_end() const
{
return cur_vpage_end() + skirting_run_per1 * vpagesize();
}
inline double
-SScoringFacility::time_at_click( double x) const
+SScoringFacility::
+time_at_click( double x) const
{
return cur_xvpage_start() + x/da_wd * xvpagesize();
}
inline void
-SScoringFacility::set_vpagesize( size_t seconds, bool touch_self)
+SScoringFacility::
+set_vpagesize( size_t seconds, bool touch_self)
{
set_vpagesize_item( figure_display_pagesize_item( seconds), touch_self);
}
@@ -712,7 +733,8 @@ SScoringFacility::set_vpagesize( size_t seconds, bool touch_self)
inline size_t
-SScoringFacility::n_ics() const
+SScoringFacility::
+n_ics() const
{
return ica->obj() . get_nrof_independent_components();
}
@@ -722,7 +744,8 @@ SScoringFacility::n_ics() const
template <class T>
float
__attribute__ ((pure))
-SScoringFacility::channel_y0( const T& h) const
+SScoringFacility::
+channel_y0( const T& h) const
{
auto H = find( channels.begin(), channels.end(), h);
return ( H != channels.end() ) ? H->zeroy : NAN;
--
Sleep experiment manager
More information about the debian-med-commit
mailing list