[med-svn] [SCM] aghermann branch, master, updated. c0bd21ca8eb529ade7e0c7aad22951a308a8dc8f
Andrei Zavada
johnhommer at gmail.com
Wed May 1 00:09:45 UTC 2013
The following commit has been merged in the master branch:
commit c6c25c81e8dc3dbc2e53fc8fc39bba19c086b338
Author: Andrei Zavada <johnhommer at gmail.com>
Date: Tue Apr 30 02:32:03 2013 +0300
gotcha with channel selector arg passed by value
diff --git a/src/libsigfile/channel.hh b/src/libsigfile/channel.hh
index 0f61cd0..7f73e32 100644
--- a/src/libsigfile/channel.hh
+++ b/src/libsigfile/channel.hh
@@ -190,6 +190,13 @@ struct SChannel {
{
return 0 == strcasecmp( name(), rv);
}
+
+ // void operator=( const SChannel& rv)
+ // {
+ // _type = rv._type;
+ // _idx = rv._idx;
+ // _custom_name = rv._custom_name;
+ // }
};
template <typename C>
diff --git a/src/libsigfile/edf.cc b/src/libsigfile/edf.cc
index 8b566b3..9d063d2 100644
--- a/src/libsigfile/edf.cc
+++ b/src/libsigfile/edf.cc
@@ -38,14 +38,14 @@ using agh::str::tokens_trimmed;
using sigfile::CEDFFile;
-template valarray<TFloat> CEDFFile::get_region_original_( int, size_t, size_t) const;
+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_( int, 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_( int, const valarray<TFloat>&, size_t) const;
-template int CEDFFile::put_region_( const string&, const valarray<TFloat>&, size_t) const;
-template int CEDFFile::export_original_( int, const string&) const;
-template int CEDFFile::export_original_( const string&, const string&) 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::
@@ -679,16 +679,14 @@ _parse_header()
string isolated_label = trim( string (H.header.label, 16));
if ( isolated_label == sigfile::edf_annotations_label )
- H.ucd = sigfile::SChannel( sigfile::SChannel::TType::embedded_annotation, 0);
+ H.ucd = {sigfile::SChannel::TType::embedded_annotation, 0};
else {
auto tt = agh::str::tokens( isolated_label, " ");
// parse legacy pre 0.9 specs ("EEG F3" etc)
if ( tt.size() > 1 ) {
string suggested_type = tt.front();
- H.ucd = sigfile::SChannel ((tt.pop_front(), agh::str::join( tt, " ")));
- if ( suggested_type == H.ucd.type_s() )
- ; // all agree
- else
+ H.ucd = {(tt.pop_front(), agh::str::join( tt, " "))};
+ if ( suggested_type != H.ucd.type_s() )
_status |= recognised_channel_conflicting_type;
} else {
H.ucd = sigfile::SChannel (isolated_label);
diff --git a/src/libsigfile/edf.hh b/src/libsigfile/edf.hh
index bc7db0c..23993fc 100644
--- a/src/libsigfile/edf.hh
+++ b/src/libsigfile/edf.hh
@@ -221,9 +221,9 @@ class CEDFFile
// signal data extractors
template <class Th> // accommodates int or const SChannel& as Th
valarray<TFloat>
- get_region_original_( Th h, size_t smpla, size_t smplz) const;
+ get_region_original_( const Th& h, size_t smpla, size_t smplz) const;
valarray<TFloat>
- get_region_original( int h, size_t smpla, size_t smplz) const
+ get_region_original( const int& h, size_t smpla, size_t smplz) const
{ return get_region_original_<int>( h, smpla, smplz); }
valarray<TFloat>
get_region_original( const SChannel& h, size_t smpla, size_t smplz) const
@@ -231,7 +231,7 @@ class CEDFFile
template <class Th>
valarray<TFloat>
- get_region_original_( Th h,
+ get_region_original_( const Th& h,
float timea, float timez) const
{
size_t sr = samplerate(h);
@@ -239,20 +239,20 @@ class CEDFFile
h, (size_t)(timea * sr), (size_t)(timez * sr));
}
valarray<TFloat>
- get_region_original( int h,
+ get_region_original( const int& h,
float timea, float timez) const
- { return get_region_original_<int>( h, timea, timez); }
+ { return get_region_original_( h, timea, timez); }
valarray<TFloat>
get_region_original( const SChannel& h,
float timea, float timez) const
- { return get_region_original_<const SChannel&>( h, timea, timez); }
+ { return get_region_original_( h, timea, timez); }
template <class Th>
valarray<TFloat>
- get_signal_original_( Th h) const
+ get_signal_original_( const Th& h) const
{ return get_region_original_( h, 0, n_data_records * (*this)[h].samples_per_record); }
valarray<TFloat>
- get_signal_original( int h) const
+ get_signal_original( const int& h) const
{ return get_signal_original_( h); }
valarray<TFloat>
get_signal_original( const SChannel& h) const
@@ -260,19 +260,20 @@ class CEDFFile
template <class Th>
valarray<TFloat>
- get_region_filtered_( Th h,
+ get_region_filtered_( const Th& h,
size_t smpla, size_t smplz) const;
valarray<TFloat>
- get_region_filtered( int h,
+ 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); }
+
template <class Th>
valarray<TFloat>
- get_region_filtered_( Th h,
+ get_region_filtered_( const Th& h,
float timea, float timez) const
{
size_t sr = samplerate(h);
@@ -280,7 +281,7 @@ class CEDFFile
h, (size_t)(timea * sr), (size_t)(timez * sr));
}
valarray<TFloat>
- get_region_filtered( int h,
+ get_region_filtered( const int& h,
float timea, float timez) const
{ return get_region_filtered_( h, timea, timez); }
valarray<TFloat>
@@ -289,15 +290,15 @@ class CEDFFile
{ return get_region_filtered_( h, timea, timez); }
template <class Th>
valarray<TFloat>
- get_signal_filtered_( Th h) const
+ get_signal_filtered_( const Th& h) const
{ return get_region_filtered_( h, 0, n_data_records * (*this)[h].samples_per_record); }
// put signal
template <class Th>
int
- put_region_( Th h, const valarray<TFloat>& src, size_t offset) const;
+ put_region_( const Th& h, const valarray<TFloat>& src, size_t offset) const;
int
- put_region( int h, const valarray<TFloat>& src, size_t offset) const
+ 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
@@ -305,17 +306,20 @@ class CEDFFile
template <class Th>
int
- put_region_( Th h, const valarray<TFloat>& src, float offset) const
+ 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( int h, const valarray<TFloat>& src, float offset) const
+ put_region( const int& h, const valarray<TFloat>& src, float offset) const
+ { return put_region_( h, src, offset); }
+ int
+ put_region( const SChannel& h, const valarray<TFloat>& src, float offset) const
{ return put_region_( h, src, offset); }
template <class Th>
int
- put_signal_( Th h, const valarray<TFloat>& src) const;
+ put_signal_( const Th& h, const valarray<TFloat>& src) const;
int
- put_signal( int h, const valarray<TFloat>& src) const
+ 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
@@ -326,7 +330,7 @@ class CEDFFile
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( int h) const
+ get_real_original_signal_range( const int& h) const
{
auto x = get_signal_original( h);
return {x.min(), x.max()};
@@ -336,7 +340,7 @@ class CEDFFile
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( int h) const
+ get_max_original_signal_range( const int& h) const
{ return {(TFloat)channels[h].digital_min, (TFloat)channels[h].digital_max}; }
@@ -344,7 +348,7 @@ class CEDFFile
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( int h) const
+ get_real_filtered_signal_range( const int& h) const
{
auto x = get_signal_filtered( h);
return {x.min(), x.max()};
@@ -354,7 +358,7 @@ class CEDFFile
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( 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
@@ -366,10 +370,10 @@ class CEDFFile
// export
int
- export_original( int h, const string& fname) const
+ export_original( const int& h, const string& fname) const
{ return export_original_( h, fname); }
int
- export_filtered( int h, const string& fname) const
+ export_filtered( const int& h, const string& fname) const
{ return export_filtered_( h, fname); }
int
export_original( const SChannel& h, const string& fname) const
@@ -378,9 +382,9 @@ class CEDFFile
export_filtered( const SChannel& h, const string& fname) const
{ return export_filtered_( h, fname); }
template <class Th>
- int export_original_( Th h, const string& fname) const;
+ int export_original_( const Th& h, const string& fname) const;
template <class Th>
- int export_filtered_( Th h, const string& fname) const;
+ int export_filtered_( const Th& h, const string& fname) const;
// reporting & misc
@@ -445,7 +449,7 @@ class CEDFFile
bool operator==( const SChannel& h) const
{
- return ucd.name() == h.name();
+ return ucd == h;
}
bool operator==( const string& h) const
{
diff --git a/src/libsigfile/edf.ii b/src/libsigfile/edf.ii
index 390cd0a..5b2bc95 100644
--- a/src/libsigfile/edf.ii
+++ b/src/libsigfile/edf.ii
@@ -10,20 +10,20 @@
*/
-extern template valarray<TFloat> CEDFFile::get_region_original_( int, size_t, size_t) const;
+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_( int, 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_( int, const valarray<TFloat>&, 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_( int, const string&) const;
+extern template int CEDFFile::export_original_( const int&, const string&) const;
extern template int CEDFFile::export_original_( const SChannel&, const string&) const;
template <typename A>
valarray<TFloat>
CEDFFile::
-get_region_original_( const A h,
+get_region_original_( const A& h,
const size_t sa, const size_t sz) const
{
if ( unlikely (_status & (TStatus::bad_header | TStatus::bad_version)) )
@@ -60,7 +60,7 @@ get_region_original_( const A h,
free( tmp);
- return recp;
+ return move(recp);
}
@@ -68,7 +68,7 @@ get_region_original_( const A h,
template <typename Th>
valarray<TFloat>
CEDFFile::
-get_region_filtered_( const Th h,
+get_region_filtered_( const Th& h,
const size_t smpla, const size_t smplz) const
{
valarray<TFloat> recp =
@@ -153,7 +153,7 @@ get_region_filtered_( const Th h,
}
// filters happen to append samples, so
- return recp[ slice (0, smplz-smpla, 1)];
+ return move(recp[ slice (0, smplz-smpla, 1)]);
}
@@ -163,7 +163,7 @@ get_region_filtered_( const Th h,
template <typename A>
int
CEDFFile::
-put_region_( const A h,
+put_region_( const A& h,
const valarray<TFloat>& src,
const size_t offset) const
{
@@ -215,7 +215,7 @@ put_region_( const A h,
template <typename Th>
int
CEDFFile::
-put_signal_( const Th h,
+put_signal_( const Th& h,
const valarray<TFloat>& src) const
{
return put_region_( h, src, (size_t)0);
@@ -225,7 +225,7 @@ put_signal_( const Th h,
template <typename Th>
int
CEDFFile::
-export_original_( const Th h,
+export_original_( const Th& h,
const string& fname) const
{
valarray<TFloat> signal = get_signal_original( h);
@@ -243,7 +243,7 @@ export_original_( const Th h,
template <typename Th>
int
CEDFFile::
-export_filtered_( const Th h,
+export_filtered_( const Th& h,
const string& fname) const
{
valarray<TFloat> signal = get_signal_filtered( h);
diff --git a/src/libsigfile/source-base.hh b/src/libsigfile/source-base.hh
index fbde17a..f9d5464 100644
--- a/src/libsigfile/source-base.hh
+++ b/src/libsigfile/source-base.hh
@@ -305,11 +305,11 @@ class CSource {
virtual valarray<TFloat>
get_region_original( const SChannel&, size_t, size_t) const = 0;
virtual valarray<TFloat>
- get_region_original( int, size_t, size_t) const = 0;
+ get_region_original( const int&, size_t, size_t) const = 0;
template <typename T>
valarray<TFloat>
- get_region_original( T h,
+ get_region_original( const T& h,
float seconds_off_start,
float seconds_off_end) const
{
@@ -322,7 +322,7 @@ class CSource {
template <typename T>
valarray<TFloat>
- get_signal_original( T h) const
+ get_signal_original( const T& h) const
{
return get_region_original(
h,
@@ -333,11 +333,11 @@ class CSource {
virtual valarray<TFloat>
get_region_filtered( const SChannel& h, size_t, size_t) const = 0;
virtual valarray<TFloat>
- get_region_filtered( int h, size_t, size_t) const = 0;
+ get_region_filtered( const int& h, size_t, size_t) const = 0;
template <typename T>
valarray<TFloat>
- get_region_filtered( T h,
+ get_region_filtered( const T& h,
float seconds_off_start,
float seconds_off_end) const
{
@@ -350,7 +350,7 @@ class CSource {
template <typename T>
valarray<TFloat>
- get_signal_filtered( T h) const
+ get_signal_filtered( const T& h) const
{
return get_region_filtered(
h,
@@ -359,7 +359,7 @@ class CSource {
// put samples
virtual int
- put_region( int h,
+ put_region( const int& h,
const valarray<TFloat>& src,
size_t offset) const = 0;
virtual int
@@ -368,7 +368,7 @@ class CSource {
size_t offset) const = 0;
int
- put_signal( int h,
+ put_signal( const int& h,
const valarray<TFloat>& src)
{
return put_region( h, src, 0);
@@ -383,43 +383,43 @@ class CSource {
// signal data info
template <typename T>
pair<TFloat, TFloat>
- get_real_original_signal_range( T h) const;
+ get_real_original_signal_range( const T& h) const;
virtual pair<TFloat, TFloat>
- get_real_original_signal_range( int) const = 0;
+ get_real_original_signal_range( const int&) const = 0;
virtual pair<TFloat, TFloat>
get_real_original_signal_range( const SChannel&) const = 0;
template <typename T>
pair<TFloat, TFloat>
- get_max_original_signal_range( T h) const;
+ get_max_original_signal_range( const T& h) const;
virtual pair<TFloat, TFloat>
- get_max_original_signal_range( int) const = 0;
+ get_max_original_signal_range( const int&) const = 0;
virtual pair<TFloat, TFloat>
get_max_original_signal_range( const SChannel&) const = 0;
template <typename T>
pair<TFloat, TFloat>
- get_real_filtered_signal_range( T h) const;
+ get_real_filtered_signal_range( const T& h) const;
virtual pair<TFloat, TFloat>
- get_real_filtered_signal_range( int) const = 0;
+ get_real_filtered_signal_range( const int&) const = 0;
virtual pair<TFloat, TFloat>
get_real_filtered_signal_range( const SChannel&) const = 0;
template <typename T>
pair<TFloat, TFloat>
- get_max_filtered_signal_range( T h) const;
+ get_max_filtered_signal_range( const T& h) const;
virtual pair<TFloat, TFloat>
- get_max_filtered_signal_range( int) const = 0;
+ get_max_filtered_signal_range( const int&) const = 0;
virtual pair<TFloat, TFloat>
get_max_filtered_signal_range( const SChannel&) const = 0;
// export
virtual int
- export_original( int, const string& fname) const = 0;
+ export_original( const int&, const string& fname) const = 0;
virtual int
export_original( const SChannel&, const string& fname) const = 0;
virtual int
- export_filtered( int, const string& fname) const = 0;
+ export_filtered( const int&, const string& fname) const = 0;
virtual int
export_filtered( const SChannel&, const string& fname) const = 0;
--
Sleep experiment manager
More information about the debian-med-commit
mailing list