[med-svn] [SCM] aghermann branch, master, updated. 3603e7ef1289f9ec79a3eb415b6d141166e9498a
Andrei Zavada
johnhommer at gmail.com
Sun Jul 14 22:28:23 UTC 2013
The following commit has been merged in the master branch:
commit 32dcf340bd2fd1f3eee2fdd245d3745e67a6c181
Author: Andrei Zavada <johnhommer at gmail.com>
Date: Sun Jul 14 00:39:06 2013 +0300
CSource::put_region_smpl() are not const, obviously
diff --git a/src/libsigfile/edf-io.cc b/src/libsigfile/edf-io.cc
index 3adc071..2e369b7 100644
--- a/src/libsigfile/edf-io.cc
+++ b/src/libsigfile/edf-io.cc
@@ -69,7 +69,7 @@ int
CEDFFile::
put_region_smpl( const int h,
const valarray<TFloat>& src,
- const size_t offset) const
+ const size_t offset)
{
if ( unlikely (_status & (TStatus::bad_header | TStatus::bad_version)) )
throw invalid_argument("CEDFFile::put_region_(): broken source");
diff --git a/src/libsigfile/edf.hh b/src/libsigfile/edf.hh
index d28164d..a223b2e 100644
--- a/src/libsigfile/edf.hh
+++ b/src/libsigfile/edf.hh
@@ -204,13 +204,13 @@ class CEDFFile
// put signal
int
- put_region_smpl( int, const valarray<TFloat>&, size_t) const;
+ put_region_smpl( int, const valarray<TFloat>&, size_t);
int
- put_region_sec( const int h, const valarray<TFloat>& src, const float offset) const
+ put_region_sec( const int h, const valarray<TFloat>& src, const float offset)
{ return put_region_smpl( h, src, (size_t)(offset * samplerate(h))); }
int
- put_signal( const int h, const valarray<TFloat>& src) const
+ put_signal( const int h, const valarray<TFloat>& src)
{ return put_region_smpl( h, src, 0); }
// signal data info
diff --git a/src/libsigfile/source-base.hh b/src/libsigfile/source-base.hh
index c35bc5a..b39c513 100644
--- a/src/libsigfile/source-base.hh
+++ b/src/libsigfile/source-base.hh
@@ -386,9 +386,9 @@ class CSource {
// put samples
virtual int
- put_region_smpl( int, const valarray<TFloat>&, size_t) const = 0;
+ put_region_smpl( int, const valarray<TFloat>&, size_t) = 0;
- int put_region_sec( const int h, const valarray<TFloat>& src, const float offset) const
+ int put_region_sec( const int h, const valarray<TFloat>& src, const float offset)
{ return put_region_smpl( h, src, offset * samplerate(h)); }
int put_signal( const int h, const valarray<TFloat>& src)
diff --git a/src/libsigfile/tsv.cc b/src/libsigfile/tsv.cc
index f6139ed..8b1ffa6 100644
--- a/src/libsigfile/tsv.cc
+++ b/src/libsigfile/tsv.cc
@@ -219,9 +219,15 @@ _read_data()
int
CTSVFile::
-put_region_smpl( int, const valarray<TFloat>&, size_t) const
+put_region_smpl( int h, const valarray<TFloat>& V, size_t off)
{
-
+ if ( unlikely (h > (int)channels.size() - 1) )
+ throw out_of_range ("Bad channel index");
+ if ( unlikely (off + V.size() > channels[h].data.size()) )
+ throw out_of_range ("Bad offset");
+
+ channels[h].data[ slice (off, V.size(), 1) ] = V[ slice (0, V.size(), 1) ];
+
return 0;
}
diff --git a/src/libsigfile/tsv.hh b/src/libsigfile/tsv.hh
index eda499f..779f8f7 100644
--- a/src/libsigfile/tsv.hh
+++ b/src/libsigfile/tsv.hh
@@ -217,11 +217,11 @@ class CTSVFile
{ return get_region_filtered_smpl( h, 0, channels.front().data.size()); }
// put signal
- int put_region_smpl( int, const valarray<TFloat>&, size_t) const;
- int put_region_sec( const int h, const valarray<TFloat>& src, const float offset) const
+ int put_region_smpl( int, const valarray<TFloat>&, size_t);
+ int put_region_sec( const int h, const valarray<TFloat>& src, const float offset)
{ return put_region_smpl( h, src, (size_t)(offset * _samplerate)); }
- int put_signal( const int h, const valarray<TFloat>& src) const
+ int put_signal( const int h, const valarray<TFloat>& src)
{ return put_region_smpl( h, src, 0); }
// signal data info
--
Sleep experiment manager
More information about the debian-med-commit
mailing list