changeset 399:ffd1a89a68fa cxx11-types

Build fixes etc
author Chris Cannam
date Wed, 11 Mar 2015 11:54:29 +0000
parents 7178bb4dcdfb
children 4b9b7ff3f19c
files .hgsubstate configure configure.ac platform-dataquay.pri src/Analyser.cpp src/Analyser.h src/MainWindow.cpp src/MainWindow.h src/main.cpp
diffstat 9 files changed, 110 insertions(+), 113 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsubstate	Mon Jun 16 13:04:09 2014 +0100
+++ b/.hgsubstate	Wed Mar 11 11:54:29 2015 +0000
@@ -1,7 +1,7 @@
 e32a354434aa5fa7440efa17b716aacd761049fa chp
-236814e07bd07473958c1ff89103124536a0c3c8 dataquay
+d16f0fd6db6104d87882bc43788a3bb1b0f8c528 dataquay
 062f0e49187789937b6162d2904b1af20872ed5e pyin
 553a5f65ef64811747a6613f759622d655db63c1 sv-dependency-builds
-f5c914661f6fdc7f05c2c980b0d21350d5933428 svapp
-3efc20c59a947a137ed7fc715b2a3b0de6c02200 svcore
-584b11df8e4f3447484153ed6bc391e370856933 svgui
+7fa74786dec5423978a746288feccbb7127396d3 svapp
+48e4ffa9fb4841cbbed91d8d304604a4552c5539 svcore
+6e2a034f7117d196152bc2647d1f1cc84585d5e0 svgui
--- a/configure	Mon Jun 16 13:04:09 2014 +0100
+++ b/configure	Wed Mar 11 11:54:29 2015 +0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Tony 0.1.
+# Generated by GNU Autoconf 2.69 for Tony 0.6.
 #
 # Report bugs to <cannam@all-day-breakfast.com>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='Tony'
 PACKAGE_TARNAME='tony'
-PACKAGE_VERSION='0.1'
-PACKAGE_STRING='Tony 0.1'
+PACKAGE_VERSION='0.6'
+PACKAGE_STRING='Tony 0.6'
 PACKAGE_BUGREPORT='cannam@all-day-breakfast.com'
 PACKAGE_URL=''
 
