Commit 7d59e47a authored by Andreas Tille's avatar Andreas Tille
Browse files

New upstream version 1.64+dfsg

parent 875d1736
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ The GCC compiler on Linux or Mingw-w64 on windows. <http://mingw-w64.sourceforge

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.8.2/threads-posix/dwarf/i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z/download

Please, do not use any microsoft tools or compilers. Don't waste your time, it's not going to work!
Do not use microsoft tools or compilers.



@@ -47,13 +47,14 @@ sudo make install



How to compile (step by step)
=============================
How to compile
==============

- Install Git, the GCC compiler and the Qt4 development package:
  Linux Mint 18: sudo apt-get install git-core libqt4-dev libqt4-core g++
  openSuse Leap 42.2: sudo zypper in git-core libqt4-devel
  Fedora 25: sudo dnf install git-core qt-devel gcc-c++
  Ubuntu 18.04: sudo apt-get install g++ make git-core qtbase5-dev-tools qtbase5-dev qt5-default

- Download the source code:
  mkdir EDFbrowser_git
@@ -65,9 +66,10 @@ How to compile (step by step)
  Linux Mint 18: qmake
  openSuse Leap 42.2: qmake
  Fedora 25: qmake-qt4
  Ubuntu: qmake

- Compile the source code and install it:
  make -j16
  make -j8
  sudo make install

Now you can run the program by typing: edfbrowser
@@ -95,7 +97,7 @@ openSUSE: sudo zypper install -t pattern devel_basis
#                                                                                           #
# This will not mess with your system libraries. The new compiled libraries will be stored  #
#                                                                                           #
# in a new and separate directory: /usr/local/Qt-5.9.4                                      #
# in a new and separate directory: /usr/local/Qt-5.9.5                                      #
#                                                                                           #
# It will not interfere with other Qt programs.                                             #
#                                                                                           #
@@ -105,14 +107,14 @@ mkdir Qt5-source

cd Qt5-source

wget http://ftp1.nluug.nl/languages/qt/official_releases/qt/5.9/5.9.4/single/qt-everywhere-opensource-src-5.9.4.tar.xz
wget http://ftp1.nluug.nl/languages/qt/official_releases/qt/5.9/5.9.5/single/qt-everywhere-opensource-src-5.9.5.tar.xz

here is a list of download mirrors: https://download.qt.io/static/mirrorlist/
The Qt source package you are going to need is: qt-everywhere-opensource-src-5.9.4.tar.xz
The Qt source package you are going to need is: qt-everywhere-opensource-src-5.9.5.tar.xz

tar -xvf qt-everywhere-opensource-src-5.9.4.tar.xz
tar -xvf qt-everywhere-opensource-src-5.9.5.tar.xz

cd qt-everywhere-opensource-src-5.9.4
cd qt-everywhere-opensource-src-5.9.5

./configure -v -release -opensource -confirm-license -c++std c++11 -static -accessibility -fontconfig -skip qtdeclarative -skip qtconnectivity -skip qtmultimedia -no-qml-debug -qt-zlib -no-mtdev -no-journald -qt-libpng -qt-libjpeg -system-freetype -qt-harfbuzz -no-openssl -no-libproxy -no-glib -nomake examples -nomake tests -no-compile-examples -cups -no-evdev -no-dbus -no-eglfs -qreal double -no-opengl -skip qtlocation -skip qtsensors -skip qtwayland -skip qtgamepad -skip qtserialbus

@@ -126,7 +128,7 @@ sudo make install

Now go to the directory that contains the EDFbrowser sourcecode and enter the following commands:

/usr/local/Qt-5.9.4/bin/qmake
/usr/local/Qt-5.9.5/bin/qmake

make -j8

+3 −6
Original line number Diff line number Diff line
@@ -791,8 +791,6 @@ void UI_Annotationswindow::updateList(void)

  QString string;

  QByteArray ba;

  struct annotationblock *annot;

  struct annotation_list *annot_list;
@@ -842,8 +840,7 @@ void UI_Annotationswindow::updateList(void)

    string = QString::fromUtf8(annot->annotation);

    ba = string.toUtf8();
    str_tmp = ba.data();
    str_tmp = string.toUtf8().data();

    len = 0;
    for(i=0; ; i++)
