The following commit has been merged in the master branch:
commit 8c8e6a54ab3301e8ecee31cfba38994b21d3b921
Author: Andrei Zavada <[email protected]>
Date:   Tue Apr 30 17:25:37 2013 +0300

    rip out fancy CSource channel access, only leave [int]

diff --git a/src/libsigfile/Makefile.am b/src/libsigfile/Makefile.am
index 395af14..8ddffb1 100644
--- a/src/libsigfile/Makefile.am
+++ b/src/libsigfile/Makefile.am
@@ -24,7 +24,7 @@ libsigfile_la_SOURCES := \
        source.cc \
        source.hh \
        edf.cc \
-       edf.ii \
+       edf-io.cc \
        edf.hh \
        page.cc \
        page.hh
diff --git a/src/libsigfile/edf.ii b/src/libsigfile/edf-io.cc
similarity index 81%
rename from src/libsigfile/edf.ii
rename to src/libsigfile/edf-io.cc
index 5b2bc95..80e3b95 100644
--- a/src/libsigfile/edf.ii
+++ b/src/libsigfile/edf-io.cc
@@ -1,30 +1,23 @@
 /*
- *       File name:  libsigfile/edf.ii
+ *       File name:  libsigfile/edf-io.cc
  *         Project:  Aghermann
  *          Author:  Andrei Zavada <[email protected]>
  * Initial version:  2011-11-21
  *
- *         Purpose:  CEDFFile (big) templated methods
+ *         Purpose:  CEDFFile bulk data io
  *
  *         License:  GPL
  */
 
+#include "edf.hh"
 
-extern template valarray<TFloat> CEDFFile::get_region_original_( const int&, 
size_t, size_t) const;
-extern template valarray<TFloat> CEDFFile::get_region_original_( const 
SChannel&, size_t, size_t) const;
-extern template valarray<TFloat> CEDFFile::get_region_filtered_( const int&, 
size_t, size_t) const;
-extern template valarray<TFloat> CEDFFile::get_region_filtered_( const 
SChannel&, size_t, size_t) const;
-extern template int CEDFFile::put_region_( const int&, const 
valarray<TFloat>&, size_t) const;
-extern template int CEDFFile::put_region_( const SChannel&, const 
valarray<TFloat>&, size_t) const;
-extern template int CEDFFile::export_original_( const int&, const string&) 
const;
-extern template int CEDFFile::export_original_( const SChannel&, const 
string&) const;
+using namespace std;
+using sigfile::CEDFFile;
 
-
-template <typename A>
 valarray<TFloat>
 CEDFFile::