@@ -1333,7 +1333,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Tony 0.1 to adapt to many kinds of systems.
+\`configure' configures Tony 0.6 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1394,7 +1394,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Tony 0.1:";;
+     short | recursive ) echo "Configuration of Tony 0.6:";;
    esac
   cat <<\_ACEOF
 
@@ -1545,7 +1545,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Tony configure 0.1
+Tony configure 0.6
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1885,7 +1885,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Tony $as_me 0.1, which was
+It was created by Tony $as_me 0.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4222,9 +4222,10 @@
 CXXFLAGS_MINIMAL="$AUTOCONF_CXXFLAGS"
 
 if test "x$GCC" = "xyes"; then
-        CXXFLAGS_DEBUG="-Wall -Woverloaded-virtual -Wextra -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -g -pipe"
-   	CXXFLAGS_RELEASE="-g0 -O2 -Wall -pipe"
-   	CXXFLAGS_MINIMAL="-g0 -O0"
+   	CXXFLAGS_ANY="-std=c++11 -Wall -Wextra -Werror -Woverloaded-virtual -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -Wconversion -pipe"
+        CXXFLAGS_DEBUG="$CXXFLAGS_ANY -g"
+   	CXXFLAGS_RELEASE="$CXXFLAGS_ANY -g0 -O2"
+   	CXXFLAGS_MINIMAL="$CXXFLAGS_ANY -g0 -O0"
 fi
 
 CXXFLAGS_BUILD="$CXXFLAGS_RELEASE"
@@ -7901,7 +7902,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Tony $as_me 0.1, which was
+This file was extended by Tony $as_me 0.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -7954,7 +7955,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Tony config.status 0.1
+Tony config.status 0.6
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
--- a/configure.ac	Mon Jun 16 13:04:09 2014 +0100
+++ b/configure.ac	Wed Mar 11 11:54:29 2015 +0000
@@ -50,9 +50,10 @@
 CXXFLAGS_MINIMAL="$AUTOCONF_CXXFLAGS"
 
 if test "x$GCC" = "xyes"; then
-        CXXFLAGS_DEBUG="-Wall -Woverloaded-virtual -Wextra -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -g -pipe"
-   	CXXFLAGS_RELEASE="-g0 -O2 -Wall -pipe"
-   	CXXFLAGS_MINIMAL="-g0 -O0"
+   	CXXFLAGS_ANY="-std=c++11 -Wall -Wextra -Werror -Woverloaded-virtual -Wformat-nonliteral -Wformat-security -Winit-self -Wswitch-enum -Wconversion -pipe"
+        CXXFLAGS_DEBUG="$CXXFLAGS_ANY -g"
+   	CXXFLAGS_RELEASE="$CXXFLAGS_ANY -g0 -O2"
+   	CXXFLAGS_MINIMAL="$CXXFLAGS_ANY -g0 -O0"
 fi
 
 CXXFLAGS_BUILD="$CXXFLAGS_RELEASE"
--- a/platform-dataquay.pri	Mon Jun 16 13:04:09 2014 +0100
+++ b/platform-dataquay.pri	Wed Mar 11 11:54:29 2015 +0000
@@ -23,6 +23,7 @@
 
 DEFINES -= USE_REDLAND
 QMAKE_CXXFLAGS -= -I/usr/include/rasqal -I/usr/include/raptor2
+QMAKE_CXXFLAGS -= -Werror
 EXTRALIBS -= -lrdf
 
 DEFINES += USE_SORD
--- a/src/Analyser.cpp	Mon Jun 16 13:04:09 2014 +0100
+++ b/src/Analyser.cpp	Wed Mar 11 11:54:29 2015 +0000
@@ -158,14 +158,14 @@
 }
 
 bool
-Analyser::getDisplayFrequencyExtents(float &min, float &max)
+Analyser::getDisplayFrequencyExtents(double &min, double &max)
 {
     if (!m_layers[Spectrogram]) return false;
     return m_layers[Spectrogram]->getDisplayExtents(min, max);
 }
 
 bool
-Analyser::setDisplayFrequencyExtents(float min, float max)
+Analyser::setDisplayFrequencyExtents(double min, double max)
 {
     if (!m_layers[Spectrogram]) return false;
     m_layers[Spectrogram]->setDisplayExtents(min, max);
@@ -477,19 +477,22 @@
     t.setBlockSize(2048);
 
     if (range.isConstrained()) {
-        t.setParameter("minfreq", range.min);
-        t.setParameter("maxfreq", range.max);
+        t.setParameter("minfreq", float(range.min));
+        t.setParameter("maxfreq", float(range.max));
         t.setBlockSize(4096);
     }
 
     // get time stamps that align with the 256-sample grid of the original extraction
-    int startSample = ceil(sel.getStartFrame()*1.0/256) * 256;
-    int endSample   = ceil(sel.getEndFrame()*1.0/256) * 256;
+    const sv_frame_t grid = 256;
+    sv_frame_t startSample = (sel.getStartFrame() / grid) * grid;
+    if (startSample < sel.getStartFrame()) startSample += grid;
+    sv_frame_t endSample = (sel.getEndFrame() / grid) * grid;
+    if (endSample < sel.getEndFrame()) endSample += grid;
     if (!range.isConstrained()) {
-        startSample -= 4*256; // 4*256 is for 4 frames offset due to timestamp shift
-        endSample   -= 4*256;
+        startSample -= 4*grid; // 4*256 is for 4 frames offset due to timestamp shift
+        endSample   -= 4*grid;
     } else {
-        endSample   -= 9*256; // MM says: not sure what the CHP plugin does there
+        endSample   -= 9*grid; // MM says: not sure what the CHP plugin does there
     }
     RealTime start = RealTime::frame2RealTime(startSample, m_fileModel->getSampleRate()); 
     RealTime end = RealTime::frame2RealTime(endSample, m_fileModel->getSampleRate());
@@ -773,13 +776,13 @@
 }
 
 void
-Analyser::getEnclosingSelectionScope(size_t f, size_t &f0, size_t &f1)
+Analyser::getEnclosingSelectionScope(sv_frame_t f, sv_frame_t &f0, sv_frame_t &f1)
 {
     FlexiNoteLayer *flexiNoteLayer = 
         qobject_cast<FlexiNoteLayer *>(m_layers[Notes]);
 
-    int f0i = f, f1i = f;
-    size_t res = 1;
+    sv_frame_t f0i = f, f1i = f;
+    int res = 1;
 
     if (!flexiNoteLayer) {
         f0 = f1 = f;
--- a/src/Analyser.h	Mon Jun 16 13:04:09 2014 +0100
+++ b/src/Analyser.h	Wed Mar 11 11:54:29 2015 +0000
@@ -55,8 +55,8 @@
 		       
     void setIntelligentActions(bool);
 
-    bool getDisplayFrequencyExtents(float &min, float &max);
-    bool setDisplayFrequencyExtents(float min, float max);
+    bool getDisplayFrequencyExtents(double &min, double &max);
+    bool setDisplayFrequencyExtents(double min, double max);
 
     // Return completion %age for initial analysis -- 100 means it's done
     int getInitialAnalysisCompletion();
@@ -100,14 +100,14 @@
     float getPan(Component c) const;
     void setPan(Component c, float pan);
 
-    void getEnclosingSelectionScope(size_t f, size_t &f0, size_t &f1);
+    void getEnclosingSelectionScope(sv_frame_t f, sv_frame_t &f0, sv_frame_t &f1);
 
     struct FrequencyRange {
         FrequencyRange() : min(0), max(0) { }
-        FrequencyRange(float min_, float max_) : min(min_), max(max_) { }
+        FrequencyRange(double min_, double max_) : min(min_), max(max_) { }
         bool isConstrained() const { return min != max; }
-        float min;
-        float max;
+        double min;
+        double max;
     };
 
     /**
--- a/src/MainWindow.cpp	Mon Jun 16 13:04:09 2014 +0100
+++ b/src/MainWindow.cpp	Wed Mar 11 11:54:29 2015 +0000
@@ -88,7 +88,7 @@
 using std::vector;
 
 
-MainWindow::MainWindow(bool withAudioOutput, bool withOSCSupport) :
+MainWindow::MainWindow(bool withAudioOutput) :
     MainWindowBase(withAudioOutput, false),
     m_overview(0),
     m_mainMenusCreated(false),
@@ -182,8 +182,8 @@
     // variable
     m_paneStack->setLayoutStyle(PaneStack::NoPropertyStacks);
     m_paneStack->setShowPaneAccessories(false);
-    connect(m_paneStack, SIGNAL(doubleClickSelectInvoked(size_t)),
-            this, SLOT(doubleClickSelectInvoked(size_t)));
+    connect(m_paneStack, SIGNAL(doubleClickSelectInvoked(sv_frame_t)),
+            this, SLOT(doubleClickSelectInvoked(sv_frame_t)));
     scroll->setWidget(m_paneStack);
 
     m_overview = new Overview(frame);
@@ -1238,11 +1238,9 @@
 void
 MainWindow::moveByOneNote(bool right, bool doSelect)
 {
-    int frame = m_viewManager->getPlaybackFrame();
+    sv_frame_t frame = m_viewManager->getPlaybackFrame();
     cerr << "MainWindow::moveByOneNote startframe: " << frame << endl;
     
-    Pane *p = m_analyser->getPane();
-
     bool isAtSelectionBoundary = false;
     MultiSelection::SelectionList selections = m_viewManager->getSelections();
     if (!selections.empty()) {
@@ -1263,22 +1261,20 @@
     if (points.empty()) return;
 
     FlexiNoteModel::PointList::iterator i = points.begin();
-    std::set<int> snapFrames;
+    std::set<sv_frame_t> snapFrames;
     snapFrames.insert(0);
     while (i != points.end()) {
         snapFrames.insert(i->frame);
         snapFrames.insert(i->frame + i->duration + 1);
         ++i;
     }
-    std::set<int>::iterator i2;
-    if (snapFrames.find(frame) == snapFrames.end())
-    {
+    std::set<sv_frame_t>::iterator i2;
+    if (snapFrames.find(frame) == snapFrames.end()) {
         // we're not on an existing snap point, so go to previous
         snapFrames.insert(frame);
     }
     i2 = snapFrames.find(frame);
-    if (right)
-    {
+    if (right) {
         i2++;
         if (i2 == snapFrames.end()) i2--;
     } else {
@@ -1345,9 +1341,6 @@
     bool haveSelection = 
         (m_viewManager &&
          !m_viewManager->getSelections().empty());
-    bool haveCurrentEditableLayer =
-        (haveCurrentLayer &&
-         currentLayer->isLayerEditable());
     bool haveCurrentTimeInstantsLayer = 
         (haveCurrentLayer &&
          qobject_cast<TimeInstantLayer *>(currentLayer));
@@ -1356,10 +1349,6 @@
          qobject_cast<TimeValueLayer *>(currentLayer));
     bool pitchCandidatesVisible = 
         m_analyser->arePitchCandidatesShown();
-    bool haveHigher =
-        m_analyser->haveHigherPitchCandidate();
-    bool haveLower =
-        m_analyser->haveLowerPitchCandidate();
 
     emit canChangePlaybackSpeed(true);
     int v = m_playSpeed->value();
@@ -1522,9 +1511,9 @@
 void
 MainWindow::editDisplayExtents()
 {
-    float min, max;
-    float vmin = 0;
-    float vmax = getMainModel()->getSampleRate() /2;
+    double min, max;
+    double vmin = 0;
+    double vmax = getMainModel()->getSampleRate() /2;
     
     if (!m_analyser->getDisplayFrequencyExtents(min, max)) {
         //!!!
@@ -1534,13 +1523,16 @@
     RangeInputDialog dialog(tr("Set frequency range"),
                             tr("Enter new frequency range, from %1 to %2 Hz.\nThese values will be rounded to the nearest spectrogram bin.")
                             .arg(vmin).arg(vmax),
-                            "Hz", vmin, vmax, this);
-    dialog.setRange(min, max);
+                            "Hz", float(vmin), float(vmax), this);
+    dialog.setRange(float(min), float(max));
 
     if (dialog.exec() == QDialog::Accepted) {
-        dialog.getRange(min, max);
+        float fmin, fmax;
+        dialog.getRange(fmin, fmax);
+        min = fmin;
+        max = fmax;
         if (min > max) {
-            float tmp = max;
+            double tmp = max;
             max = min;
             min = tmp;
         }
@@ -2269,9 +2261,9 @@
 }
 
 void
-MainWindow::doubleClickSelectInvoked(size_t frame)
+MainWindow::doubleClickSelectInvoked(sv_frame_t frame)
 {
-    size_t f0, f1;
+    sv_frame_t f0, f1;
     m_analyser->getEnclosingSelectionScope(frame, f0, f1);
     
     cerr << "MainWindow::doubleClickSelectInvoked(" << frame << "): [" << f0 << "," << f1 << "]" << endl;
@@ -2356,11 +2348,11 @@
         return;
     }
 
-    int f0 = pane->getFrameForX(r.x());
-    int f1 = pane->getFrameForX(r.x() + r.width());
+    sv_frame_t f0 = pane->getFrameForX(r.x());
+    sv_frame_t f1 = pane->getFrameForX(r.x() + r.width());
     
-    float v0 = spectrogram->getFrequencyForY(pane, r.y() + r.height());
-    float v1 = spectrogram->getFrequencyForY(pane, r.y());
+    double v0 = spectrogram->getFrequencyForY(pane, r.y() + r.height());
+    double v1 = spectrogram->getFrequencyForY(pane, r.y());
 
     cerr << "MainWindow::regionOutlined: frame " << f0 << " -> " << f1 
          << ", frequency " << v0 << " -> " << v1 << endl;
@@ -2571,7 +2563,7 @@
             (tr("Form Note from Selection"), true);
         for (MultiSelection::SelectionList::iterator k = selections.begin();
              k != selections.end(); ++k) {
-            if (!model->getNotes(k->getStartFrame(), k->getEndFrame()).empty()) {
+            if (!model->getNotesWithin(k->getStartFrame(), k->getEndFrame()).empty()) {
                 layer->splitNotesAt(m_analyser->getPane(), k->getStartFrame());
                 layer->splitNotesAt(m_analyser->getPane(), k->getEndFrame());
                 layer->mergeNotes(m_analyser->getPane(), *k, false);
@@ -2591,14 +2583,14 @@
 {
     PlaySpeedRangeMapper mapper(0, 200);
 
-    float percent = m_playSpeed->mappedValue();
-    float factor = mapper.getFactorForValue(percent);
+    double percent = m_playSpeed->mappedValue();
+    double factor = mapper.getFactorForValue(percent);
 
     cerr << "speed = " << position << " percent = " << percent << " factor = " << factor << endl;
 
     bool something = (position != 100);
 
-    int pc = lrintf(percent);
+    int pc = int(lrint(percent));
 
     if (!something) {
         contextHelpChanged(tr("Playback speed: Normal"));
@@ -2664,14 +2656,14 @@
 void
 MainWindow::audioGainChanged(int position)
 {
-    float level = m_gainAudio->mappedValue();
-    float gain = powf(10, level / 20.0);
+    double level = m_gainAudio->mappedValue();
+    double gain = pow(10, level / 20.0);
 
     cerr << "gain = " << gain << " (" << position << " dB)" << endl;
 
     contextHelpChanged(tr("Audio Gain: %1 dB").arg(position));
 
-    m_analyser->setGain(Analyser::Audio, gain);
+    m_analyser->setGain(Analyser::Audio, float(gain));
 
     updateMenuStates();
 } 
@@ -2703,14 +2695,14 @@
 void
 MainWindow::pitchGainChanged(int position)
 {
-    float level = m_gainPitch->mappedValue();
-    float gain = powf(10, level / 20.0);
+    double level = m_gainPitch->mappedValue();
+    double gain = pow(10, level / 20.0);
 
     cerr << "gain = " << gain << " (" << position << " dB)" << endl;
 
     contextHelpChanged(tr("Pitch Gain: %1 dB").arg(position));
 
-    m_analyser->setGain(Analyser::PitchTrack, gain);
+    m_analyser->setGain(Analyser::PitchTrack, float(gain));
 
     updateMenuStates();
 } 
@@ -2742,14 +2734,14 @@
 void
 MainWindow::notesGainChanged(int position)
 {
-    float level = m_gainNotes->mappedValue();
-    float gain = powf(10, level / 20.0);
+    double level = m_gainNotes->mappedValue();
+    double gain = pow(10, level / 20.0);
 
     cerr << "gain = " << gain << " (" << position << " dB)" << endl;
 
     contextHelpChanged(tr("Notes Gain: %1 dB").arg(position));
 
-    m_analyser->setGain(Analyser::Notes, gain);
+    m_analyser->setGain(Analyser::Notes, float(gain));
 
     updateMenuStates();
 } 
@@ -2781,14 +2773,14 @@
 void
 MainWindow::audioPanChanged(int position)
 {
-    float level = m_panAudio->mappedValue();
-    float pan = level/100.f;
+    double level = m_panAudio->mappedValue();
+    double pan = level/100.0;
 
     cerr << "pan = " << pan << " (" << position << ")" << endl;
 
     contextHelpChanged(tr("Audio Pan: %1").arg(position));
 
-    m_analyser->setPan(Analyser::Audio, pan);
+    m_analyser->setPan(Analyser::Audio, float(pan));
 
     updateMenuStates();
 } 
@@ -2820,14 +2812,14 @@
 void
 MainWindow::pitchPanChanged(int position)
 {
-    float level = m_panPitch->mappedValue();
-    float pan = level/100.f;
+    double level = m_panPitch->mappedValue();
+    double pan = level/100.0;
 
     cerr << "pan = " << pan << " (" << position << ")" << endl;
 
     contextHelpChanged(tr("Pitch Pan: %1").arg(position));
 
-    m_analyser->setPan(Analyser::PitchTrack, pan);
+    m_analyser->setPan(Analyser::PitchTrack, float(pan));
 
     updateMenuStates();
 } 
@@ -2859,14 +2851,14 @@
 void
 MainWindow::notesPanChanged(int position)
 {
-    float level = m_panNotes->mappedValue();
-    float pan = level/100.f;
+    double level = m_panNotes->mappedValue();
+    double pan = level/100.0;
 
     cerr << "pan = " << pan << " (" << position << ")" << endl;
 
     contextHelpChanged(tr("Notes Pan: %1").arg(position));
 
-    m_analyser->setPan(Analyser::Notes, pan);
+    m_analyser->setPan(Analyser::Notes, float(pan));
 
     updateMenuStates();
 } 
@@ -2961,8 +2953,9 @@
 }
 
 void
-MainWindow::sampleRateMismatch(size_t requested, size_t actual,
-                               bool willResample)
+MainWindow::sampleRateMismatch(sv_samplerate_t ,
+                               sv_samplerate_t ,
+                               bool )
 {
     updateDescriptionLabel();
 }
@@ -3132,7 +3125,7 @@
 }
 
 void
-MainWindow::modelGenerationWarning(QString transformName, QString message)
+MainWindow::modelGenerationWarning(QString /* transformName */, QString message)
 {
     QMessageBox::warning
         (this, tr("Warning"), message, QMessageBox::Ok);
@@ -3140,7 +3133,8 @@
 
 void
 MainWindow::modelRegenerationFailed(QString layerName,
-                                    QString transformName, QString message)
+                                    QString transformName,
+                                    QString message)
 {
     if (message != "") {
 
@@ -3162,7 +3156,8 @@
 
 void
 MainWindow::modelRegenerationWarning(QString layerName,
-                                     QString transformName, QString message)
+                                     QString /* transformName */,
+                                     QString message)
 {
     QMessageBox::warning
         (this, tr("Warning"), tr("<b>Warning when regenerating layer</b><p>When regenerating the derived layer \"%1\" using new data model as input:<p>%2").arg(layerName).arg(message), QMessageBox::Ok);
@@ -3188,7 +3183,7 @@
 }
 
 void
-MainWindow::handleOSCMessage(const OSCMessage &message)
+MainWindow::handleOSCMessage(const OSCMessage &)
 {
     cerr << "MainWindow::handleOSCMessage: Not implemented" << endl;
 }
--- a/src/MainWindow.h	Mon Jun 16 13:04:09 2014 +0100
+++ b/src/MainWindow.h	Wed Mar 11 11:54:29 2015 +0000
@@ -27,8 +27,7 @@
     Q_OBJECT
 
 public:
-    MainWindow(bool withAudioOutput = true,
-               bool withOSCSupport = true);
+    MainWindow(bool withAudioOutput = true);
     virtual ~MainWindow();
 
 signals:
@@ -86,7 +85,7 @@
     virtual void precisionAnalysisToggled();
     virtual void lowampAnalysisToggled();
 
-    virtual void doubleClickSelectInvoked(size_t);
+    virtual void doubleClickSelectInvoked(sv_frame_t);
     virtual void abandonSelection();
 
     virtual void paneAdded(Pane *);
@@ -134,7 +133,7 @@
     virtual void decreaseNotesPan();
     virtual void restoreNormalNotesPan();
 
-    virtual void sampleRateMismatch(size_t, size_t, bool);
+    virtual void sampleRateMismatch(sv_samplerate_t, sv_samplerate_t, bool);
     virtual void audioOverloadPluginDisabled();
     virtual void audioTimeStretchMultiChannelDisabled();
 
@@ -229,7 +228,7 @@
     KeyReference  *m_keyReference;
     VersionTester *m_versionTester;
 
-    int m_selectionAnchor;
+    sv_frame_t m_selectionAnchor;
 
     Analyser::FrequencyRange m_pendingConstraint;
 
--- a/src/main.cpp	Mon Jun 16 13:04:09 2014 +0100
+++ b/src/main.cpp	Wed Mar 11 11:54:29 2015 +0000
@@ -100,9 +100,7 @@
     QStringList m_filepathQueue;
 
     virtual bool event(QEvent *event) {
-        switch (event->type()) {
-        case QEvent::FileOpen:
-        {
+        if (event->type() == QEvent::FileOpen) {
             QString path = static_cast<QFileOpenEvent *>(event)->file();
             if (m_readyForFiles) {
                 handleFilepathArgument(path, NULL);
@@ -110,8 +108,7 @@
                 m_filepathQueue.append(path);
             }
             return true;
-        }
-        default:
+        } else {
             return QApplication::event(event);
         }
     }
@@ -152,7 +149,7 @@
 
     if (args.contains("--help") || args.contains("-h") || args.contains("-?")) {
         std::cerr << QApplication::tr(
-            "\nTony is a program for interactive note and pitch analysis and annotation.\n\nUsage:\n\n  %1 [--no-audio] [--no-osc] [<file> ...]\n\n  --no-audio: Do not attempt to open an audio output device\n  <file>: One or more Tony (.ton) and audio files may be provided.\n").arg(argv[0]).toStdString() << std::endl;
+            "\nTony is a program for interactive note and pitch analysis and annotation.\n\nUsage:\n\n  %1 [--no-audio] [<file> ...]\n\n  --no-audio: Do not attempt to open an audio output device\n  <file>: One or more Tony (.ton) and audio files may be provided.\n").arg(argv[0]).toStdString() << std::endl;
         exit(2);
     }
 
@@ -198,7 +195,7 @@
     qRegisterMetaType<size_t>("size_t");
     qRegisterMetaType<PropertyContainer::PropertyName>("PropertyContainer::PropertyName");
 
-    MainWindow *gui = new MainWindow(audioOutput, false); // no osc support
+    MainWindow *gui = new MainWindow(audioOutput);
     application.setMainWindow(gui);
     if (splash) {
         QObject::connect(gui, SIGNAL(hideSplash()), splash, SLOT(hide()));
@@ -284,7 +281,7 @@
 
     if (path.endsWith("ton")) {
         if (!haveSession) {
-            status = m_mainWindow->openSessionFile(path);
+            status = m_mainWindow->openSessionPath(path);
             if (status == MainWindow::FileOpenSucceeded) {
                 haveSession = true;
                 haveMainModel = true;
@@ -296,18 +293,18 @@
     }
     if (status != MainWindow::FileOpenSucceeded) {
         if (!haveMainModel) {
-            status = m_mainWindow->open(path, MainWindow::ReplaceSession);
+            status = m_mainWindow->openPath(path, MainWindow::ReplaceSession);
             if (status == MainWindow::FileOpenSucceeded) {
                 haveMainModel = true;
             }
         } else {
             if (haveSession && !havePriorCommandLineModel) {
-                status = m_mainWindow->open(path, MainWindow::AskUser);
+                status = m_mainWindow->openPath(path, MainWindow::AskUser);
                 if (status == MainWindow::FileOpenSucceeded) {
                     havePriorCommandLineModel = true;
                 }
             } else {
-                status = m_mainWindow->open(path, MainWindow::CreateAdditionalModel);
+                status = m_mainWindow->openPath(path, MainWindow::CreateAdditionalModel);
             }
         }
     }