Hello community,

here is the log from the commit of package qmmp for openSUSE:Factory checked in 
at 2016-11-10 13:26:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qmmp (Old)
 and      /work/SRC/openSUSE:Factory/.qmmp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qmmp"

Changes:
--------
--- /work/SRC/openSUSE:Factory/qmmp/qmmp.changes        2016-10-06 
12:45:59.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.qmmp.new/qmmp.changes   2016-11-10 
13:27:00.000000000 +0100
@@ -1,0 +2,12 @@
+Wed Nov  9 22:12:36 UTC 2016 - [email protected]
+
+- Update to version 1.1.5:
+  * Add FFmpeg 3.2 support.
+  * Fix file downloading issue in the http plugin.
+  * Fix directory selection in the qsui plugin.
+  * Fix a possible segmentation fault.
+  * Fix command line option '--pl-repeat-toggle'.
+  * Fix some cppcheck warnings.
+  * Change a file dialogue form.
+
+-------------------------------------------------------------------

Old:
----
  qmmp-1.1.4.tar.bz2

New:
----
  qmmp-1.1.5.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qmmp.spec ++++++
--- /var/tmp/diff_new_pack.4ks2pQ/_old  2016-11-10 13:27:01.000000000 +0100
+++ /var/tmp/diff_new_pack.4ks2pQ/_new  2016-11-10 13:27:01.000000000 +0100
@@ -21,7 +21,7 @@
 %bcond_with mad
 %bcond_with restricted
 Name:           qmmp
-Version:        1.1.4
+Version:        1.1.5
 Release:        0
 Summary:        Qt-based Multimedia Player
 License:        GPL-2.0+
@@ -101,8 +101,8 @@
 
 %package -n lib%{name}-plugins
 Summary:        Plugins for libqmmp
-Group:          System/Libraries
 # Suggests instead of Recommends since MPlayer is a too big dependency.
+Group:          System/Libraries
 Suggests:       lib%{name}-plugin-mplayer
 Provides:       %{name}(%{sover})(Input)
 Provides:       %{name}(%{sover})(Output)
@@ -156,14 +156,14 @@
   -DUSE_HAL=OFF                       \
   -DUSE_OSS=OFF                       \
   -DUSE_OSS4=OFF
-make %{?_smp_mflags}
+make %{?_smp_mflags} V=1
 
 %install
 %cmake_install
 
 %post
-%icon_theme_cache_post
 %desktop_database_post
+%icon_theme_cache_post
 
 %postun
 %desktop_database_postun

++++++ qmmp-1.1.4.tar.bz2 -> qmmp-1.1.5.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/ChangeLog new/qmmp-1.1.5/ChangeLog
--- old/qmmp-1.1.4/ChangeLog    2016-10-04 11:49:54.000000000 +0200
+++ new/qmmp-1.1.5/ChangeLog    2016-11-09 06:57:58.000000000 +0100
@@ -1216,3 +1216,12 @@
 * fixed support of skins UTF-16 with encoded pledit.txt
 * fixed 'index out of range' warning
 * fixed typo in the qsui plugin
+
+Version 1.1.5
+* added ffmpeg 3.2 support
+* fixed file downloading issue in the http plugin
+* fixed directory selection in the qsui plugin
+* fixed possible segmentation fault
+* fixed command line option '--pl-repeat-toggle'
+* fixed some cppcheck warnings
+* changed file dialog form
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/ChangeLog.rus new/qmmp-1.1.5/ChangeLog.rus
--- old/qmmp-1.1.4/ChangeLog.rus        2016-10-04 11:49:54.000000000 +0200
+++ new/qmmp-1.1.5/ChangeLog.rus        2016-11-09 06:57:58.000000000 +0100
@@ -1218,3 +1218,12 @@
 * исправлена поддержка обложек с файлом pledit.txt в кодировке UTF-16
 * исправлено предупреждение 'index out of range'
 * исправлена опечатка в интерфейсе qsui
+
+Версия 1.1.5
+* добавлена поддержка ffmpeg 3.2
+* устранена проблема с загрузкой файлов в модуле http
+* исправлен выбор директорий в модуле qsui
+* исправлена возможная ошибка сегментации
+* исправлена опция командной строки '--pl-repeat-toggle'
+* исправлены некоторые предупреждения cppcheck
+* изменена форма файлового диалога
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/ChangeLog.svn new/qmmp-1.1.5/ChangeLog.svn
--- old/qmmp-1.1.4/ChangeLog.svn        2016-10-04 11:49:54.000000000 +0200
+++ new/qmmp-1.1.5/ChangeLog.svn        2016-11-09 06:57:58.000000000 +0100
@@ -1,4 +1,52 @@
 ------------------------------------------------------------------------
+r6836 | trialuser02 | 2016-10-30 13:59:17 +0300 (Вс., 30 окт. 2016) | 1 line
+
+updated changelogs
+------------------------------------------------------------------------
+r6833 | trialuser02 | 2016-10-30 13:56:08 +0300 (Вс., 30 окт. 2016) | 1 line
+
+added ffmpeg 3.2 support
+------------------------------------------------------------------------
+r6830 | trialuser02 | 2016-10-29 21:58:51 +0300 (Сб., 29 окт. 2016) | 1 line
+
+updated changelogs
+------------------------------------------------------------------------
+r6828 | trialuser02 | 2016-10-29 21:18:54 +0300 (Сб., 29 окт. 2016) | 1 line
+
+coding style fixes
+------------------------------------------------------------------------
+r6817 | trialuser02 | 2016-10-29 19:48:20 +0300 (Сб., 29 окт. 2016) | 1 line
+
+some optimizations
+------------------------------------------------------------------------
+r6810 | trialuser02 | 2016-10-27 09:27:21 +0300 (Чт., 27 окт. 2016) | 1 line
+
+updated changelogs
+------------------------------------------------------------------------
+r6805 | trialuser02 | 2016-10-23 14:10:36 +0300 (Вс., 23 окт. 2016) | 1 line
+
+fixed '--pl-repeat-toggle' option
+------------------------------------------------------------------------
+r6800 | trialuser02 | 2016-10-23 13:13:47 +0300 (Вс., 23 окт. 2016) | 1 line
+
+do not use exit call directly
+------------------------------------------------------------------------
+r6797 | trialuser02 | 2016-10-22 20:32:14 +0300 (Сб., 22 окт. 2016) | 1 line
+
+file dialog: removed size grip, fixed layout
+------------------------------------------------------------------------
+r6791 | trialuser02 | 2016-10-21 19:34:47 +0300 (Пт., 21 окт. 2016) | 1 line
+
+qsui: fixed directory selection in the file system browser
+------------------------------------------------------------------------
+r6788 | trialuser02 | 2016-10-17 22:22:09 +0300 (Пн., 17 окт. 2016) | 1 line
+
+added http fixes (Backported from trunk)
+------------------------------------------------------------------------
+r6755 | trialuser02 | 2016-10-04 12:57:54 +0300 (Вт., 04 окт. 2016) | 1 line
+
+version bump
+------------------------------------------------------------------------
 r6750 | trialuser02 | 2016-10-04 12:45:16 +0300 (Вт., 04 окт. 2016) | 1 line
 
 fixed changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/qmmp.pri new/qmmp-1.1.5/qmmp.pri
