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);
