The following commit has been merged in the master branch:
commit 6ac9e1abb6bba27ab86f629f44a1e4168e80bd57
Author: Andrei Zavada <[email protected]>
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

_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit

Reply via email to