--- old/qmmp-1.1.4/qmmp.pri     2016-10-04 11:49:54.000000000 +0200
+++ new/qmmp-1.1.5/qmmp.pri     2016-11-09 06:57:58.000000000 +0100
@@ -13,7 +13,7 @@
 
 #Version
 
-QMMP_VERSION = 1.1.4
+QMMP_VERSION = 1.1.5
 
 #Comment/uncomment this if you want to change plugins list
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/app/main.cpp 
new/qmmp-1.1.5/src/app/main.cpp
--- old/qmmp-1.1.4/src/app/main.cpp     2016-10-04 11:49:39.000000000 +0200
+++ new/qmmp-1.1.5/src/app/main.cpp     2016-11-09 06:57:33.000000000 +0100
@@ -62,7 +62,9 @@
     a.installTranslator(&qt_translator);
 
     QMMPStarter starter;
-    Q_UNUSED(starter)
+
+    if(starter.isFinished())
+        return starter.exitCode();
 
     a.setQuitOnLastWindowClosed(false);
     return a.exec();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/app/qmmp.rc 
new/qmmp-1.1.5/src/app/qmmp.rc
--- old/qmmp-1.1.4/src/app/qmmp.rc      2016-10-04 11:49:39.000000000 +0200
+++ new/qmmp-1.1.5/src/app/qmmp.rc      2016-11-09 06:57:33.000000000 +0100
@@ -1,7 +1,7 @@
 #include <winver.h>
 
-#define QMMP_FILEVERSION 1,1,4,0
-#define QMMP_PRODUCTVERSION "1.1.4.0"
+#define QMMP_FILEVERSION 1,1,5,0
+#define QMMP_PRODUCTVERSION "1.1.5.0"
 
 IDI_ICON1              ICON            DISCARDABLE     "images\\ico\\qmmp.ico"
 IDI_ICON2              ICON            DISCARDABLE     
"images\\ico\\qmmp_file.ico"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/app/qmmpstarter.cpp 
new/qmmp-1.1.5/src/app/qmmpstarter.cpp
--- old/qmmp-1.1.4/src/app/qmmpstarter.cpp      2016-10-04 11:49:39.000000000 
+0200
+++ new/qmmp-1.1.5/src/app/qmmpstarter.cpp      2016-11-09 06:57:33.000000000 
+0100
@@ -27,6 +27,7 @@
 #include <cstdlib>
 #include <iostream>
 #include <unistd.h>
+#include <stdlib.h>
 #include <sys/types.h>
 #include <string.h>
 #include <qmmp/qmmp.h>
@@ -57,6 +58,8 @@
     m_player = 0;
     m_core = 0;
     m_ui = 0;
+    m_finished = false;
+    m_exit_code = EXIT_SUCCESS;
 #ifndef QT_NO_SESSIONMANAGER
     connect(qApp, SIGNAL(commitDataRequest(QSessionManager&)), 
SLOT(commitData(QSessionManager&)), Qt::DirectConnection);
 #endif
@@ -72,12 +75,14 @@
     if(commands.keys().contains("--help"))
     {
         printUsage();
-        exit(0);
+        m_finished = true;
+        return;
     }
     if(commands.keys().contains("--version"))
     {
         printVersion();
-        exit(0);
+        m_finished = true;
+        return;
     }
 
     if(!commands.isEmpty())
@@ -88,7 +93,9 @@
                     arg != "--no-start")
             {
                 cout << qPrintable(tr("Unknown command")) << endl;
-                exit(0);
+                m_exit_code = EXIT_FAILURE;
+                m_finished = true;
+                return;
             }
         }
     }
@@ -112,7 +119,9 @@
         if(!m_socket->isValid()) //invalid connection
         {
             qWarning("QMMPStarter: unable to connect to server");
-            exit(0);
+            m_exit_code = EXIT_FAILURE;
+            m_finished = true;
+            return;
         }
         writeCommand();
     }
@@ -130,25 +139,32 @@
             if(!QLocalServer::removeServer(UDS_PATH))
             {
                 qWarning("QMMPStarter: unable to remove invalid socket file");
-                exit(1);
+                m_exit_code = EXIT_FAILURE;
+                m_finished = true;
                 return;
             }
             qWarning("QMMPStarter: removed invalid socket file");
             if(noStart)
-                exit(0);
+            {
+                m_exit_code = EXIT_FAILURE;
+                m_finished = true;
+                return;
+            }
             else if(m_server->listen (UDS_PATH))
                 startPlayer();
             else
             {
                 qWarning("QMMPStarter: server error: %s", 
qPrintable(m_server->errorString()));
-                exit(1);
+                m_exit_code = EXIT_FAILURE;
+                m_finished = true;
+                return;
             }
         }
         else
             writeCommand();
     }
     else
-        exit(0);
+        m_finished = true;
 #endif
 }
 
@@ -162,6 +178,16 @@
 #endif
 }
 
+bool QMMPStarter::isFinished() const
+{
+    return m_finished;
+}
+
+int QMMPStarter::exitCode() const
+{
+    return m_exit_code;
+}
+
 void QMMPStarter::startPlayer()
 {
     connect(m_server, SIGNAL(newConnection()), SLOT(readCommand()));
@@ -195,7 +221,8 @@
     else
     {
         qWarning("QMMPStarter: no user interface found");
-        exit(1);
+        m_finished = true;
+        m_exit_code = EXIT_FAILURE;
         return;
     }
     connect(qApp, SIGNAL(aboutToQuit()), SLOT(savePosition()));
@@ -253,7 +280,7 @@
         printUsage();
 #endif
 
-    exit(0);
+    m_finished = true;
 }
 
 void QMMPStarter::readCommand()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/app/qmmpstarter.h 