@@ -1014,14 +1011,14 @@ void UI_Annotationswindow::annotation_selected(QListWidgetItem * item, int cente

  if(mainwindow->video_player->status == VIDEO_STATUS_PLAYING)
  {
    mainwindow->video_player_seek((int)((annot->onset - (mainwindow->pagetime / 2) - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION));
    mainwindow->video_player_seek((int)((annot->onset - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION));

    return;
  }

  if(mainwindow->video_player->status == VIDEO_STATUS_PAUSED)
  {
    mainwindow->video_player_seek((int)((annot->onset - (mainwindow->pagetime / 2) - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION));
    mainwindow->video_player_seek((int)((annot->onset - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION));
  }

  if(mainwindow->viewtime_sync==VIEWTIME_SYNCED_OFFSET)
+1 −1
Original line number Diff line number Diff line
@@ -516,7 +516,7 @@ void UI_AveragerWindow::process_avg(struct signalcompblock *signalcomp)

  for(s=signalcomp->sample_start; s<signalcomp->samples_on_screen; s++)
  {
    if(s>signalcomp->sample_stop)  break;
    if(s>=signalcomp->sample_stop)  break;

    dig_value = 0.0;
    s2 = s + signalcomp->sample_timeoffset - signalcomp->sample_start;
+4 −2
Original line number Diff line number Diff line
@@ -778,7 +778,8 @@ struct edfhdrblock * EDFfileCheck::check_edf_file(FILE *inputfile, char *txt_str

    if(is_number(scratchpad))
    {
      sprintf(txt_string, "Error, physical minimum field of signal %i is invalid: \"%s\".",
      sprintf(txt_string, "Error, physical minimum field of signal %i is invalid: \"%s\".\n"
                          "You can try to fix it with the header editor, check the manual for the procedure.",
             i + 1,
             scratchpad);
      free(edf_hdr);
@@ -813,7 +814,8 @@ struct edfhdrblock * EDFfileCheck::check_edf_file(FILE *inputfile, char *txt_str

    if(is_number(scratchpad))
    {
      sprintf(txt_string, "Error, physical maximum field of signal %i is invalid: \"%s\".",
      sprintf(txt_string, "Error, physical maximum field of signal %i is invalid: \"%s\".\n"
                          "You can try to fix it with the header editor, check the manual for the procedure.",
             i + 1,
             scratchpad);
      free(edf_hdr);
+36 −24
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@
    <meta name="description" content="EDFbrowser manual">
</head><body>

<h1>EDFbrowser 1.63 manual</h1>
<h1>EDFbrowser 1.64 manual</h1>

<p><br></p>

@@ -115,14 +115,16 @@
<h3><a name="Video"></a>Video</h3>

<p>
  (Linux version only)<br>
  Use the Filemenu to start (or stop) a video. After the video has been started, you can use the slider<br>
  on the bottom to change the file position or use page-up/page-down.<br><br>
  In order for EDFbrowser to be able to start a video, the <a href="https://www.videolan.org/">VLC mediaplayer</a> must be installed on your system.<br>
  On windows: make sure VLC is installed in: C:\Program Files\VideoLAN\VLC\ or C:\Program Files (x86)\VideoLAN\VLC\<br><br>

  In order for EDFbrowser to be able to start a video, the VLC mediaplayer needs to be installed on your system.<br><br>
  Open an EDF or BDF file and select/setup your montage as usual. Then press Ctrl-Shift-v (or go to File -> Start video)<br>
  to select a video. After the video has started, you can use the slider on the bottom to change the file position or<br>
  use page-up/page-down.<br><br>

  Also, the startdate and starttime needs to be set in the filename of the video (for synchronization).<br>
  The following text is copied from <a href="http://www.edfplus.info/specs/video.html">http://www.edfplus.info/specs/video.html</a> :<br><br>
<i>
  Video filenames of the same patient must start with the same patient identification,<br>
  followed by the start-date and -time of the video, as follows:<br>
  NL_012348168_03-MAY-2013_14h45m49.013s_Video.ogv<br>
@@ -134,7 +136,16 @@
  so midnight is coded as 00h00m00s. The decimal fraction of a second (noted here by .XXXX) can have any lenght and can also be omitted<br>
  (for example in 06h37m12s). The addition _Video is not obligatory and neither do we standardize any video format such as ogv.<br>
  So, a perfectly OK video filename would also be:<br>
  NL_012348168_03-MAY-2013_14h45m49.013s.mpeg
  NL_012348168_03-MAY-2013_14h45m49.013s.mpeg<br><br>
</i>
  Note: EDFbrowser will ignore the part of the filename directly before the startdate and directly after the starttime.<br><br>

  If the filename of the video does not contain the startdate and starttime, you can still continue to use the video but<br>
  in that case EDFbrowser will assume that the starttime of the video coincides with the starttime of the EDF file.<br><br>

  You can resize the video window by dragging the bottom-right corner with the mouse.<br>
  All other operations like stop, pause, etc. must be done by using the videoplayer controls (buttons) in EDFbrowser.<br>
  Do not use the control interface of VLC, it will interfere with EDFbrowser.
</p>

<p><br></p>
@@ -406,7 +417,7 @@
  The Power Spectral Density of the corresponding signal will be shown (uV)<sup>2</sup>/FFT-resolution.<br>
  The amount of datasamples used to perform the FFT equals the data which is<br>
  shown on the screen. Increasing or decreasing the FFT blocksize affects the FFT resolution.<br>
  The FFT blocksize can be set in Settings menu.<br>
  The default FFT blocksize can be set in Settings menu.<br>
  So, if the samplefrequency of the selected signal is 256Hz, the timescale is set to 10 seconds and<br>
  the FFT-blocksize is 512, the number of FFT's performed is (10 seconds x 256 Hz) / 512 = 5.<br>
  The output of the five FFT's are averaged.<br>
@@ -484,7 +495,7 @@
 - Dynamic powerline interference subtraction from biosignals<br>
   Ivaylo I. Christov<br>
<br>
  The subtraction method extracts the powerline interference noise during a<br>
  The subtraction method extracts the powerline interference noise (50/60Hz and harmonics) during a<br>
  a linear region between two consecutive QRS complexes and stores it in a buffer.<br>
  The reference noise from the buffer is used to subtract it from the signal outside<br>
  the linear region i.e. during the QRS complex.<br>
@@ -492,7 +503,7 @@
  integer multiple of the powerline frequency.<br>
  In case they are synchronized, this method will remove also the harmonics of the<br>
  powerline frequency. In that case extra notch-filters for the harmonics are<br>
  not necessary. The advantage of this method is that it will not cause ringing<br>
  not necessary. The advantage of this method is that it will not cause ringing or other distortion<br>
  in the waveform of the QRS complex (like notch-filters do).<br>
<br>
  The following rules apply:<br>
@@ -502,7 +513,7 @@
<br>
  Note: Good results will be achieved when the accuracy of the recording sampleclock is &lt=100ppm.<br>
  A nearly perfect result will achieved when the recording sampleclock is synchronized with the<br>
  powerlinefrequency in hardware (e.g. using a PLL).
  powerlinefrequency in hardware (e.g. using a Phase Locked Loop).
</p>

<p><br></p>
@@ -847,7 +858,7 @@
<br>
  filename_data.txt contains a separate line for each sampletime that occurs.<br>
  Note to windows-users: these lines are separated by a linefeed only,<br>
  so the file does NOT look OK in Notepad, use Wordpad instead.<br>
  so the file does NOT look OK in Notepad, use a real editor instead.<br>
<br>
  Each line contains the comma-separated values of the sampletime and of all<br>
  samples that were taken at that time.<br>
@@ -1081,7 +1092,7 @@
<br>
  - the data in the ASCII-file must be presented in their physical dimension (i.e. uV, bpm, mmHg, etc.)<br>
  - the data in the ASCII-file must be organised in columns and rows<br>
  - a row must contain values from different signals/channels aquired at the same sampletime<br>
  - a row must contain values from different signals/channels acquired at the same sampletime<br>
  - a column must represent a continuous sampled signal/channel<br>
  - all signals/channels must have the same samplefrequency<br>
  - the timeinterval between two consecutive samples of the same signal/channel must have a stable value (fixed samplerate)<br>
@@ -1109,17 +1120,17 @@
<br>
  - label (name of the signal/channel i.e. FP1, SaO2, Heartrate, etc.)<br>
  - physical maximum (the maximum physical value that can occur, i.e. the maximum inputlevel<br>
  of the aquisition equipment. A common value in EEG applications is 3000 uV)<br>
  physical minimum will be equal to physical maximum. for example, if you enter 3000, the<br>
  of the acquisition equipment. A common value in EEG applications is 3000 uV)<br>
  Physical minimum will be equal to physical maximum. For example, if you enter 3000, the<br>
  range will be from +3000 to -3000<br>
  - physical dimension (i.e. uV, %, mmHg, bpm)<br>
  - physical dimension (units, e.g. uV, mV, %, mmHg, bpm)<br>
  - multiplier is normally 1.0. Some programs exports their ascii-data expressed in Volts while<br>
  the signal is in the microVolt range. By changing the multiplier you can add gain to the signal before converting.<br>
  For example, if the ascii-data is expressed in Volts and the signal is in the microVolt range (EEG),<br>
  set the physical maximum to 3000, set the physical dimension to "uV" and set the multiplier to 1000000.<br>
<br>
  It is possible to exclude columns, by unchecking the corresponding row in the signals-table,<br>
  this can be useful when a column contains a time/datestamp or when you don't want to include<br>
  It is possible to exclude columns, by unchecking the corresponding row in the signals-table.<br>
  This can be useful when a column contains a time/datestamp or when you don't want to include<br>
  a particular signal in the EDF/BDF-file.<br>
<br>
  Click on the startbutton to start the conversion.<br>
@@ -1127,7 +1138,7 @@
  Click on the loadbutton to load parameters from a template.<br>
<br>
  Note: It is important to enter the right value in the "physical maximum" field.<br>
  If you to choose this value too small, the top of the signal will be cut off.<br>
  If you to choose this value too small, the top of the signal will clip at the peaks.<br>
  If you choose this value too big, small values of the signal will not be visible<br>
  and the signal will look coarse.<br>
  The ideal value for the "physical maximum" is just above (or equal to) the maximum value that can occur,<br>
@@ -1608,23 +1619,24 @@
<h3><a name="Annotation_editor">Annotation editor</a></h3>

<p>
  The annotation editor can be used to add, remove or edit annotations.<br>
  The annotation editor can be used to create, edit or delete annotations.<br>
  Start the editor via menu -&gt; Window -&gt; Annotation editor.<br>
  To create a new annotation, write the text of the annotation in the description window and set<br>
  the onset time. You can set the duration time as well. If the duration time is unknown or not<br>
  applicable, set it to the value -1. Now click on the create button.<br><br>
  applicable, set it to -1. Now click on the create button.<br><br>

  Instead of manually entering the onset time, you can use a <a href="#Crosshairs">crosshair</a>.<br>
  Drag and drop the crosshair and the onset time will be automatically adjusted.<br>
  You can use a second <a href="#Crosshairs">crosshair</a> to adjust the duration time.<br><br>
  You can use a second <a href="#Crosshairs">crosshair</a> to adjust the duration of the event.<br><br>

  To modify an existent annotation, click on the annotation in the annotation window.<br>
  Adjust the text and or time, manually or drag and drop the annotation marker.<br><br>
  Adjust the text and/or time, manually or drag and drop the annotation marker with the mouse.<br><br>

  To delete an annotation, click on the annotation in the annotation window and click<br>
  on the delete button.<br><br>
  on the delete button (or hit Del on your keyboard.<br>
  Pay attention, there's no undo.<br><br>

  When you are finished editing annotations, save the file in menu -&gt; File -&gt; Save.<br>
  When you have finished editing annotations, save the file in menu -&gt; File -&gt; Save.<br>
  Your file will not be altered, instead a copy of your file with the edited annotations<br>
  will be made.<br><br>

Loading