[med-svn] [aghermann] 27/85: SF: fix next/prev annotation jump
andrei zavada
hmmr-guest at alioth.debian.org
Thu Sep 26 23:46:26 UTC 2013
This is an automated email from the git hooks/post-receive script.
hmmr-guest pushed a commit to branch master
in repository aghermann.
commit e8bf672c1f466a0e68d5736908bad1beebfa053d
Author: Andrei Zavada <johnhommer at gmail.com>
Date: Sun Sep 15 02:10:31 2013 +0300
SF: fix next/prev annotation jump
---
upstream/src/aghermann/ui/sf/montage_cb.cc | 6 +++---
upstream/src/aghermann/ui/sf/sf.cc | 14 +++++++-------
upstream/src/aghermann/ui/sf/sf.hh | 4 +++-
3 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/upstream/src/aghermann/ui/sf/montage_cb.cc b/upstream/src/aghermann/ui/sf/montage_cb.cc
index bdf9475..ac1628c 100644
--- a/upstream/src/aghermann/ui/sf/montage_cb.cc
+++ b/upstream/src/aghermann/ui/sf/montage_cb.cc
@@ -1071,7 +1071,7 @@ iSFPageAnnotationGotoNext_activate_cb(
return;
size_t p = SF.cur_vpage();
while ( ++p < SF.total_vpages() )
- if ( SF.page_has_annotations( p, *SF.using_channel)) {
+ if ( SF.vpage_has_annotations( p, *SF.using_channel)) {
SF.sb_clear();
SF.set_cur_vpage( p);
return;
@@ -1090,9 +1090,9 @@ iSFPageAnnotationGotoPrev_activate_cb(
return;
size_t p = SF.cur_vpage();
while ( --p != (size_t)-1 )
- if ( SF.page_has_annotations( p, *SF.using_channel)) {
+ if ( SF.vpage_has_annotations( p, *SF.using_channel)) {
SF.sb_clear();
- SF.set_cur_vpage( p);
+ SF.set_cur_page( p);
return;
}
SF.sb_message( "No more annotations before this");
diff --git a/upstream/src/aghermann/ui/sf/sf.cc b/upstream/src/aghermann/ui/sf/sf.cc
index 05abd01..835c15a 100644
--- a/upstream/src/aghermann/ui/sf/sf.cc
+++ b/upstream/src/aghermann/ui/sf/sf.cc
@@ -631,16 +631,16 @@ page_has_artifacts( const size_t p, const bool search_all) const
bool
SScoringFacility::
-page_has_annotations( const size_t p, const SChannel& H) const
+vpage_has_annotations( const size_t p, const SChannel& H) const
{
- int half_pad_samples = skirting_run_per1 * vpagesize() * H.samplerate();
- int cvpa = p * pagesize() * H.samplerate() - half_pad_samples,
- cvpe = (p+1) * pagesize() * H.samplerate() + half_pad_samples;
- for ( auto &A : H.annotations )
- if ( agh::alg::overlap( (int)A.span.a, (int)A.span.z, cvpa, cvpe) )
+ for ( auto &A : H.annotations ) {
+ if ( agh::alg::overlap(
+ A.span.a, A.span.z,
+ (p + 0.) * vpagesize(), (p+1.) * vpagesize()) )
return true;
- else if ( (int)A.span.a > cvpe ) // no more up to and on current page
+ else if ( A.span.a > (p+1.) * vpagesize() ) // no more up to and on current page
return false;
+ }
return false;
}
diff --git a/upstream/src/aghermann/ui/sf/sf.hh b/upstream/src/aghermann/ui/sf/sf.hh
index 0523f42..6377706 100644
--- a/upstream/src/aghermann/ui/sf/sf.hh
+++ b/upstream/src/aghermann/ui/sf/sf.hh
@@ -142,6 +142,8 @@ class SScoringFacility
size_t cur_page() const { return _cur_page; }
size_t cur_vpage() const { return _cur_vpage; }
void set_cur_vpage( size_t p, bool touch_self = true);
+ void set_cur_page( size_t p, bool touch_self = true)
+ { set_cur_vpage( p2ap(p), touch_self); }
size_t
cur_page_start() const // in seconds
@@ -156,7 +158,7 @@ class SScoringFacility
{ return sigfile::SPage::char2score( hypnogram[_cur_page]); }
bool page_has_artifacts( size_t, bool check_all_channels = true) const;
- bool page_has_annotations( size_t, const SChannel&) const;
+ bool vpage_has_annotations( size_t, const SChannel&) const;
// pagesize
size_t pagesize() const;
--
Alioth's /git/debian-med/git-commit-notice on /srv/git.debian.org/git/debian-med/aghermann.git
More information about the debian-med-commit
mailing list