-get_region_original_( const A& h,
-                     const size_t sa, const size_t sz) const
+get_region_original( const int h,
+                    const size_t sa, const size_t sz) const
 {
        if ( unlikely (_status & (TStatus::bad_header | TStatus::bad_version)) )
                throw invalid_argument("CEDFFile::get_region_original(): broken 
source");
@@ -65,11 +58,10 @@ get_region_original_( const A& h,
 
 
 
-template <typename Th>
 valarray<TFloat>
 CEDFFile::
-get_region_filtered_( const Th& h,
-                     const size_t smpla, const size_t smplz) const
+get_region_filtered( const int h,
+                    const size_t smpla, const size_t smplz) const
 {
        valarray<TFloat> recp =
                get_region_original( h, smpla, smplz);
@@ -160,12 +152,11 @@ get_region_filtered_( const Th& h,
 
 
 
-template <typename A>
 int
 CEDFFile::
-put_region_( const A& h,
-            const valarray<TFloat>& src,
-            const size_t offset) const
+put_region( const int h,
+           const valarray<TFloat>& src,
+           const size_t offset) const
 {
        if ( unlikely (_status & (TStatus::bad_header | TStatus::bad_version)) )
                throw invalid_argument("CEDFFile::put_region_(): broken 
source");
@@ -212,21 +203,19 @@ put_region_( const A& h,
 
 
 
-template <typename Th>
 int
 CEDFFile::
-put_signal_( const Th& h,
-            const valarray<TFloat>& src) const
+put_signal( const int h,
+           const valarray<TFloat>& src) const
 {
-       return put_region_( h, src, (size_t)0);
+       return put_region( h, src, (size_t)0);
 }
 
 
-template <typename Th>
 int
 CEDFFile::
-export_original_( const Th& h,
-                 const string& fname) const
+export_original( const int h,
+                const string& fname) const
 {
        valarray<TFloat> signal = get_signal_original( h);
        FILE *fd = fopen( fname.c_str(), "w");
@@ -240,11 +229,10 @@ export_original_( const Th& h,
 }
 
 
-template <typename Th>
 int
 CEDFFile::
-export_filtered_( const Th& h,
-                 const string& fname) const
+export_filtered( const int h,
+                const string& fname) const
 {
        valarray<TFloat> signal = get_signal_filtered( h);
        FILE *fd = fopen( fname.c_str(), "w");
diff --git a/src/libsigfile/edf.cc b/src/libsigfile/edf.cc
index d1f7f5d..2add6ca 100644
--- a/src/libsigfile/edf.cc
+++ b/src/libsigfile/edf.cc
@@ -38,15 +38,6 @@ using agh::str::tokens_trimmed;
 
 using sigfile::CEDFFile;
 
-template valarray<TFloat> CEDFFile::get_region_original_( const int&, size_t, 
size_t) const;
-template valarray<TFloat> CEDFFile::get_region_original_( const SChannel&, 
size_t, size_t) const;
-template valarray<TFloat> CEDFFile::get_region_filtered_( const int&, size_t, 
size_t) const;
-template valarray<TFloat> CEDFFile::get_region_filtered_( const SChannel&, 
size_t, size_t) const;
-template int CEDFFile::put_region_( const int&, const valarray<TFloat>&, 
size_t) const;
-template int CEDFFile::put_region_( const SChannel&, const valarray<TFloat>&, 
size_t) const;
-template int CEDFFile::export_original_( const int&, const string&) const;
-template int CEDFFile::export_original_( const SChannel&, const string&) const;
-
 int
 CEDFFile::
 set_patient_id( const string& s)
diff --git a/src/libsigfile/edf.hh b/src/libsigfile/edf.hh
index 904549d..6c1e0de 100644
--- a/src/libsigfile/edf.hh
+++ b/src/libsigfile/edf.hh
@@ -150,36 +150,22 @@ class CEDFFile
                        return -1;
                }
        const SChannel&
-       channel_by_id( int h) const
-               {
-                       return channels[h].ucd; // throws
-               }
+       channel_by_id( const int h) const
+               { return channels[h].ucd; }
 
        SChannel::TType
-       signal_type( int h) const
-               { return (*this)[h].ucd.type(); }
-       SChannel::TType
-       signal_type( const SChannel& h) const
+       signal_type( const int h) const
                { return (*this)[h].ucd.type(); }
 
        size_t
-       samplerate( int h) const
-               { return (*this)[h].samples_per_record / data_record_size; }
-       size_t
-       samplerate( const SChannel& h) const
+       samplerate( const int h) const
                { return (*this)[h].samples_per_record / data_record_size; }
 
        list<SAnnotation>&
-       annotations( int h)
-               { return (*this)[h].annotations; }
-       list<SAnnotation>&
-       annotations( const SChannel& h)
-               { return (*this)[h].annotations; }
-       const list<SAnnotation>&
-       annotations( int h) const
+       annotations( const int h)
                { return (*this)[h].annotations; }
        const list<SAnnotation>&
-       annotations( const SChannel& h) const
+       annotations( const int h) const
                { return (*this)[h].annotations; }
 
        list<SAnnotation>&
@@ -193,174 +179,85 @@ class CEDFFile
        SArtifacts&
        artifacts( int h)
                { return (*this)[h].artifacts; }
-       SArtifacts&
-       artifacts( const SChannel& h)
-               { return (*this)[h].artifacts; }
        const SArtifacts&
        artifacts( int h) const
                { return (*this)[h].artifacts; }
-       const SArtifacts&
-       artifacts( const SChannel& h) const
-               { return (*this)[h].artifacts; }
 
        // filters
        SFilterPack&
-       filters( int h)
-               { return (*this)[h].filters; }
-       SFilterPack&
-       filters( const SChannel& h)
+       filters( const int h)
                { return (*this)[h].filters; }
        const SFilterPack&
-       filters( int h) const
-               { return (*this)[h].filters; }
-       const SFilterPack&
-       filters( const SChannel& h) const
+       filters( const int h) const
                { return (*this)[h].filters; }
 
 
       // signal data extractors
-       template <class Th>  // accommodates int or const SChannel& as Th
-       valarray<TFloat>
-       get_region_original_( const Th& h, size_t smpla, size_t smplz) const;
        valarray<TFloat>
-       get_region_original( const int& h, size_t smpla, size_t smplz) const
-               { return get_region_original_( h, smpla, smplz); }
+       get_region_original( int h, size_t smpla, size_t smplz) const;
        valarray<TFloat>
-       get_region_original( const SChannel& h, size_t smpla, size_t smplz) 
const
-               { return get_region_original_( h, smpla, smplz); }
-
-       template <class Th>
-       valarray<TFloat>
-       get_region_original_( const Th& h,
-                             float timea, float timez) const
+       get_region_original( const int h,
+                            const float timea, const float timez) const
                {
                        size_t sr = samplerate(h);
-                       return get_region_original_(
+                       return get_region_original(
                                h, (size_t)(timea * sr), (size_t)(timez * sr));
                }
-       valarray<TFloat>
-       get_region_original( const int& h,
-                            float timea, float timez) const
-               { return get_region_original_( h, timea, timez); }
-       valarray<TFloat>
-       get_region_original( const SChannel& h,
-                            float timea, float timez) const
-               { return get_region_original_( h, timea, timez); }
 
-       template <class Th>
        valarray<TFloat>
-       get_signal_original_( const Th& h) const
-               { return get_region_original_(
+       get_signal_original( const int h) const
+               { return get_region_original(
                                h, 0, n_data_records * 
(*this)[h].samples_per_record); }
-       valarray<TFloat>
-       get_signal_original( const int& h) const
-               { return get_signal_original_( h); }
-       valarray<TFloat>
-       get_signal_original( const SChannel& h) const
-               { return get_signal_original_( h); }
 
-       template <class Th>
-       valarray<TFloat>
-       get_region_filtered_( const Th& h,
-                             size_t smpla, size_t smplz) const;
        valarray<TFloat>
-       get_region_filtered( const int& h,
-                            size_t smpla, size_t smplz) const
-               { return get_region_filtered_( h, smpla, smplz); }
-       valarray<TFloat>
-       get_region_filtered( const SChannel& h,
-                            size_t smpla, size_t smplz) const
-               { return get_region_filtered_( h, smpla, smplz); }
+       get_region_filtered( int h,
+                            size_t smpla, size_t smplz) const;
 
-       template <class Th>
        valarray<TFloat>
-       get_region_filtered_( const Th& h,
-                             float timea, float timez) const
+       get_region_filtered( const int h,
+                            float timea, float timez) const
                {
                        size_t sr = samplerate(h);
-                       return get_region_filtered_(
+                       return get_region_filtered(
                                h, (size_t)(timea * sr), (size_t)(timez * sr));
                }
        valarray<TFloat>
-       get_region_filtered( const int& h,
-                            float timea, float timez) const
-               { return get_region_filtered_( h, timea, timez); }
-       valarray<TFloat>
-       get_region_filtered( const SChannel& h,
-                            float timea, float timez) const
-               { return get_region_filtered_( h, timea, timez); }
-       template <class Th>
-       valarray<TFloat>
-       get_signal_filtered_( const Th& h) const
-               { return get_region_filtered_(
+       get_signal_filtered( const int h) const
+               { return get_region_filtered(
                                h, 0, n_data_records * 
(*this)[h].samples_per_record); }
 
       // put signal
-       template <class Th>
-       int
-       put_region_( const Th& h, const valarray<TFloat>& src, size_t offset) 
const;
-       int
-       put_region( const int& h, const valarray<TFloat>& src, size_t offset) 
const
-               { return put_region_( h, src, offset); }
-       int
-       put_region( const SChannel& h, const valarray<TFloat>& src, size_t 
offset) const
-               { return put_region_( h, src, offset); }
-
-       template <class Th>
-       int
-       put_region_( const Th& h, const valarray<TFloat>& src, float offset) 
const
-               { return put_region_( h, src, (size_t)(offset * 
samplerate(h))); }
        int
-       put_region( const int& h, const valarray<TFloat>& src, float offset) 
const
-               { return put_region_( h, src, offset); }
+       put_region( int h, const valarray<TFloat>& src, size_t offset) const;
        int
-       put_region( const SChannel& h, const valarray<TFloat>& src, float 
offset) const
-               { return put_region_( h, src, offset); }
+       put_region( const int h, const valarray<TFloat>& src, float offset) 
const
+               { return put_region( h, src, (size_t)(offset * samplerate(h))); 
}
 
-       template <class Th>
-       int
-       put_signal_( const Th& h, const valarray<TFloat>& src) const;
        int
-       put_signal( const int& h, const valarray<TFloat>& src) const
-               { return put_signal_( h, src); }
-       int
-       put_signal( const SChannel& h, const valarray<TFloat>& src) const
-               { return put_signal_( h, src); }
+       put_signal( int h, const valarray<TFloat>& src) const;
 
       // signal data info
        pair<TFloat, TFloat>
-       get_real_original_signal_range( const SChannel& h) const
-               { return get_real_original_signal_range( channel_id(h)); }
-       pair<TFloat, TFloat>
-       get_real_original_signal_range( const int& h) const
+       get_real_original_signal_range( const int h) const
                {
                        auto x = get_signal_original( h);
                        return {x.min(), x.max()};
                }
 
        pair<TFloat, TFloat>
-       get_max_original_signal_range( const SChannel& h) const
-               { return get_max_original_signal_range( channel_id(h)); }
-       pair<TFloat, TFloat>
-       get_max_original_signal_range( const int& h) const
+       get_max_original_signal_range( const int h) const
                { return {(TFloat)channels[h].digital_min, 
(TFloat)channels[h].digital_max}; }
 
 
        pair<TFloat, TFloat>
-       get_real_filtered_signal_range( const SChannel& h) const
-               { return get_real_filtered_signal_range( channel_id(h)); }
-       pair<TFloat, TFloat>
-       get_real_filtered_signal_range( const int& h) const
+       get_real_filtered_signal_range( const int h) const
                {
                        auto x = get_signal_filtered( h);
                        return {x.min(), x.max()};
                }
 
        pair<TFloat, TFloat>
-       get_max_filtered_signal_range( const SChannel& h) const
-               { return get_max_filtered_signal_range( channel_id(h)); }
-       pair<TFloat, TFloat>
-       get_max_filtered_signal_range( const int& h) const
+       get_max_filtered_signal_range( const int h) const
                {
                        auto x = get_signal_filtered( h);
                        return {x.min(), x.max()};   // an approximate
@@ -372,21 +269,14 @@ class CEDFFile
 
       // export
        int
-       export_original( const int& h, const string& fname) const
-               { return export_original_( h, fname); }
+       export_original( int h, const string& fname) const;
        int
-       export_filtered( const int& h, const string& fname) const
-               { return export_filtered_( h, fname); }
+       export_filtered( int h, const string& fname) const;
+
        int
-       export_original( const SChannel& h, const string& fname) const
-               { return export_original_( h, fname); }
+       export_original_( int h, const string& fname) const;
        int
-       export_filtered( const SChannel& h, const string& fname) const
-               { return export_filtered_( h, fname); }
-       template <class Th>
-       int export_original_( const Th& h, const string& fname) const;
-       template <class Th>
-       int export_filtered_( const Th& h, const string& fname) const;
+       export_filtered_( int h, const string& fname) const;
 
 
       // reporting & misc
@@ -572,10 +462,6 @@ class CEDFFile
 };
 
 
-
-
-#include "edf.ii"
-
 } // namespace sigfile
 
 
diff --git a/src/libsigfile/source-base.hh b/src/libsigfile/source-base.hh
index f9d5464..d761b96 100644
--- a/src/libsigfile/source-base.hh
+++ b/src/libsigfile/source-base.hh
@@ -241,20 +241,13 @@ class CSource {
        virtual int channel_id( const SChannel&)        const = 0;
        virtual const SChannel& channel_by_id( int)     const = 0;
        virtual SChannel::TType
-       signal_type( const SChannel&)                   const = 0;
-       virtual SChannel::TType
        signal_type( int)                               const = 0;
-       virtual size_t samplerate( const SChannel&)     const = 0;
        virtual size_t samplerate( int)                 const = 0;
 
        // the following methods are pass-through:
        // 1. annotations
        // (a) per-channel
        virtual list<SAnnotation>&
-       annotations( const SChannel&)                 = 0;
-       virtual const list<SAnnotation>&
-       annotations( const SChannel&) const           = 0;
-       virtual list<SAnnotation>&
        annotations( int)                             = 0;
        virtual const list<SAnnotation>&
        annotations( int) const                       = 0;
@@ -267,22 +260,14 @@ class CSource {
 
        // artifacts
        virtual SArtifacts&
-       artifacts( const SChannel&)                   = 0;
-       virtual SArtifacts&
        artifacts( int)                               = 0;
        virtual const SArtifacts&
-       artifacts( const SChannel&)             const = 0;
-       virtual const SArtifacts&
        artifacts( int)                         const = 0;
 
        // filters
        virtual SFilterPack&
-       filters( const SChannel&)                     = 0;
-       virtual SFilterPack&
        filters( int)                                 = 0;
        virtual const SFilterPack&
-       filters( const SChannel&)               const = 0;
-       virtual const SFilterPack&
        filters( int)                           const = 0;
 
        template <typename T>
@@ -303,15 +288,12 @@ class CSource {
       // get samples
        // original
        virtual valarray<TFloat>
-       get_region_original( const SChannel&, size_t, size_t) const = 0;
-       virtual valarray<TFloat>
-       get_region_original( const int&, size_t, size_t) const = 0;
+       get_region_original( int, size_t, size_t) const = 0;
 
-       template <typename T>
        valarray<TFloat>
-       get_region_original( const T& h,
-                            float seconds_off_start,
-                            float seconds_off_end) const
+       get_region_original( const int h,
+                            const float seconds_off_start,
+                            const float seconds_off_end) const
                {
                        size_t sr = samplerate(h);
                        return get_region_original(
@@ -320,9 +302,8 @@ class CSource {
                                seconds_off_end * sr);
                }
 
-       template <typename T>
        valarray<TFloat>
-       get_signal_original( const T& h) const
+       get_signal_original( const int h) const
                {
                        return get_region_original(
                                h,
@@ -331,15 +312,12 @@ class CSource {
 
        // filtered
        virtual valarray<TFloat>
-       get_region_filtered( const SChannel& h, size_t, size_t) const = 0;
-       virtual valarray<TFloat>
-       get_region_filtered( const int& h, size_t, size_t) const = 0;
+       get_region_filtered( int h, size_t, size_t) const = 0;
 
-       template <typename T>
        valarray<TFloat>
-       get_region_filtered( const T& h,
-                            float seconds_off_start,
-                            float seconds_off_end) const
+       get_region_filtered( const int h,
+                            const float seconds_off_start,
+                            const float seconds_off_end) const
                {
                        size_t sr = samplerate(h);
                        return get_region_filtered(
@@ -348,9 +326,8 @@ class CSource {
                                seconds_off_end   * sr);
                }
 
-       template <typename T>
        valarray<TFloat>
-       get_signal_filtered( const T& h) const
+       get_signal_filtered( const int h) const
                {
                        return get_region_filtered(
                                h,
@@ -359,69 +336,35 @@ class CSource {
 
       // put samples
        virtual int
-       put_region( const int& h,
-                   const valarray<TFloat>& src,
-                   size_t offset)              const = 0;
-       virtual int
-       put_region( const SChannel& h,
+       put_region( int h,
                    const valarray<TFloat>& src,
                    size_t offset)              const = 0;
 
        int
-       put_signal( const int& h,
-                   const valarray<TFloat>& src)
-               {
-                       return put_region( h, src, 0);
-               }
-       int
-       put_signal( const SChannel& h,
+       put_signal( int h,
                    const valarray<TFloat>& src)
                {
                        return put_region( h, src, 0);
                }
 
       // signal data info
-       template <typename T>
-       pair<TFloat, TFloat>
-       get_real_original_signal_range( const T& h) const;
        virtual pair<TFloat, TFloat>
-       get_real_original_signal_range( const int&) const = 0;
-       virtual pair<TFloat, TFloat>
-       get_real_original_signal_range( const SChannel&) const = 0;
+       get_real_original_signal_range( int) const = 0;
 
-       template <typename T>
-       pair<TFloat, TFloat>
-       get_max_original_signal_range( const T& h) const;
        virtual pair<TFloat, TFloat>
-       get_max_original_signal_range( const int&) const = 0;
-       virtual pair<TFloat, TFloat>
-       get_max_original_signal_range( const SChannel&) const = 0;
+       get_max_original_signal_range( int) const = 0;
 
-       template <typename T>
-       pair<TFloat, TFloat>
-       get_real_filtered_signal_range( const T& h) const;
        virtual pair<TFloat, TFloat>
-       get_real_filtered_signal_range( const int&) const = 0;
-       virtual pair<TFloat, TFloat>
-       get_real_filtered_signal_range( const SChannel&) const = 0;
+       get_real_filtered_signal_range( int) const = 0;
 
-       template <typename T>
-       pair<TFloat, TFloat>
-       get_max_filtered_signal_range( const T& h) const;
        virtual pair<TFloat, TFloat>
-       get_max_filtered_signal_range( const int&) const = 0;
-       virtual pair<TFloat, TFloat>
-       get_max_filtered_signal_range( const SChannel&) const = 0;
+       get_max_filtered_signal_range( int) const = 0;
 
       // export
        virtual int
-       export_original( const int&, const string& fname) const = 0;
-       virtual int
-       export_original( const SChannel&, const string& fname) const = 0;
+       export_original( int, const string& fname) const = 0;
        virtual int
-       export_filtered( const int&, const string& fname) const = 0;
-       virtual int
-       export_filtered( const SChannel&, const string& fname) const = 0;
+       export_filtered( int, const string& fname) const = 0;
 
       // filenames
        string make_fname_artifacts( const SChannel& channel) const
@@ -439,7 +382,6 @@ class CSource {
 
 
 
-
 } // namespace sigfile
 
 #endif // _SIGFILE_SOURCE_BASE_H
diff --git a/src/ui/mw/mainmenu_cb.cc b/src/ui/mw/mainmenu_cb.cc
index 1a4ea99..5137a77 100644
--- a/src/ui/mw/mainmenu_cb.cc
+++ b/src/ui/mw/mainmenu_cb.cc
@@ -286,7 +286,7 @@ iExpGloballyDetectArtifacts_activate_cb(
                {
                        auto& F = R.F();
                        for ( auto& H : F.channel_list() ) {
-                               auto&   af = F.artifacts(H);
+                               auto&   af = F.artifacts(F.channel_id(H));
                                af.clear_all();
                        }
                };
@@ -363,7 +363,7 @@ iExpGloballySetFilters_activate_cb(
                                        for ( auto &E : D.second.episodes )
                                                for ( auto &F : E.sources )
                                                        for ( auto &H : 
F().channel_list() ) {
-                                                               auto& ff = 
F().filters(H);
+                                                               auto& ff = 
F().filters(F().channel_id(H));
                                                                
ff.low_pass_cutoff = LPC;
                                                                
ff.low_pass_order = LPO;
                                                                
ff.high_pass_cutoff = HPC;
diff --git a/src/ui/sf/channel.cc b/src/ui/sf/channel.cc
index e4ecbc3..a443a46 100644
--- a/src/ui/sf/channel.cc
+++ b/src/ui/sf/channel.cc
@@ -35,9 +35,9 @@ SChannel (agh::CRecording& r,
       : name (r.channel()),
        crecording (r),
        _h (r.F().channel_id(name)),
-       filters (r.F().filters(name)),
-       annotations (r.F().annotations(name)),
-       artifacts (r.F().artifacts(name)),
+       filters (r.F().filters( _h)),
+       annotations (r.F().annotations(_h)),
+       artifacts (r.F().artifacts(_h)),
        _p (parent),
        signal_lowpass  ({signal_filtered, samplerate()}),
        signal_bandpass ({signal_filtered, samplerate()}),
diff --git a/src/ui/sf/ica.cc b/src/ui/sf/ica.cc
index 054d36f..49cb581 100644
--- a/src/ui/sf/ica.cc
+++ b/src/ui/sf/ica.cc
@@ -72,7 +72,7 @@ setup_ica()
                        checking_total_samples = this_ts;
 
                src.emplace_back(
-                       bind (&sigfile::CSource::get_signal_original<int>, 
&H.crecording.F(), H.h()));
+                       bind (&sigfile::CSource::get_signal_original, 
&H.crecording.F(), H.h()));
        }
        ica = new ica::CFastICA (src, 
channels.front().crecording.total_samples());
 
diff --git a/src/ui/sf/montage.cc b/src/ui/sf/montage.cc
index f796a1e..af1bd39 100644
--- a/src/ui/sf/montage.cc
+++ b/src/ui/sf/montage.cc
@@ -447,7 +447,7 @@ draw_page( cairo_t *cr,
                evpz = cvpe - cvpa;
       // artifacts (changed bg)
        {
-               auto& Aa = crecording.F().artifacts(name);
+               auto& Aa = crecording.F().artifacts(crecording.h());
                if ( not Aa.obj.empty() ) {
                        
_p._p.CwB[SExpDesignUI::TColour::sf_artifact].set_source_rgba(
                                cr, .4); // do some gradients perhaps?
diff --git a/src/ui/sf/montage_cb.cc b/src/ui/sf/montage_cb.cc
index 63a9a3b..ce054ce 100644
--- a/src/ui/sf/montage_cb.cc
+++ b/src/ui/sf/montage_cb.cc
@@ -856,7 +856,7 @@ iSFPageExportSignal_activate_cb(
        auto& r = SF.using_channel->crecording;
        string fname_base = r.F().filename();
        snprintf_buf( "%s-filt.tsv", fname_base.c_str());
-       r.F().export_filtered( SF.using_channel->name, __buf__);
+       r.F().export_filtered( SF.using_channel->h(), __buf__);
        snprintf_buf( "%s-orig.tsv", fname_base.c_str());
        r.F().export_original( SF.using_channel->h(), __buf__);
        snprintf_buf( "Wrote \"%s-{filt,orig}.tsv\"",

-- 
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