new/qmmp-1.1.5/src/app/qmmpstarter.h
--- old/qmmp-1.1.4/src/app/qmmpstarter.h        2016-10-04 11:49:39.000000000 
+0200
+++ new/qmmp-1.1.5/src/app/qmmpstarter.h        2016-11-09 06:57:33.000000000 
+0100
@@ -48,6 +48,9 @@
     QMMPStarter();
     ~QMMPStarter();
 
+    bool isFinished() const;
+    int exitCode() const;
+
 
 private slots:
     /*!
@@ -78,6 +81,8 @@
     BuiltinCommandLineOption* m_option_manager;
     QLocalServer *m_server;
     QLocalSocket *m_socket;
+    bool m_finished;
+    bool m_exit_code;
 #ifdef Q_OS_WIN
     HANDLE m_named_mutex;
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp 
new/qmmp-1.1.5/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp
--- 
old/qmmp-1.1.4/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp 
    2016-10-04 11:49:41.000000000 +0200
+++ 
new/qmmp-1.1.5/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp 
    2016-11-09 06:57:36.000000000 +0100
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2011-2014 by Ilya Kotov                                 *
+ *   Copyright (C) 2011-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -124,7 +124,7 @@
     }
     else if(opt_str == "--pl-repeat-toggle")
     {
-        ui_settings->setRepeatableTrack(!ui_settings->isRepeatableTrack());
+        ui_settings->setRepeatableList(!ui_settings->isRepeatableList());
     }
     else if(opt_str == "--pl-shuffle-toggle")
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/Engines/mplayer/mplayerengine.h 
new/qmmp-1.1.5/src/plugins/Engines/mplayer/mplayerengine.h
--- old/qmmp-1.1.4/src/plugins/Engines/mplayer/mplayerengine.h  2016-10-04 
11:49:41.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Engines/mplayer/mplayerengine.h  2016-11-09 
06:57:36.000000000 +0100
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2008-2015 by Ilya Kotov                                 *
+ *   Copyright (C) 2008-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -64,7 +64,6 @@
     void startMplayerProcess();
 
 private:
-    int mplayer_pipe[2];
     QStringList m_args;
     QProcess *m_process;
     int m_bitrate;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.ui 
new/qmmp-1.1.5/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.ui
--- old/qmmp-1.1.4/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.ui     
2016-10-04 11:49:42.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.ui     
2016-11-09 06:57:37.000000000 +0100
@@ -1,7 +1,8 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>QmmpFileDialog</class>
- <widget class="QDialog" name="QmmpFileDialog" >
-  <property name="geometry" >
+ <widget class="QDialog" name="QmmpFileDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
@@ -9,160 +10,166 @@
     <height>374</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Add Files</string>
   </property>
-  <property name="sizeGripEnabled" >
-   <bool>true</bool>
-  </property>
-  <layout class="QGridLayout" name="gridLayout" >
-   <item row="0" column="0" colspan="3" >
-    <layout class="QHBoxLayout" >
+  <layout class="QGridLayout" name="gridLayout">
+   <property name="leftMargin">
+    <number>6</number>
+   </property>
+   <property name="rightMargin">
+    <number>6</number>
+   </property>
+   <property name="bottomMargin">
+    <number>6</number>
+   </property>
+   <item row="0" column="0" colspan="3">
+    <layout class="QHBoxLayout">
      <item>
-      <widget class="QComboBox" name="lookInComboBox" >
-       <property name="sizePolicy" >
-        <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+      <widget class="QComboBox" name="lookInComboBox">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
          <horstretch>1</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
-       <property name="editable" >
+       <property name="editable">
         <bool>true</bool>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QToolButton" name="upToolButton" >
-       <property name="toolTip" >
+      <widget class="QToolButton" name="upToolButton">
+       <property name="toolTip">
         <string>Up</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
-       <property name="autoRaise" >
+       <property name="autoRaise">
         <bool>true</bool>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QToolButton" name="listToolButton" >
-       <property name="toolTip" >
+      <widget class="QToolButton" name="listToolButton">
+       <property name="toolTip">
         <string>List view</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
-       <property name="checkable" >
+       <property name="checkable">
         <bool>true</bool>
        </property>
-       <property name="autoExclusive" >
+       <property name="autoExclusive">
         <bool>true</bool>
        </property>
-       <property name="autoRaise" >
+       <property name="autoRaise">
         <bool>true</bool>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QToolButton" name="detailsToolButton" >
-       <property name="toolTip" >
+      <widget class="QToolButton" name="detailsToolButton">
+       <property name="toolTip">
         <string>Detailed view</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
-       <property name="iconSize" >
+       <property name="iconSize">
         <size>
          <width>16</width>
          <height>16</height>
         </size>
        </property>
-       <property name="checkable" >
+       <property name="checkable">
         <bool>true</bool>
        </property>
-       <property name="autoExclusive" >
+       <property name="autoExclusive">
         <bool>true</bool>
        </property>
-       <property name="autoRaise" >
+       <property name="autoRaise">
         <bool>true</bool>
        </property>
       </widget>
      </item>
      <item>
-      <widget class="QToolButton" name="closeOnAddToolButton" >
-       <property name="toolTip" >
+      <widget class="QToolButton" name="closeOnAddToolButton">
+       <property name="toolTip">
         <string>Close dialog on add</string>
        </property>
-       <property name="text" >
+       <property name="text">
         <string>...</string>
        </property>
-       <property name="checkable" >
+       <property name="checkable">
         <bool>true</bool>
        </property>
-       <property name="autoRaise" >
+       <property name="autoRaise">
         <bool>true</bool>
        </property>
       </widget>
      </item>
     </layout>
    </item>
-   <item row="1" column="0" colspan="3" >
-    <widget class="QStackedWidget" name="stackedWidget" >
-     <property name="currentIndex" >
+   <item row="1" column="0" colspan="3">
+    <widget class="QStackedWidget" name="stackedWidget">
+     <property name="currentIndex">
       <number>1</number>
      </property>
-     <widget class="QWidget" name="page" >
-      <layout class="QVBoxLayout" >
-       <property name="margin" >
+     <widget class="QWidget" name="page">
+      <layout class="QVBoxLayout">
+       <property name="margin">
         <number>0</number>
        </property>
        <item>
-        <widget class="QListView" name="fileListView" >
-         <property name="selectionMode" >
+        <widget class="QListView" name="fileListView">
+         <property name="selectionMode">
           <enum>QAbstractItemView::ExtendedSelection</enum>
          </property>
-         <property name="movement" >
+         <property name="movement">
           <enum>QListView::Free</enum>
          </property>
-         <property name="isWrapping" stdset="0" >
+         <property name="isWrapping" stdset="0">
           <bool>true</bool>
          </property>
-         <property name="resizeMode" >
+         <property name="resizeMode">
           <enum>QListView::Adjust</enum>
          </property>
-         <property name="layoutMode" >
+         <property name="layoutMode">
           <enum>QListView::SinglePass</enum>
          </property>
-         <property name="uniformItemSizes" >
+         <property name="uniformItemSizes">
           <bool>false</bool>
          </property>
-         <property name="wordWrap" >
+         <property name="wordWrap">
           <bool>false</bool>
          </property>
         </widget>
        </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="page_2" >
-      <layout class="QVBoxLayout" >
-       <property name="margin" >
+     <widget class="QWidget" name="page_2">
+      <layout class="QVBoxLayout">
+       <property name="margin">
         <number>0</number>
        </property>
        <item>
-        <widget class="QTreeView" name="treeView" >
-         <property name="selectionMode" >
+        <widget class="QTreeView" name="treeView">
+         <property name="selectionMode">
           <enum>QAbstractItemView::ExtendedSelection</enum>
          </property>
-         <property name="rootIsDecorated" >
+         <property name="rootIsDecorated">
           <bool>false</bool>
          </property>
-         <property name="itemsExpandable" >
+         <property name="itemsExpandable">
           <bool>false</bool>
          </property>
-         <property name="sortingEnabled" >
+         <property name="sortingEnabled">
           <bool>true</bool>
          </property>
-         <property name="allColumnsShowFocus" >
+         <property name="allColumnsShowFocus">
           <bool>true</bool>
          </property>
         </widget>
@@ -171,58 +178,58 @@
      </widget>
     </widget>
    </item>
-   <item row="2" column="0" >
-    <widget class="QLabel" name="label" >
-     <property name="text" >
+   <item row="2" column="0">
+    <widget class="QLabel" name="label">
+     <property name="text">
       <string>File name:</string>
      </property>
     </widget>
    </item>
-   <item row="2" column="1" >
-    <widget class="QLineEdit" name="fileNameLineEdit" />
+   <item row="2" column="1">
+    <widget class="QLineEdit" name="fileNameLineEdit"/>
    </item>
-   <item row="2" column="2" >
-    <widget class="QPushButton" name="addPushButton" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+   <item row="2" column="2">
+    <widget class="QPushButton" name="addPushButton">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="text" >
+     <property name="text">
       <string>Add</string>
      </property>
     </widget>
    </item>
-   <item row="3" column="0" >
-    <widget class="QLabel" name="label_3" >
-     <property name="text" >
+   <item row="3" column="0">
+    <widget class="QLabel" name="label_3">
+     <property name="text">
       <string>Files of type:</string>
      </property>
     </widget>
    </item>
-   <item row="3" column="1" >
-    <widget class="QComboBox" name="fileTypeComboBox" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding" >
+   <item row="3" column="1">
+    <widget class="QComboBox" name="fileTypeComboBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="sizeAdjustPolicy" >
+     <property name="sizeAdjustPolicy">
       <enum>QComboBox::AdjustToMinimumContentsLength</enum>
      </property>
     </widget>
    </item>
-   <item row="3" column="2" >
-    <widget class="QPushButton" name="closePushButton" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+   <item row="3" column="2">
+    <widget class="QPushButton" name="closePushButton">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="text" >
+     <property name="text">
       <string>Close</string>
      </property>
     </widget>
@@ -237,11 +244,11 @@
    <receiver>QmmpFileDialog</receiver>
    <slot>reject()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>459</x>
      <y>291</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>153</x>
      <y>289</y>
     </hint>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/General/converter/converter.cpp 
new/qmmp-1.1.5/src/plugins/General/converter/converter.cpp
--- old/qmmp-1.1.4/src/plugins/General/converter/converter.cpp  2016-10-04 
11:49:42.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/General/converter/converter.cpp  2016-11-09 
06:57:37.000000000 +0100
@@ -38,6 +38,7 @@
     m_user_stop = false;
     m_decoder = 0;
     m_input = 0;
+    m_row = -1;
 }
 
 Converter::~Converter()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/General/scrobbler/scrobblercache.cpp 
new/qmmp-1.1.5/src/plugins/General/scrobbler/scrobblercache.cpp
--- old/qmmp-1.1.4/src/plugins/General/scrobbler/scrobblercache.cpp     
2016-10-04 11:49:42.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/General/scrobbler/scrobblercache.cpp     
2016-11-09 06:57:37.000000000 +0100
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2013 by Ilya Kotov                                      *
+ *   Copyright (C) 2013-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -42,11 +42,12 @@
 SongInfo::~SongInfo()
 {}
 
-void SongInfo::operator=(const SongInfo &info)
+SongInfo & SongInfo::operator=(const SongInfo &info)
 {
     m_metadata = info.metaData();
     m_length = info.length();
     m_start_ts = info.timeStamp();
+    return *this;
 }
 
 bool SongInfo::operator==(const SongInfo &info)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/General/scrobbler/scrobblercache.h 
new/qmmp-1.1.5/src/plugins/General/scrobbler/scrobblercache.h
--- old/qmmp-1.1.4/src/plugins/General/scrobbler/scrobblercache.h       
2016-10-04 11:49:42.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/General/scrobbler/scrobblercache.h       
2016-11-09 06:57:37.000000000 +0100
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2013 by Ilya Kotov                                      *
+ *   Copyright (C) 2013-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -38,7 +38,7 @@
 
     ~SongInfo();
 
-    void operator=(const SongInfo &info);
+    SongInfo & operator=(const SongInfo &info);
     bool operator==(const SongInfo &info);
     bool operator!=(const SongInfo &info);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/General/statusicon/qmmptrayicon.cpp 
new/qmmp-1.1.5/src/plugins/General/statusicon/qmmptrayicon.cpp
--- old/qmmp-1.1.4/src/plugins/General/statusicon/qmmptrayicon.cpp      
2016-10-04 11:49:42.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/General/statusicon/qmmptrayicon.cpp      
2016-11-09 06:57:37.000000000 +0100
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2008-2013 by Ilya Kotov                                 *
+ *   Copyright (C) 2008-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -33,6 +33,9 @@
 QmmpTrayIcon::QmmpTrayIcon(QObject *parent)
         : QSystemTrayIcon(parent)
 {
+#ifdef QMMP_WS_X11
+    m_showNiceToolTip = false;
+#endif
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/Input/cdaudio/decoder_cdaudio.cpp 
new/qmmp-1.1.5/src/plugins/Input/cdaudio/decoder_cdaudio.cpp
--- old/qmmp-1.1.4/src/plugins/Input/cdaudio/decoder_cdaudio.cpp        
2016-10-04 11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Input/cdaudio/decoder_cdaudio.cpp        
2016-11-09 06:57:36.000000000 +0100
@@ -129,6 +129,8 @@
                 return tracks;
             }
             qDebug("DecoderCDAudio: found cd audio capable drive \"%s\"", 
*cd_drives);
+            device_path = QString(*cd_drives);
+            cdio_free_device_list(cd_drives); //free device list
         }
         else
         {
@@ -136,9 +138,6 @@
             cdio_free_device_list(cd_drives);
             return tracks;
         }
-        device_path = QString(*cd_drives);
-        if (cd_drives && *cd_drives) //free device list
-            cdio_free_device_list(cd_drives);
     }
     else
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp 
new/qmmp-1.1.5/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp
--- old/qmmp-1.1.4/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp  2016-10-04 
11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp  2016-11-09 
06:57:35.000000000 +0100
@@ -80,6 +80,7 @@
     m_decoded_frame = 0;
     m_channels = 0;
     c = 0;
+    wma_idx = 0;
     av_init_packet(&m_pkt);
     av_init_packet(&m_temp_pkt);
 }
@@ -370,26 +371,23 @@
 #endif
 
 #if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1:  57.48.101
-        int err = 0;
-        if((err = avcodec_send_packet(c, &m_temp_pkt)) < 0)
+        int err = avcodec_send_packet(c, &m_temp_pkt);
+        if(err != 0 && err != AVERROR(EAGAIN) && err != AVERROR(EINVAL))
         {
-            if(err == EAGAIN) //try again
-                return 0;
-            else
-            {
-                qWarning("DecoderFFmpeg: avcodec_send_packet error: %d", err);
-                return -1;
-            }
+            qWarning("DecoderFFmpeg: avcodec_send_packet error: %d", err);
+            return -1;
         }
+
+        int l = (err == AVERROR(EAGAIN)) ? 0 : m_temp_pkt.size;
+
         if((err = avcodec_receive_frame(c, m_decoded_frame)) < 0)
         {
-            if(err == EAGAIN) //try again
+            if(err == AVERROR(EAGAIN)) //try again
                 return 0;
             qWarning("DecoderFFmpeg: avcodec_receive_frame error: %d", err);
             return -1;
         }
         got_frame = av_frame_get_pkt_size(m_decoded_frame);
-        int l = m_temp_pkt.size;
 #else
         int l = avcodec_decode_audio4(c, m_decoded_frame, &got_frame, 
&m_temp_pkt);
 #endif
@@ -437,7 +435,7 @@
 
 void DecoderFFmpeg::fillBuffer()
 {
-    while(!m_output_at)
+    while(!m_output_at || m_skipBytes > 0)
     {
         if(!m_temp_pkt.size)
         {
@@ -469,8 +467,6 @@
                                                  
ic->streams[m_pkt.stream_index]->time_base.den);
                 m_skipBytes =  (m_seekTime - rescaledPts) * c->sample_rate * 4 
/ AV_TIME_BASE;
             }
-            else
-                m_skipBytes = 0;
             m_seekTime = 0;
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/plugins/Input/flac/decoder_flac.cpp 
new/qmmp-1.1.5/src/plugins/Input/flac/decoder_flac.cpp
--- old/qmmp-1.1.4/src/plugins/Input/flac/decoder_flac.cpp      2016-10-04 
11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Input/flac/decoder_flac.cpp      2016-11-09 
06:57:35.000000000 +0100
@@ -230,7 +230,6 @@
 DecoderFLAC::DecoderFLAC(const QString &path, QIODevice *i)
         : Decoder(i)
 {
-    m_data = 0;
     m_path = path;
     m_data = new flac_data;
     m_data->decoder = NULL;
@@ -241,6 +240,7 @@
     m_sz = 0;
     m_buf = 0;
     m_offset = 0;
+    m_track = 0;
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/Input/modplug/decoder_modplug.cpp 
new/qmmp-1.1.5/src/plugins/Input/modplug/decoder_modplug.cpp
--- old/qmmp-1.1.4/src/plugins/Input/modplug/decoder_modplug.cpp        
2016-10-04 11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Input/modplug/decoder_modplug.cpp        
2016-11-09 06:57:35.000000000 +0100
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2008-2015 by Ilya Kotov                                 *
+ *   Copyright (C) 2008-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -51,6 +51,9 @@
     m_soundFile = 0;
     m_sampleSize = 0;
     m_instance = this;
+    m_bps = 0;
+    m_preampFactor = 0.0f;
+    m_usePreamp = false;
 }
 
 DecoderModPlug::~DecoderModPlug()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/Input/vorbis/decoder_vorbis.cpp 
new/qmmp-1.1.5/src/plugins/Input/vorbis/decoder_vorbis.cpp
--- old/qmmp-1.1.4/src/plugins/Input/vorbis/decoder_vorbis.cpp  2016-10-04 
11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Input/vorbis/decoder_vorbis.cpp  2016-11-09 
06:57:35.000000000 +0100
@@ -76,6 +76,7 @@
     m_last_section = -1;
     m_bitrate = 0;
     m_url = url;
+    len = 0;
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/Input/wavpack/decoder_wavpack.cpp 
new/qmmp-1.1.5/src/plugins/Input/wavpack/decoder_wavpack.cpp
--- old/qmmp-1.1.4/src/plugins/Input/wavpack/decoder_wavpack.cpp        
2016-10-04 11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Input/wavpack/decoder_wavpack.cpp        
2016-11-09 06:57:35.000000000 +0100
@@ -41,12 +41,12 @@
     m_context = 0;
     m_parser = 0;
     m_output_buf = 0;
-    m_parser = 0;
     m_length_in_bytes = 0;
     m_totalBytes = 0;
     m_frame_size = 0;
     m_offset = 0;
     m_bps = 0;
+    m_track = 0;
 }
 
 DecoderWavPack::~DecoderWavPack()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/Output/alsa/settingsdialog.cpp 
new/qmmp-1.1.5/src/plugins/Output/alsa/settingsdialog.cpp
--- old/qmmp-1.1.4/src/plugins/Output/alsa/settingsdialog.cpp   2016-10-04 
11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Output/alsa/settingsdialog.cpp   2016-11-09 
06:57:36.000000000 +0100
@@ -190,11 +190,10 @@
 void SettingsDialog::getMixerDevices(QString card)
 {
     ui.mixerDeviceComboBox->clear();
-    int err;
     snd_mixer_t *mixer;
     snd_mixer_elem_t *current;
 
-    if ((err = getMixer(&mixer, card)) < 0)
+    if (getMixer(&mixer, card) < 0)
         return;
 
     current = snd_mixer_first_elem(mixer);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/plugins/Output/oss/outputoss.cpp 
new/qmmp-1.1.5/src/plugins/Output/oss/outputoss.cpp
--- old/qmmp-1.1.4/src/plugins/Output/oss/outputoss.cpp 2016-10-04 
11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Output/oss/outputoss.cpp 2016-11-09 
06:57:36.000000000 +0100
@@ -122,7 +122,7 @@
 
     ioctl(m_audio_fd, SNDCTL_DSP_RESET, 0);
 
-    configure(freq, map, format);
+    configure(freq, ChannelMap(chan), format);
     return true;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/plugins/Output/oss/outputoss.h 
new/qmmp-1.1.5/src/plugins/Output/oss/outputoss.h
--- old/qmmp-1.1.4/src/plugins/Output/oss/outputoss.h   2016-10-04 
11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Output/oss/outputoss.h   2016-11-09 
06:57:36.000000000 +0100
@@ -46,7 +46,6 @@
     QString m_audio_device;
 
     int m_audio_fd;
-    long bl, br;
 };
 
 class VolumeOSS : public Volume
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qmmp-1.1.4/src/plugins/Transports/http/httpstreamreader.cpp 
new/qmmp-1.1.5/src/plugins/Transports/http/httpstreamreader.cpp
--- old/qmmp-1.1.4/src/plugins/Transports/http/httpstreamreader.cpp     
2016-10-04 11:49:42.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Transports/http/httpstreamreader.cpp     
2016-11-09 06:57:37.000000000 +0100
@@ -118,6 +118,7 @@
     m_handle = 0;
     m_metacount = 0;
     m_meta_sent = false;
+    m_ready = false;
     m_thread = new DownloadThread(this);
     QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
     settings.beginGroup("HTTP");
@@ -274,6 +275,7 @@
         curl_easy_cleanup(m_handle);
         m_handle = 0;
     }
+    QIODevice::close();
 }
 
 qint64 HttpStreamReader::bytesAvailable() const
@@ -285,6 +287,7 @@
 {
     qDebug("HttpStreamReader: starting download thread");
     char errorBuffer[CURL_ERROR_SIZE];
+    memset(errorBuffer, 0, sizeof(errorBuffer));
     m_handle = curl_easy_init();
     //proxy
     if (QmmpSettings::instance()->isProxyEnabled())
@@ -351,8 +354,8 @@
     {
         setErrorString(errorBuffer);
         emit error();
+        QIODevice::close();
     }
-    QIODevice::close();
 }
 
 qint64 HttpStreamReader::readBuffer(char* data, qint64 maxlen)
@@ -383,9 +386,9 @@
             {
                 metaData.insert(Qmmp::TITLE, 
m_stream.header.value("icy-name"));
                 metaData.insert(Qmmp::GENRE, 
m_stream.header.value("icy-genre"));
+                metaData.insert(Qmmp::URL, m_url);
+                m_parent->addMetaData(metaData);
             }
-            metaData.insert(Qmmp::URL, m_url);
-            m_parent->addMetaData(metaData);
             sendStreamInfo(m_codec);
         }
         emit ready();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/plugins/Ui/qsui/filesystembrowser.cpp 
new/qmmp-1.1.5/src/plugins/Ui/qsui/filesystembrowser.cpp
--- old/qmmp-1.1.4/src/plugins/Ui/qsui/filesystembrowser.cpp    2016-10-04 
11:49:39.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Ui/qsui/filesystembrowser.cpp    2016-11-09 
06:57:34.000000000 +0100
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2013-2015 by Ilya Kotov                                 *
+ *   Copyright (C) 2013-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -74,7 +74,7 @@
 {
     QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
     settings.beginGroup("Simple");
-    settings.setValue("fsbrowser_current_dir", m_model->rootPath());
+    settings.setValue("fsbrowser_current_dir", 
m_model->rootDirectory().canonicalPath());
     settings.endGroup();
 }
 
@@ -128,7 +128,7 @@
 void FileSystemBrowser::selectDirectory()
 {
     QString dir = FileDialog::getExistingDirectory(qApp->activeWindow(),
-                                                   tr("Select Directory"), 
m_model->rootPath());
+                                                   tr("Select Directory"), 
m_model->rootDirectory().canonicalPath());
     if(!dir.isEmpty())
         setCurrentDirectory(dir);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/plugins/Ui/skinned/pixmapwidget.cpp 
new/qmmp-1.1.5/src/plugins/Ui/skinned/pixmapwidget.cpp
--- old/qmmp-1.1.4/src/plugins/Ui/skinned/pixmapwidget.cpp      2016-10-04 
11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Ui/skinned/pixmapwidget.cpp      2016-11-09 
06:57:34.000000000 +0100
@@ -31,7 +31,7 @@
 PixmapWidget::~PixmapWidget()
 {}
 
-void PixmapWidget::setPixmap(const QPixmap pixmap, bool fixed_size)
+void PixmapWidget::setPixmap(const QPixmap &pixmap, bool fixed_size)
 {
     m_pixmap = pixmap;
     if(fixed_size)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/plugins/Ui/skinned/pixmapwidget.h 
new/qmmp-1.1.5/src/plugins/Ui/skinned/pixmapwidget.h
--- old/qmmp-1.1.4/src/plugins/Ui/skinned/pixmapwidget.h        2016-10-04 
11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Ui/skinned/pixmapwidget.h        2016-11-09 
06:57:35.000000000 +0100
@@ -35,7 +35,7 @@
 
     virtual ~PixmapWidget();
 
-    virtual void setPixmap(const QPixmap, bool fixed_size = false);
+    virtual void setPixmap(const QPixmap &pixmap, bool fixed_size = false);
 
 protected:
     void paintEvent ( QPaintEvent * event );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/plugins/Ui/skinned/playlist.cpp 
new/qmmp-1.1.5/src/plugins/Ui/skinned/playlist.cpp
--- old/qmmp-1.1.4/src/plugins/Ui/skinned/playlist.cpp  2016-10-04 
11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Ui/skinned/playlist.cpp  2016-11-09 
06:57:35.000000000 +0100
@@ -625,7 +625,7 @@
 
     foreach(QString name, m_pl_manager->playListNames())
     {
-        action = m_copySelectedMenu->addAction("&"+name.replace("&", "&&"));
+        m_copySelectedMenu->addAction("&"+name.replace("&", "&&"));
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/plugins/Ui/skinned/windowsystem.cpp 
new/qmmp-1.1.5/src/plugins/Ui/skinned/windowsystem.cpp
--- old/qmmp-1.1.4/src/plugins/Ui/skinned/windowsystem.cpp      2016-10-04 
11:49:40.000000000 +0200
+++ new/qmmp-1.1.5/src/plugins/Ui/skinned/windowsystem.cpp      2016-11-09 
06:57:35.000000000 +0100
@@ -1,7 +1,7 @@
 /***************************************************************************
  *   Based on Licq                                                         *
  *   Copyright (C) 2006-2009 Licq developers                               *
- *   Copyright (C) 2011-2015 Ilya Kotov                                    *
+ *   Copyright (C) 2011-2016 Ilya Kotov                                    *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
@@ -65,16 +65,13 @@
     Display* dsp = QX11Info::display();
     WId root = DefaultRootWindow(dsp);
 
-    unsigned char* retValue1 = NULL;
-    unsigned char* retValue2 = NULL;
-
-    retValue1 = getWindowProperty(root, "_NET_SUPPORTING_WM_CHECK");
+    unsigned char* retValue1 = getWindowProperty(root, 
"_NET_SUPPORTING_WM_CHECK");
     if (retValue1 == NULL)
         return QString();
 
     WId win = *(reinterpret_cast<unsigned long*>(retValue1));
 
-    retValue2 = getWindowProperty(win, "_NET_SUPPORTING_WM_CHECK");
+    unsigned char* retValue2 = getWindowProperty(win, 
"_NET_SUPPORTING_WM_CHECK");
     if (retValue2 == NULL)
     {
         XFree(retValue1);
@@ -89,9 +86,8 @@
     }
 
     XFree(retValue2);
-    retValue2 = NULL;
-
     retValue2 = getWindowProperty(win, "_NET_WM_NAME");
+
     XFree(retValue1);
     if (retValue2 == NULL)
         return QString();
@@ -159,7 +155,6 @@
   if (reqAtom == None)
     return NULL;
 
-  int retCheck = None;
   Atom retType = None;
   int retFormat = 0;
   unsigned long retItems = 0UL;
@@ -167,7 +162,7 @@
   unsigned char* retValue = NULL;
 
   // Check if the property exists and calculate its length.
-  retCheck = XGetWindowProperty(dsp, win,
+  int retCheck = XGetWindowProperty(dsp, win,
       reqAtom, 0L, 0L, False, AnyPropertyType,
       &retType, &retFormat, &retItems, &retMoreBytes, &retValue);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/qmmp/dithering.cpp 
new/qmmp-1.1.5/src/qmmp/dithering.cpp
--- old/qmmp-1.1.4/src/qmmp/dithering.cpp       2016-10-04 11:49:39.000000000 
+0200
+++ new/qmmp-1.1.5/src/qmmp/dithering.cpp       2016-11-09 06:57:33.000000000 
+0100
@@ -27,19 +27,15 @@
     m_lsb = 0.0f;
     m_required = false;
     m_enabled = false;
+    m_chan = 2;
+    clearHistory();
 }
 
 void Dithering::configure(quint32 srate, ChannelMap map)
 {
     m_chan = map.count();
     m_required = false;
-    for(int i = 0; i < 9; ++i)
-    {
-        m_dither[i].error[0] = 0.0f;
-        m_dither[i].error[1] = 0.0f;
-        m_dither[i].error[2] = 0.0f;
-        m_dither[i].random = 0;
-    }
+    clearHistory();
     Effect::configure(srate, map);
 }
 
@@ -84,6 +80,17 @@
     (m_required && m_enabled) ? qDebug("Dithering: enabled") : 
qDebug("Dithering: disabled");
 }
 
+void Dithering::clearHistory()
+{
+    for(int i = 0; i < 9; ++i)
+    {
+        m_dither[i].error[0] = 0.0f;
+        m_dither[i].error[1] = 0.0f;
+        m_dither[i].error[2] = 0.0f;
+        m_dither[i].random = 0;
+    }
+}
+
 quint32 Dithering::prng(quint32 state) // 32-bit pseudo-random number generator
 {
     return (state * 0x0019660dL + 0x3c6ef35fL) & 0xffffffffL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/qmmp/dithering_p.h 
new/qmmp-1.1.5/src/qmmp/dithering_p.h
--- old/qmmp-1.1.4/src/qmmp/dithering_p.h       2016-10-04 11:49:39.000000000 
+0200
+++ new/qmmp-1.1.5/src/qmmp/dithering_p.h       2016-11-09 06:57:33.000000000 
+0100
@@ -40,6 +40,7 @@
     void setEnabled(bool enabled);
 
 private:
+    void clearHistory();
     int m_chan;
 
     typedef struct
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/qmmp/output.cpp 
new/qmmp-1.1.5/src/qmmp/output.cpp
--- old/qmmp-1.1.4/src/qmmp/output.cpp  2016-10-04 11:49:39.000000000 +0200
+++ new/qmmp-1.1.5/src/qmmp/output.cpp  2016-11-09 06:57:33.000000000 +0100
@@ -17,6 +17,7 @@
 Output::Output()
 {
     m_frequency = 0;
+    m_sample_size = 0;
     m_format = Qmmp::PCM_UNKNOWM;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/qmmp/outputwriter.cpp 
new/qmmp-1.1.5/src/qmmp/outputwriter.cpp
--- old/qmmp-1.1.4/src/qmmp/outputwriter.cpp    2016-10-04 11:49:39.000000000 
+0200
+++ new/qmmp-1.1.5/src/qmmp/outputwriter.cpp    2016-11-09 06:57:33.000000000 
+0100
@@ -53,6 +53,7 @@
     m_format_converter = 0;
     m_channel_converter = 0;
     m_output_buf = 0;
+    m_output_size = 0;
 }
 
 OutputWriter::~OutputWriter()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/qmmp/qmmp.h 
new/qmmp-1.1.5/src/qmmp/qmmp.h
--- old/qmmp-1.1.4/src/qmmp/qmmp.h      2016-10-04 11:49:54.000000000 +0200
+++ new/qmmp-1.1.5/src/qmmp/qmmp.h      2016-11-09 06:57:58.000000000 +0100
@@ -24,7 +24,7 @@
 
 #define QMMP_VERSION_MAJOR 1
 #define QMMP_VERSION_MINOR 1
-#define QMMP_VERSION_PATCH 4
+#define QMMP_VERSION_PATCH 5
 #define QMMP_VERSION_STABLE 1
 
 #define QMMP_VERSION_INT (QMMP_VERSION_MAJOR<<16 | QMMP_VERSION_MINOR<<8 | 
QMMP_VERSION_PATCH)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/qmmp/qmmpaudioengine.cpp 
new/qmmp-1.1.5/src/qmmp/qmmpaudioengine.cpp
--- old/qmmp-1.1.4/src/qmmp/qmmpaudioengine.cpp 2016-10-04 11:49:39.000000000 
+0200
+++ new/qmmp-1.1.5/src/qmmp/qmmpaudioengine.cpp 2016-11-09 06:57:33.000000000 
+0100
@@ -395,9 +395,17 @@
         }
         //metadata
         if(m_decoder->hasMetaData())
-            StateHandler::instance()->dispatch(m_decoder->takeMetaData());
+        {
+            QMap<Qmmp::MetaData, QString> m = m_decoder->takeMetaData();
+            m[Qmmp::URL] = m_inputs[m_decoder]->url();
+            StateHandler::instance()->dispatch(m);
+        }
         if(m_inputs[m_decoder]->hasMetaData())
-            
StateHandler::instance()->dispatch(m_inputs[m_decoder]->takeMetaData());
+        {
+            QMap<Qmmp::MetaData, QString> m = 
m_inputs[m_decoder]->takeMetaData();
+            m[Qmmp::URL] = m_inputs[m_decoder]->url();
+            StateHandler::instance()->dispatch(m);
+        }
         if(m_inputs[m_decoder]->hasStreamInfo())
             
StateHandler::instance()->dispatch(m_inputs[m_decoder]->takeStreamInfo());
         //wait more data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/qmmpui/playlistdownloader.cpp 
new/qmmp-1.1.5/src/qmmpui/playlistdownloader.cpp
--- old/qmmp-1.1.4/src/qmmpui/playlistdownloader.cpp    2016-10-04 
11:49:39.000000000 +0200
+++ new/qmmp-1.1.5/src/qmmpui/playlistdownloader.cpp    2016-11-09 
06:57:33.000000000 +0100
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2012-2015 by Ilya Kotov                                 *
+ *   Copyright (C) 2012-2016 by Ilya Kotov                                 *
  *   [email protected]                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -50,7 +50,7 @@
 {
     if(!PlayListParser::findByUrl(url)) //is it playlist?
     {
-        emit done(QStringList() << url.toString()); //just send initial URL
+        emit done(QStringList() << QString::fromLatin1(url.toEncoded())); 
//just send initial URL
         return;
     }
     m_url = url;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/qmmpui/playlistmodel.cpp 
new/qmmp-1.1.5/src/qmmpui/playlistmodel.cpp
--- old/qmmp-1.1.4/src/qmmpui/playlistmodel.cpp 2016-10-04 11:49:39.000000000 
+0200
+++ new/qmmp-1.1.5/src/qmmpui/playlistmodel.cpp 2016-11-09 06:57:33.000000000 
+0100
@@ -203,12 +203,9 @@
 
     int flags = 0;
 
-    PlayListItem *prevItem = m_container->item(index);
     foreach(PlayListTrack *track, tracks)
     {
         m_container->insertTrack(index, track);
-        index = prevItem ? m_container->indexOf(prevItem) : 
m_container->count();
-
         m_total_length += track->length();
         if(m_container->trackCount() == 1)
         {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/qmmpui/playlistmodel.h 
new/qmmp-1.1.5/src/qmmpui/playlistmodel.h
--- old/qmmp-1.1.4/src/qmmpui/playlistmodel.h   2016-10-04 11:49:39.000000000 
+0200
+++ new/qmmp-1.1.5/src/qmmpui/playlistmodel.h   2016-11-09 06:57:33.000000000 
+0100
@@ -50,7 +50,8 @@
      */
     SimpleSelection()
     {
-        ;
+        m_bottom = -1;
+        m_top = 1;
     }
     /*!
      * Returns \p true if this selection is valid; otherwise returns returns 
\p false.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qmmp-1.1.4/src/qmmpui/playlisttask.cpp 
new/qmmp-1.1.5/src/qmmpui/playlisttask.cpp
--- old/qmmp-1.1.4/src/qmmpui/playlisttask.cpp  2016-10-04 11:49:39.000000000 
+0200
+++ new/qmmp-1.1.5/src/qmmpui/playlisttask.cpp  2016-11-09 06:57:33.000000000 
+0100
@@ -109,6 +109,7 @@
     m_current_track = 0;
     m_column = 0;
     m_task = EMPTY;
+    m_sort_mode = PlayListModel::TITLE;
 
     m_sort_keys.insert(PlayListModel::TITLE, Qmmp::TITLE);
     m_sort_keys.insert(PlayListModel::DISCNUMBER, Qmmp::DISCNUMBER);


Reply via email to