debian/0000775000000000000000000000000011757102344007174 5ustar debian/lastfm.install0000664000000000000000000000300211750117616012046 0ustar bin/data/about_generic.png /usr/share/lastfm bin/data/app_55.png /usr/share/lastfm bin/data/buttons /usr/share/lastfm bin/data/icons/as.png /usr/share/lastfm/icons bin/data/icons/buy_*.png /usr/share/lastfm/icons bin/data/icons/history*.png /usr/share/lastfm/icons bin/data/icons/icon_*.png /usr/share/lastfm/icons bin/data/icons/loved_radio.png /usr/share/lastfm/icons bin/data/icons/my*.png /usr/share/lastfm/icons bin/data/icons/neighbour*.png /usr/share/lastfm/icons bin/data/icons/options_*.png /usr/share/lastfm/icons bin/data/icons/personal*.png /usr/share/lastfm/icons bin/data/icons/qt_cross.png /usr/share/lastfm/icons bin/data/icons/recent*.png /usr/share/lastfm/icons bin/data/icons/recomm*.png /usr/share/lastfm/icons bin/data/icons/scrobbl*.png /usr/share/lastfm/icons bin/data/icons/user_*.png /usr/share/lastfm/icons bin/data/logo.png /usr/share/lastfm bin/data/no*.gif /usr/share/lastfm bin/data/progress.mng /usr/share/lastfm bin/data/slider*.png /usr/share/lastfm bin/data/speaker*.png /usr/share/lastfm bin/data/watermark.png /usr/share/lastfm bin/data/wizard_generic.png /usr/share/lastfm bin/last.fm /usr/lib/lastfm bin/libLastFmTools.so.1* /usr/lib/lastfm bin/libMoose.so.1* /usr/lib/lastfm bin/services /usr/lib/lastfm debian/package-files/* /usr i18n/*.qm /usr/share/lastfm/i18n debian/copyright0000664000000000000000000001572011752006627011136 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: lastfm Upstream-Contact: client@last.fm Source: http://www.last.fm/download/ Files: * Copyright: 2004-2009 Last.fm Ltd 2004-2007 Gareth Simpson 2004-2008 Max Howell 2005-2008 Jono Cole 2004-2008 Christian Muehlhaeuser 2004-2008 Erik Jaelevik 2007 Philipp Maihart License: GPL-2+ Files: debian/* Copyright: 2005-2006 Paul Telford 2006-2012 John Stamp License: GPL-2+ Files: src/lib/FileVersionInfo/FileVersionInfo.* Copyright: 1999-2000 Sven Wiegand 2000-2001 ToolsCenter License: other This file is free software; you can redistribute it and/or modify, but leave the headers intact and do not remove any copyrights from the source. . If you have further questions, suggestions or bug fixes, visit our homepage . http://www.ToolsCenter.org Files: src/libFingerprint/Sha256.* Copyright: 2001-2003 Allan Saddi License: BSD-2 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . THIS SOFTWARE IS PROVIDED BY ALLAN SADDI AND HIS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ALLAN SADDI OR HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Files: src/libUnicorn/mbid_mp3.h Copyright: 2006 David Nicolson License: BSD-3 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT UNLESS REQUIRED BY LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER OR CONTRIBUTOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Files: src/libUnicorn/md5/md5.* Copyright: 1999, 2000, 2002 Aladdin Enterprises License: other This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. . Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: . 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Files: src/libUnicorn/URLLabel.* Copyright: 2005 Angius Fabrizio License: LGPL-2 Files: src/output/alsa-playback/alsaaudio.* Copyright: 2007 John Stamp 2007 Max Howell 2007 Last.fm Ltd. 2001-2003 Matthieu Sozeau 1998-2003 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies 1999-2007 Haavard Kvaalen 2005 Takashi Iwai License: GPL-2+ Files: src/output/alsa-playback/xconvert.* Copyright: 2001-2003 Haavard Kvaalen License: LGPL-2 Files: src/output/RtAudio/rtaudio/RtAudio.* Copyright: 2001-2005 Gary P. Scavone License: other Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version. Files: src/transcode/mad/RingBuffer.* Copyright: 2005-2007 John Stamp 2005-2007 Max Howell, Last.fm Ltd License: GPL-2+ Files: src/Twiddly/trash/Log.* Copyright: 2004-2007 Gareth Simpson 2004-2007 Christian Muehlhaeuser, Last.fm Ltd. 2004-2007 Erik Jaelevik, Last.fm Ltd. 2004-2007 Max Howell, Last.fm Ltd. License: GPL-2+ License: GPL-2+ On Debian systems the full text of the GNU General Public License can be found in the '/usr/share/common-licenses/GPL-2' file. License: LGPL-2 On Debian systems the full text of the GNU General Public License can be found in the '/usr/share/common-licenses/LGPL-2' file. debian/compat0000664000000000000000000000000211750117616010373 0ustar 7 debian/lastfm.menu0000664000000000000000000000036211750117616011352 0ustar ?package(lastfm):\ needs="X11"\ section="Applications/Sound"\ title="Last.fm"\ command="/usr/bin/lastfm"\ icon="/usr/share/pixmaps/lastfm32.xpm"\ icon32x32="/usr/share/pixmaps/lastfm32.xpm"\ icon16x16="/usr/share/pixmaps/lastfm16.xpm" debian/watch0000664000000000000000000000025611750117616010231 0ustar # Upstream has not been releasing tarballs at a consistent location, so a watch # file won't help. The situation should improve with the next major version of # the client. debian/control0000664000000000000000000000242611757100023010573 0ustar Source: lastfm Section: sound Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: John Stamp Build-Depends: debhelper (>= 7.4.12), dpkg-dev (>= 1.16.1~), libasound2-dev (>= 1.0.9) [linux-any], libgpod-nogtk-dev, libmad0-dev, libqt4-dev (>= 4.3.0), libx11-dev, pkg-config, x11proto-core-dev, zlib1g-dev Standards-Version: 3.9.3 Homepage: http://www.last.fm/ Vcs-Git: git://git.mehercule.net/lastfm.git DM-Upload-Allowed: yes Package: lastfm Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Recommends: iceweasel | www-browser, libqt4-sql-sqlite Description: music player for Last.fm personalized radio Last.fm is the flagship product from the team that designed the Audioscrobbler system, a music engine based on a massive collection of Music Profiles. Each music profile belongs to one person, and describes their taste in music. Last.fm uses these music profiles to make personalized recommendations, match you up with people who like similar music, and generate custom radio stations for each person. . This package will allow you to play your personalized radio station streams from the Last.fm website. You will need a (free) account there to make use of this package. debian/patches/0000775000000000000000000000000011757100023010613 5ustar debian/patches/tray-icon-size.diff0000664000000000000000000000713111750117616014335 0ustar Use 22x22 icons for Linux system tray. --- a/src/iconshack.cpp +++ b/src/iconshack.cpp @@ -108,6 +108,34 @@ } +#ifdef Q_WS_X11 +QPixmap +IconShack::GetTrayIcon( MooseEnums::UserIconColour eColour ) +{ + if ( !mbIconsLoaded ) + LoadIcons(); + + if ( maTrayIcons[ eColour ].isNull() ) + return QPixmap( 22, 22 ); + else + return maTrayIcons[ eColour ]; +} + + +QPixmap +IconShack::GetDisabledTrayIcon( MooseEnums::UserIconColour eColour ) +{ + if ( !mbIconsLoaded ) + LoadIcons(); + + if ( maDisabledTrayIcons[ eColour ].isNull() ) + return QPixmap( 22, 22 ); + else + return maDisabledTrayIcons[ eColour ]; +} +#endif + + void IconShack::LoadIcons() { @@ -141,6 +169,20 @@ maDisabledIcons[MooseEnums::eOrange].load( MooseUtils::dataPath( "icons/user_disabled.png" ) ); maDisabledIcons[MooseEnums::eBlack].load( MooseUtils::dataPath( "icons/user_disabled.png" ) ); +#ifdef Q_WS_X11 + maTrayIcons[MooseEnums::eRed].load( MooseUtils::dataPath( "icons/user_red22.png" ) ); + maTrayIcons[MooseEnums::eBlue].load( MooseUtils::dataPath( "icons/user_blue22.png" ) ); + maTrayIcons[MooseEnums::eGreen].load( MooseUtils::dataPath( "icons/user_green22.png" ) ); + maTrayIcons[MooseEnums::eOrange].load( MooseUtils::dataPath( "icons/user_orange22.png" ) ); + maTrayIcons[MooseEnums::eBlack].load( MooseUtils::dataPath( "icons/user_black22.png" ) ); + + maDisabledTrayIcons[MooseEnums::eRed].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) ); + maDisabledTrayIcons[MooseEnums::eBlue].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) ); + maDisabledTrayIcons[MooseEnums::eGreen].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) ); + maDisabledTrayIcons[MooseEnums::eOrange].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) ); + maDisabledTrayIcons[MooseEnums::eBlack].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) ); +#endif + mbIconsLoaded = true; LOG( 4, "Icons loaded\n" ); --- a/src/iconshack.h +++ b/src/iconshack.h @@ -81,6 +81,14 @@ **************************************************************************/ QList GetIpodScrobblingIcons( MooseEnums::UserIconColour eColour ); +#ifdef Q_WS_X11 + QPixmap + GetTrayIcon( MooseEnums::UserIconColour eColour ); + + QPixmap + GetDisabledTrayIcon( MooseEnums::UserIconColour eColour ); +#endif + private: /*********************************************************************/ /** @@ -95,6 +103,10 @@ QPixmap maGoodIconsExpanded[ MooseEnums::eColorMax ]; QPixmap maExclIcons[ MooseEnums::eColorMax ]; QPixmap maDisabledIcons[ MooseEnums::eColorMax ]; +#ifdef Q_WS_X11 + QPixmap maTrayIcons[ MooseEnums::eColorMax ]; + QPixmap maDisabledTrayIcons[ MooseEnums::eColorMax ]; +#endif QList mIpodScrobblingIcons[ MooseEnums::eColorMax ]; /*********************************************************************/ /** --- a/src/systray.cpp +++ b/src/systray.cpp @@ -55,6 +55,8 @@ { #ifdef Q_WS_MAC icon = m_pixmap; + #elif defined(Q_WS_X11) + icon = IconShack::instance().GetTrayIcon( iconColour ); #else icon = IconShack::instance().GetGoodUserIcon( iconColour ); #endif @@ -63,6 +65,8 @@ { #ifdef Q_WS_MAC icon = QIcon( m_pixmap ).pixmap( 19, 12, QIcon::Disabled ); + #elif defined Q_WS_X11 + icon = IconShack::instance().GetDisabledTrayIcon( iconColour ); #else icon = IconShack::instance().GetDisabledUserIcon( iconColour ); #endif debian/patches/check-soundcard-errors.diff0000664000000000000000000000425411750117616016032 0ustar Don't segfault: make sure that the audio device is open before we write to it. --- a/src/AudioController.cpp +++ b/src/AudioController.cpp @@ -134,6 +134,9 @@ this, SLOT ( onTimerTimeout() ), Qt::DirectConnection ); + // loadPlugins() gets m_output, the above connects its signal, NOW we can call setDevice() + m_output->setBufferCapacity( kOutputBufferMinSize ); + m_output->setDevice( The::settings().soundCard() ); // What is this interval exactly? // It's how often we send out timeChanged signals (500 ms) @@ -179,9 +182,6 @@ if ( m_output == 0 ) return false; - m_output->setBufferCapacity( kOutputBufferMinSize ); - m_output->setDevice( The::settings().soundCard() ); - m_proxyOutput = new ProxyOutput(); return true; --- a/src/Radio.cpp +++ b/src/Radio.cpp @@ -654,7 +654,7 @@ } else { - if ( err == Radio_PluginLoadFailed ) + if ( err == Radio_PluginLoadFailed || err == Radio_NoSoundcard ) { m_broken = true; } --- a/src/container.cpp +++ b/src/container.cpp @@ -79,6 +79,7 @@ Container::Container() : QMainWindow(), m_userCheck( false ), + m_soundcardError( false ), m_sidebarEnabled( false ), m_sidebarWidth( 190 ) #ifndef Q_WS_MAC @@ -798,6 +799,7 @@ case Handshake_SessionFailed: case Radio_PluginLoadFailed: case Radio_NoSoundcard: + m_soundcardError = true; case Radio_PlaybackError: case Radio_UnknownError: { @@ -1987,8 +1989,11 @@ default: { - ui.actionPlay->setEnabled( true ); - ui.actionStop->setEnabled( true ); + if ( !m_soundcardError ) + { + ui.actionPlay->setEnabled( true ); + ui.actionStop->setEnabled( true ); + } } break; } --- a/src/container.h +++ b/src/container.h @@ -108,6 +108,7 @@ class DiagnosticsDialog *m_diagnosticsDialog; bool m_userCheck; + bool m_soundcardError; bool m_sidebarEnabled; int m_lastVolume; int m_sidebarWidth; debian/patches/dirpaths.diff0000664000000000000000000000044211750117616013274 0ustar Fix up icon installation path for Linux packages. --- a/src/libMoose/MooseCommon.cpp +++ b/src/libMoose/MooseCommon.cpp @@ -47,7 +47,7 @@ QString dataPath( QString file ) { - return QApplication::applicationDirPath() + "/data/" + file; + return "/usr/share/lastfm/" + file; } debian/patches/qt46.diff0000664000000000000000000000535411750117616012263 0ustar Fix some text/icon display issues when using Qt 4.6 --- a/src/libUnicorn/draglabel.cpp +++ b/src/libUnicorn/draglabel.cpp @@ -324,6 +324,11 @@ { rect.setHeight( fm.height() ); } + // Qt 4.6 seems to have problems with the width too + if ( fm.width( d.m_text ) > rect.width() ) + { + rect.setWidth( fm.width( d.m_text ) ); + } // boundingRect sometimes returns negative values so make sure it's at 0, 0 rect.moveTo( 0, 0 ); --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -140,29 +140,29 @@ UnicornUtils::qtLanguageToLfmLangCode( QLocale::Japanese ) ); // Add icons to sidebar - pixmap.load( MooseUtils::dataPath( "/icons/options_account.png" ) ); + //pixmap.load( MooseUtils::dataPath( "/icons/options_account.png" ) ); //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); - ui.pageList->item( 0 )->setIcon( pixmap ); + ui.pageList->item( 0 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_account.png" ) ) ); - pixmap.load( MooseUtils::dataPath( "/icons/options_radio.png" ) ); + //pixmap.load( MooseUtils::dataPath( "/icons/options_radio.png" ) ); //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); - ui.pageList->item( 1 )->setIcon( pixmap ); + ui.pageList->item( 1 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_radio.png" ) ) ); #ifdef HIDE_RADIO ui.pageList->setItemHidden( ui.pageList->item( 1 ), true ); #endif // HIDE_RADIO - pixmap.load( MooseUtils::dataPath( "/icons/options_scrobbling.png" ) ); + //pixmap.load( MooseUtils::dataPath( "/icons/options_scrobbling.png" ) ); //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); - ui.pageList->item( 2 )->setIcon( pixmap ); + ui.pageList->item( 2 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_scrobbling.png" ) ) ); - pixmap.load( MooseUtils::dataPath( "/icons/options_connection.png" ) ); + //pixmap.load( MooseUtils::dataPath( "/icons/options_connection.png" ) ); //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); - ui.pageList->item( 3 )->setIcon( pixmap ); + ui.pageList->item( 3 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_connection.png" ) ) ); - pixmap.load( MooseUtils::dataPath( "/icons/options_mediadevices.png" ) ); + //pixmap.load( MooseUtils::dataPath( "/icons/options_mediadevices.png" ) ); //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); - ui.pageList->item( 4 )->setIcon( pixmap ); + ui.pageList->item( 4 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_mediadevices.png" ) ) ); #ifdef Q_WS_X11 ui.pageList->setRowHidden( 4, true ); debian/patches/hide-scrobbledir-option.diff0000664000000000000000000000156011750117616016167 0ustar Hide the Scrobble Directories group in the options. It's irrelevant on Linux. --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -92,6 +92,8 @@ ui_mediadevices.setupUi( mediadeviceWidget ); ui_mediadevices.deviceWidget->header()->setResizeMode( QHeaderView::ResizeToContents ); ui.pageStack->addWidget( mediadeviceWidget ); +#else + ui_scrobbling.groupBox->hide(); #endif #ifdef NBREAKPAD --- a/src/settingsdialog_scrobbling.ui +++ b/src/settingsdialog_scrobbling.ui @@ -175,6 +175,19 @@ + + + + Qt::Vertical + + + + 20 + 0 + + + + debian/patches/reduce-linkage.diff0000664000000000000000000001367511750117616014351 0ustar Make sure the binaries only link to the libraries that they need --- a/definitions.pro.inc +++ b/definitions.pro.inc @@ -41,8 +41,6 @@ UNICORNPATH = $$ROOT_DIR/src/libUnicorn include( src/libUnicorn/unicorn.pro.inc ) -LIBS += -lMoose$$EXT - # TODO: not sure if this is right now, should probably be determined on a per-plugin basis plugin:LIBS += -lLastFmTools$$EXT contains( TEMPLATE, app ):LIBS += -lLastFmTools$$EXT --- a/src/libFingerprint/libFingerprint.pro +++ b/src/libFingerprint/libFingerprint.pro @@ -2,7 +2,7 @@ VERSION = 1.0.0 CONFIG += dll TARGET = LastFmFingerprint -QT += xml network sql +QT -= gui include( ../../definitions.pro.inc ) --- a/src/libUnicorn/CachedHttp.h +++ b/src/libUnicorn/CachedHttp.h @@ -26,7 +26,7 @@ #include "UnicornDllExportMacro.h" #include -#include +#include #include #include #include --- a/src/libUnicorn/RedirectHttp.h +++ b/src/libUnicorn/RedirectHttp.h @@ -26,7 +26,7 @@ #include "UnicornDllExportMacro.h" #include -#include +#include #include #include --- a/src/libFingerprint/FingerprintCollector.cpp +++ b/src/libFingerprint/FingerprintCollector.cpp @@ -25,8 +25,6 @@ #include "logger.h" #include "FingerprintExtractor.h" -#include - FingerprintCollector::FingerprintCollector( int numberOfThreads, QObject* parent ) : QObject( parent ) --- a/src/libUnicorn/WebService/Request.h +++ b/src/libUnicorn/WebService/Request.h @@ -31,7 +31,7 @@ #include "WeightedStringList.h" #include -#include +#include //TODO mxcl check error handling, since that was the point of all this //TODO escape query paramaeters in paths in get function --- a/src/libUnicorn/Collection.h +++ b/src/libUnicorn/Collection.h @@ -31,7 +31,7 @@ #include #include -#include +#include /** @author: */ --- a/src/libFingerprint/FingerprintQueryer.cpp +++ b/src/libFingerprint/FingerprintQueryer.cpp @@ -26,8 +26,6 @@ #include "logger.h" #include "FingerprintExtractor.h" -#include - FingerprintQueryer::FingerprintQueryer( QObject* parent ) : QObject( parent ), --- a/src/src.pro +++ b/src/src.pro @@ -1,12 +1,14 @@ TEMPLATE = app TARGET = Last.fm -QT += gui network xml sql +QT += gui network xml INCLUDEPATH += lib libFingerprint/recommendation-commons PRECOMPILED_HEADER = precompiled.h CONFIG += precompile_header +LIBS += -lMoose$$EXT + unix { # precompiled headers breaks icecream builds for some reason :( system( test `ps aux | grep iceccd | wc -l` -gt 1 ): CONFIG -= precompile_header @@ -27,12 +29,9 @@ include( ../definitions.pro.inc ) -# TODO remove -INCLUDEPATH += $$ROOT_DIR/res/mad -INCLUDEPATH += $$ROOT_DIR/src/libFingerprint/libs/fftw - breakpad { LIBS += -lbreakpad$$EXT + LIBS += -lmad -lfftw3f } LIBS += -L$$BIN_DIR -lLastFmFingerprint$$EXT @@ -211,7 +210,7 @@ SOURCES += simplewizard_mac.cpp \ winstyleoverrides.cpp - LIBS += -lmad -lfftw3f + LIBS += -lX11 -lz HEADERS -= Bootstrapper/iTunesBootstrapper.h \ Bootstrapper/PluginBootstrapper.h --- a/src/mediadevices/ipod/IpodDevice.h +++ b/src/mediadevices/ipod/IpodDevice.h @@ -22,7 +22,7 @@ #define IPOD_DEVICE_H #include "TrackInfo.h" -#include +#include typedef struct _Itdb_iTunesDB Itdb_iTunesDB; typedef struct _Itdb_Track Itdb_Track; --- a/src/httpinput/httpinput.cpp +++ b/src/httpinput/httpinput.cpp @@ -21,8 +21,6 @@ #include "httpinput.h" #include "logger.h" -#include "WebService.h" -#include "WebService/Request.h" #include "RadioEnums.h" #include "MooseCommon.h" --- a/src/httpinput/httpinput.pro +++ b/src/httpinput/httpinput.pro @@ -1,7 +1,8 @@ TEMPLATE = lib CONFIG += service TARGET = httpinput -QT += network gui xml +QT += network +QT -= gui include( ../../definitions.pro.inc ) --- a/src/mediadevices/ipod/IpodDevice.cpp +++ b/src/mediadevices/ipod/IpodDevice.cpp @@ -24,12 +24,11 @@ #include "logger.h" -#include #include +#include #include #include #include -#include #include extern "C" --- a/src/mediadevices/ipod/ipod.pro +++ b/src/mediadevices/ipod/ipod.pro @@ -2,6 +2,7 @@ CONFIG += service TARGET = Ipod_device QT += sql +QT -= gui include( ../../../definitions.pro.inc ) --- a/src/transcode/mad/mad.pro +++ b/src/transcode/mad/mad.pro @@ -1,7 +1,7 @@ TEMPLATE = lib CONFIG += service TARGET = madtranscode -QT += gui xml network +QT -= gui include( ../../../definitions.pro.inc ) --- a/src/output/alsa-playback/alsa-playback.pro +++ b/src/output/alsa-playback/alsa-playback.pro @@ -1,7 +1,7 @@ TEMPLATE = lib TARGET = output_alsa CONFIG += service -QT += gui xml network +QT -= gui LIBS += -lasound QMAKE_CFLAGS_WARN_OFF = -w @@ -9,5 +9,6 @@ include( ../../../definitions.pro.inc ) +LIBS -= -lLastFmTools$$EXT HEADERS = alsaplayback.h alsaaudio.h xconvert.h SOURCES = alsaplayback.cpp alsaaudio.cpp xconvert.c --- a/src/libMoose/libMoose.pro +++ b/src/libMoose/libMoose.pro @@ -2,7 +2,7 @@ VERSION = 1.0.0 CONFIG += dll TARGET = Moose -QT += xml network gui +QT += network gui include( ../../definitions.pro.inc ) --- a/src/output/RtAudio/RtAudio.pro +++ b/src/output/RtAudio/RtAudio.pro @@ -1,7 +1,7 @@ TEMPLATE = lib CONFIG += service TARGET = rtaudioplayback -QT += gui xml network +QT -= gui include( ../../../definitions.pro.inc ) --- a/src/output/RtAudio/rtaudioplayback.cpp +++ b/src/output/RtAudio/rtaudioplayback.cpp @@ -19,7 +19,7 @@ * 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#include +#include #include "rtaudioplayback.h" #include "logger.h" debian/patches/do_not_prevent_logouts.patch0000664000000000000000000000340511750117616016450 0ustar Do not prevent logging out when the main window is visible. --- a/src/container.cpp +++ b/src/container.cpp @@ -78,6 +78,7 @@ Container::Container() : QMainWindow(), + m_quitOk( false ), m_userCheck( false ), m_soundcardError( false ), m_sidebarEnabled( false ), @@ -575,7 +576,7 @@ void Container::closeEvent( QCloseEvent *event ) { - bool quit = false; + bool quit = m_quitOk; #ifdef Q_WS_MAC if ( !event->spontaneous() ) @@ -610,6 +611,8 @@ minimiseToTray(); event->ignore(); } + + m_quitOk = false; } --- a/src/container.h +++ b/src/container.h @@ -48,6 +48,7 @@ static Container& instance() { return *s_instance; } class ShareDialog& shareDialog() { return *m_shareDialog; } int stackIndex() const { return ui.stack->currentIndex(); } + void setQuitOk( bool quitOk ) { m_quitOk = quitOk; } std::vector& getPluginList(); @@ -108,6 +109,7 @@ class ShareDialog *m_shareDialog; class DiagnosticsDialog *m_diagnosticsDialog; + bool m_quitOk; bool m_userCheck; bool m_soundcardError; bool m_sidebarEnabled; --- a/src/lastfmapplication.cpp +++ b/src/lastfmapplication.cpp @@ -368,6 +368,14 @@ void +LastFmApplication::commitData( QSessionManager & sm ) +{ + m_container->setQuitOk( true ); + QApplication::commitData( sm ); +} + + +void LastFmApplication::initTranslator() { QString langCode; --- a/src/lastfmapplication.h +++ b/src/lastfmapplication.h @@ -139,6 +139,7 @@ public: LastFmApplication( int& argc, char** argv ); ~LastFmApplication(); + void commitData( QSessionManager & sm ); void setUser( const QString& username ); debian/patches/set-firstrun-status.diff0000664000000000000000000000047011750117616015445 0ustar Don't re-run the setup dialog each time the program starts --- a/src/configwizard.cpp +++ b/src/configwizard.cpp @@ -753,7 +753,7 @@ nextButtonClicked(); #else - m_pageOffset += 7; + m_pageOffset += 8; BaseWizard::nextButtonClicked(); #endif debian/patches/qt45.diff0000664000000000000000000000050311750117616012251 0ustar Small style fix when using Qt 4.5 --- a/src/SideBarView.cpp +++ b/src/SideBarView.cpp @@ -133,7 +133,7 @@ else { setStyle( new TreeStyle ); - setStyleSheet( "QTreeView { border: 0px }" ); + setStyleSheet( "QTreeView { border: 0px; background: white; }" ); } #endif debian/patches/no-fingerprint-lib.diff0000664000000000000000000001720311750117616015166 0ustar The Linux client does not do fingerprinting, so don't build it. This reduces the client's package dependencies. --- a/LastFM.pro +++ b/LastFM.pro @@ -39,6 +39,8 @@ linux* { SUBDIRS -= src/Twiddly \ + src/libFingerprint/fplib/pro_qmake/fplib.pro \ + src/libFingerprint/ \ src/Bootstrapper/ITunesDevice SUBDIRS += src/output/alsa-playback --- a/src/DiagnosticsDialog.cpp +++ b/src/DiagnosticsDialog.cpp @@ -27,7 +27,10 @@ #include "container.h" #include "lastfmapplication.h" #include "libMoose/LastFmSettings.h" + +#ifndef LINUX #include "libFingerprint/FingerprintCollector.h" +#endif #include #include @@ -106,6 +109,7 @@ connect( ui.scrobbleIpodButton, SIGNAL( clicked() ), SLOT( onScrobbleIpodClicked() ) ); // Fingerprint collector +#ifndef LINUX ui.fpQueueSizeLabel->setText( "0" ); connect( The::app().m_fpCollector, SIGNAL( trackFingerprintingStarted( TrackInfo ) ), this, SLOT( onTrackFingerprintingStarted( TrackInfo ) ), @@ -116,6 +120,9 @@ connect( The::app().m_fpCollector, SIGNAL( cantFingerprintTrack( TrackInfo, QString ) ), this, SLOT( onCantFingerprintTrack( TrackInfo, QString ) ), Qt::QueuedConnection ); +#else + ui.tabWidget->removeTab( 2 ); +#endif m_logTimer = new QTimer( this ); connect( m_logTimer, SIGNAL( timeout() ), @@ -343,6 +350,7 @@ } +#ifndef LINUX void DiagnosticsDialog::onTrackFingerprintingStarted( TrackInfo track ) { @@ -367,7 +375,7 @@ ui.fpCurrentTrackLabel->setText( "" ); ui.fpQueueSizeLabel->setText( QString::number( The::app().m_fpCollector->queueSize() ) ); } - +#endif void DiagnosticsDialog::onLogPoll() --- a/src/DiagnosticsDialog.h +++ b/src/DiagnosticsDialog.h @@ -66,9 +66,11 @@ void onRefresh(); void onCopyToClipboard(); + #ifndef LINUX void onTrackFingerprintingStarted( TrackInfo ); void onTrackFingerprinted( TrackInfo ); void onCantFingerprintTrack( TrackInfo track, QString reason ); + #endif void onScrobbleIpodClicked(); void onLogPoll(); --- a/src/lastfmapplication.cpp +++ b/src/lastfmapplication.cpp @@ -25,8 +25,10 @@ #include "configwizard.h" #include "container.h" #include "LastMessageBox.h" +#ifndef LINUX #include "libFingerprint/FingerprintCollector.h" #include "libFingerprint/FingerprintQueryer.h" +#endif #include "logger.h" #include "loginwidget.h" #include "MediaDeviceScrobbler.h" @@ -167,10 +169,12 @@ new ITunesScript( this, m_listener ); #endif + #ifndef LINUX m_fpCollector = new FingerprintCollector( 1 /*number of threads*/, this ); m_fpQueryer = new FingerprintQueryer( this ); connect( m_fpQueryer, SIGNAL( trackFingerprinted( TrackInfo, bool ) ), SLOT( onFingerprintQueryDone( TrackInfo, bool ) ) ); + #endif m_radio = new Radio( this ); connect( m_radio, SIGNAL( stateChanged( RadioState ) ), SLOT( onRadioStateChanged( RadioState ) ) ); @@ -343,8 +347,10 @@ sendPostedEvents( m_scrobbler, 0 /*all event types*/ ); //TODO send events to individual scrobblers in the manager too? + #ifndef LINUX delete m_fpQueryer; delete m_fpCollector; + #endif #ifdef Q_WS_MAC if ( !m_pidFile.remove() ) @@ -498,6 +504,7 @@ QString password = m_user->settings().password(); QString version = The::settings().version(); + #ifndef LINUX // as you can see we are initialising the fingerprinter, I like this comment m_fpCollector->setUsername( username ); m_fpCollector->setPasswordMd5( password ); @@ -506,6 +513,7 @@ m_fpQueryer->setPasswordMd5( password ); m_fpQueryer->setPasswordMd5Lower( password ); // FIXME: surely they can't be the same! m_fpQueryer->setVersion( The::settings().version() ); + #endif // init radio YTIO m_radio->init( username, password, version ); @@ -813,12 +821,14 @@ if ( m_container->isVisible() ) fetchMetaData(); + #ifndef LINUX if ( QFile::exists( m_currentTrack.path() ) && The::settings().currentUser().fingerprintingEnabled() ) { m_activeNorman = 0; m_fpQueryer->fingerprint( m_currentTrack ); } + #endif } } break; @@ -1131,6 +1141,7 @@ } +#ifndef LINUX void LastFmApplication::onFingerprintQueryDone( TrackInfo track, bool fullFpRequested ) { @@ -1163,6 +1174,7 @@ } } } +#endif void --- a/src/lastfmapplication.h +++ b/src/lastfmapplication.h @@ -181,7 +181,9 @@ void onAppEvent( int event, const QVariant& ); void onRequestReturned( class Request* request ); void onScrobblerStatusUpdate( int, const QVariant& ); +#ifndef LINUX void onFingerprintQueryDone( TrackInfo, bool fullFpRequested ); +#endif void onNormanRequestDone( Request* r ); void onPlaybackEndedTimerTimeout(); @@ -207,8 +209,10 @@ class QTcpServer* m_control; class ScrobblerManager* m_scrobbler; class Radio* m_radio; +#ifndef LINUX class FingerprintCollector* m_fpCollector; class FingerprintQueryer* m_fpQueryer; +#endif class FrikkinNormanRequest* m_activeNorman; QPointer m_activeArtistReq; --- a/src/Radio.cpp +++ b/src/Radio.cpp @@ -129,7 +129,9 @@ m_session = handshake->session(); m_basePath = handshake->basePath(); + #ifndef LINUX The::settings().setFingerprintUploadUrl( handshake->fingerprintUploadUrl() ); + #endif setState( State_Handshaken ); --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -216,7 +216,11 @@ connect( ui_scrobbling.dirTree, SIGNAL( dataChanged() ), this, SLOT( configChanged() ) ); connect( ui_scrobbling.scrobblePointSlider, SIGNAL( valueChanged( int ) ), this, SLOT( configChanged() ) ); connect( ui_scrobbling.launchWithMediaPlayerCheck, SIGNAL( toggled( bool ) ), this, SLOT( configChanged() ) ); +#ifndef LINUX connect( ui_scrobbling.fingerprintCheckBox, SIGNAL( stateChanged( int ) ), this, SLOT( configChanged() ) ); +#else + ui_scrobbling.fingerprintCheckBox->hide(); +#endif connect( ui_connection.proxyBox, SIGNAL( toggled( bool ) ), this, SLOT( configChanged() ) ); connect( ui_connection.proxyHostEdit, SIGNAL( textChanged( QString ) ), this, SLOT( configChanged() ) ); connect( ui_connection.proxyPortEdit, SIGNAL( textChanged( QString ) ), this, SLOT( configChanged() ) ); @@ -387,7 +391,9 @@ ui_scrobbling.scrobblePointSlider->setValue( user.scrobblePoint() ); ui_scrobbling.scrobblePointLabel->setText( QString::number( user.scrobblePoint() ) ); ui_scrobbling.launchWithMediaPlayerCheck->setChecked( The::settings().launchWithMediaPlayer() ); +#ifndef LINUX ui_scrobbling.fingerprintCheckBox->setChecked( user.fingerprintingEnabled() ); +#endif ui_scrobbling.dirTree->setExclusions( user.excludedDirs() ); } @@ -577,7 +583,9 @@ user.setScrobblePoint( ui_scrobbling.scrobblePointSlider->value() ); user.setExcludedDirs( ui_scrobbling.dirTree->getExclusions() ); The::settings().setLaunchWithMediaPlayer( ui_scrobbling.launchWithMediaPlayerCheck->isChecked() ); +#ifndef LINUX user.setFingerprintingEnabled( ui_scrobbling.fingerprintCheckBox->checkState() == Qt::Checked ? true : false ); +#endif pageSaved( 2 ); } --- a/src/src.pro +++ b/src/src.pro @@ -217,6 +217,8 @@ SOURCES -= Bootstrapper/iTunesBootstrapper.cpp \ Bootstrapper/PluginBootstrapper.cpp + + LIBS -= -lLastFmFingerprint$$EXT } debian/patches/set-locale.diff0000664000000000000000000000165111750117616013511 0ustar Correctly sets the language when there is no Last.fm.conf file. If you need to change the language after that, you can do so in Tools | Options | Account. Fixes Debian bug #432232. --- a/src/libUnicorn/Settings.h +++ b/src/libUnicorn/Settings.h @@ -226,6 +226,17 @@ QString langCode = customAppLanguage(); if ( langCode.isEmpty() ) { + #ifdef LINUX + // Now check the environment including LC_MESSAGES + // This fixes Debian bug #432232 + if ( langCode.isEmpty() ) + langCode = qgetenv( "LC_ALL" ); + if ( langCode.isEmpty() ) + langCode = qgetenv( "LC_MESSAGES" ); + if ( langCode.isEmpty() ) + langCode = qgetenv( "LANG" ); + #endif + // If none found, use system locale #ifdef Q_WS_MAC QLocale::Language qtLang = UnicornUtils::osxLanguageCode(); debian/patches/gcc47.patch0000664000000000000000000000172611750121102012543 0ustar Description: Fix compilation with gcc 4.7 Author: John Stamp --- a/src/libUnicorn/UnicornCommon.cpp +++ b/src/libUnicorn/UnicornCommon.cpp @@ -32,6 +32,8 @@ #ifdef WIN32 #include #include +#else + #include #endif using namespace std; --- a/src/lastfmapplication.cpp +++ b/src/lastfmapplication.cpp @@ -59,6 +59,8 @@ #ifdef WIN32 #include +#else + #include #endif #ifdef Q_WS_MAC --- a/src/libUnicorn/Settings.h +++ b/src/libUnicorn/Settings.h @@ -105,7 +105,7 @@ public: MyQSettings( const UserSettings* const s ) { - beginGroup( s->username() ); + this->beginGroup( s->username() ); } }; --- a/src/playerlistener.cpp +++ b/src/playerlistener.cpp @@ -33,6 +33,10 @@ #include #include +#ifdef Q_OS_UNIX + #include +#endif + using namespace std; debian/patches/series0000664000000000000000000000064111757100023012031 0ustar build-fixes.diff gcc41.diff reduce-linkage.diff no-fingerprint-lib.diff alsa-uses-qdebug.diff check-soundcard-errors.diff tray-icon-size.diff hide-scrobbledir-option.diff tray-volume.diff set-locale.diff set-firstrun-status.diff build-kfreebsd.diff qt45.diff qt46.diff qt47.diff hide-loved-radio.diff ipod-scrobble-fix.diff sidebar-crash-fix.diff do_not_prevent_logouts.patch gcc47.patch dirpaths.diff fix_ftbfs.diff debian/patches/gcc41.diff0000664000000000000000000000126111750117616012357 0ustar Fix compilation with gcc >= 4.1 --- a/src/updatewizard.h +++ b/src/updatewizard.h @@ -50,7 +50,7 @@ CAutoUpdater& updater, QWidget* parent = NULL); - UpdateWizard::UpdateWizard( CComponentInfo* ); + UpdateWizard( CComponentInfo* ); bool shouldShow() const{ return m_showWizard; } --- a/src/wizardselectupdatespage.h +++ b/src/wizardselectupdatespage.h @@ -58,7 +58,7 @@ GetChecked( std::vector& vecChecked); - void WizardSelectUpdatesPage::GetMajorUpdateComponent( std::vector& vecToUpdate ); + void GetMajorUpdateComponent( std::vector& vecToUpdate ); public slots: debian/patches/qt47.diff0000664000000000000000000000530411750117616012257 0ustar Fix warnings when compiling with Qt 4.7 --- a/src/ProxyOutput.h +++ b/src/ProxyOutput.h @@ -51,7 +51,7 @@ virtual void stopPlayback(); signals: - virtual void error( int error, const QString& reason ); + void error( int error, const QString& reason ); private slots: void onClientConnected(); --- a/src/src.pro +++ b/src/src.pro @@ -238,7 +238,7 @@ SOURCES -= SideBarTreeStyle.cpp - LIBPATH += $$ROOT_DIR/res/mad + QMAKE_LIBDIR += $$ROOT_DIR/res/mad LIBS += -lmad -framework CoreFoundation -framework Carbon -lz } --- a/src/httpinput/httpinput.h +++ b/src/httpinput/httpinput.h @@ -97,9 +97,9 @@ virtual void load( const QString& url ); signals: - virtual void stateChanged( RadioState newState ); + void stateChanged( RadioState newState ); - virtual void error( int errorCode, const QString& reason ); + void error( int errorCode, const QString& reason ); /*********************************************************************/ /** Emitted if the stream has to rebuffer. Buffering finishes when @@ -108,7 +108,7 @@ @param size - current buffer size @param total - total buffer size **************************************************************************/ - virtual void + void buffering( int size, int total ); private: --- a/src/libUnicorn/unicorn.pro.inc +++ b/src/libUnicorn/unicorn.pro.inc @@ -4,7 +4,7 @@ UI_DIR = $$ROOT_DIR/build -LIBPATH += $$BIN_DIR +QMAKE_LIBDIR += $$BIN_DIR INCLUDEPATH += $$ROOT_DIR/src $$UI_DIR CONFIG( breakpad ) { --- a/src/output/alsa-playback/alsaplayback.h +++ b/src/output/alsa-playback/alsaplayback.h @@ -57,7 +57,7 @@ virtual void setVolume( int volume ); signals: - virtual void error( int error, const QString& reason ); + void error( int error, const QString& reason ); public: AlsaPlayback(); --- a/src/libFingerprint/libFingerprint.pro +++ b/src/libFingerprint/libFingerprint.pro @@ -39,13 +39,13 @@ } unix:!mac { - LIBPATH += $$BUILD_DIR/../fplib + QMAKE_LIBDIR += $$BUILD_DIR/../fplib LIBS += $$ROOT_DIR/build/fplib/libfplib$${EXT}.a -lsamplerate -lfftw3f -lmad } win32 { # Really not sure about the sanity of this... - LIBPATH += $$BUILD_DIR/../fplib $$ROOT_DIR/res/libsamplerate $$ROOT_DIR/res/mad + QMAKE_LIBDIR += $$BUILD_DIR/../fplib $$ROOT_DIR/res/libsamplerate $$ROOT_DIR/res/mad LIBS += -lfplib$$EXT -llibfftw3f-3 -lmad LIBS += -llibsamplerate --- a/src/transcode/mad/mad.pro +++ b/src/transcode/mad/mad.pro @@ -10,7 +10,7 @@ } !linux* { - LIBPATH += $$ROOT_DIR/res/mad + QMAKE_LIBDIR += $$ROOT_DIR/res/mad INCLUDEPATH += $$ROOT_DIR/res/mad } debian/patches/sidebar-crash-fix.diff0000664000000000000000000000102111750117616014743 0ustar Prevent a crash when dragging sidebar items --- a/src/SideBarModel.cpp +++ b/src/SideBarModel.cpp @@ -236,6 +236,8 @@ Qt::ItemFlags SideBarModel::flags( const QModelIndex& index ) const { + if ( !index.isValid() ) + return 0; SideBarItem i( index, m_masterList ); Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsDropEnabled; @@ -859,7 +861,7 @@ } } - if( m_type == TypeUnknown ) + if( m_type == TypeUnknown && i.isValid() ) m_type = m_masterList[ i.row() ]; ////// debian/patches/tray-volume.diff0000664000000000000000000000252711750117616013750 0ustar Control the volume by spinning the mouse wheel over the system tray icon. --- a/src/systray.cpp +++ b/src/systray.cpp @@ -25,6 +25,7 @@ #include "container.h" #include "LastFmSettings.h" #include "MooseCommon.h" +#include TrayIcon::TrayIcon( QObject* parent ) @@ -157,3 +158,20 @@ { m_animationTimer.stop(); } + + +bool +TrayIcon::event( QEvent* e ) +{ + // Beginning with Qt 4.3, QSystemTrayIcon supports wheel events, but only + // on X11. Let's make it adjust the volume. + if ( e->type() == QEvent::Wheel ) + { + int numDegrees = ((QWheelEvent*)e)->delta() / 8; + int numSteps = numDegrees / 15; + int volume = Container::instance().ui.playcontrols.volume->value() + ( 5 * numSteps ); + Container::instance().ui.playcontrols.volume->setValue( volume ); + return true; + } + return QSystemTrayIcon::event( e ); +} --- a/src/systray.h +++ b/src/systray.h @@ -35,6 +35,7 @@ TrayIcon( QObject* parent ); void startIpodScrobblingAnimation(); void stopIpodScrobblingAnimation(); + virtual bool event( QEvent* e ); public slots: void setTrack( const class MetaData &track ); --- a/src/container.h +++ b/src/container.h @@ -39,6 +39,7 @@ Q_OBJECT static Container* s_instance; + friend class TrayIcon; public: Container(); debian/patches/ipod-scrobble-fix.diff0000664000000000000000000000121211750117616014762 0ustar iPods were identified by a directory timestamp, but it changed each time the ipod was mounted. Instead identify a device by its FirewireGuid. --- a/src/mediadevices/ipod/IpodDevice.cpp +++ b/src/mediadevices/ipod/IpodDevice.cpp @@ -77,8 +77,9 @@ if ( m_uid.isEmpty() ) { - QFileInfo f( m_mountPath + "/iPod_Control/Device" ); - m_uid = f.created().toString( "yyMMdd_hhmmss" ); + //QFileInfo f( m_mountPath + "/iPod_Control/Device" ); + //m_uid = f.created().toString( "yyMMdd_hhmmss" ); + m_uid = itdb_device_get_sysinfo( m_itdb->device, "FirewireGuid" ); qDebug() << "uid" << m_uid; } debian/patches/build-fixes.diff0000664000000000000000000000123711750117616013674 0ustar Don't compile portAudio output plugin on Linux. And properly detect include paths using pkg-config. --- a/LastFM.pro +++ b/LastFM.pro @@ -41,8 +41,7 @@ SUBDIRS -= src/Twiddly \ src/Bootstrapper/ITunesDevice - SUBDIRS += src/output/alsa-playback \ - src/output/portAudio + SUBDIRS += src/output/alsa-playback } --- a/src/mediadevices/ipod/ipod.pro +++ b/src/mediadevices/ipod/ipod.pro @@ -11,7 +11,7 @@ linux* { LIBS += -lgpod - INCLUDEPATH += /usr/include/gpod-1.0 /usr/include/glib-2.0 /usr/lib/glib-2.0/include + INCLUDEPATH += $$system(pkg-config --cflags-only-I libgpod-1.0 | sed -e's/-I//g') } mac { debian/patches/alsa-uses-qdebug.diff0000664000000000000000000000073611750117616014626 0ustar With a release build, the ALSA output plugin writes noisy messages to the log file. Only make it noisy in a debug build. --- a/src/output/alsa-playback/alsaaudio.cpp +++ b/src/output/alsa-playback/alsaaudio.cpp @@ -27,7 +27,12 @@ ***************************************************************************/ #include "alsaaudio.h" +#ifdef QT_NO_DEBUG +#include +#define Q_DEBUG_BLOCK qDebug() +#else #include "logger.h" +#endif #include //no debug debian/patches/fix_ftbfs.diff0000664000000000000000000000044611757100023013423 0ustar --- lastfm-1.5.4.27091+dfsg1.orig/src/mediadevices/ipod/IpodDevice.cpp +++ lastfm-1.5.4.27091+dfsg1/src/mediadevices/ipod/IpodDevice.cpp @@ -34,7 +34,7 @@ extern "C" { #include - #include + #include } #define TABLE_NAME "IpodDeviceTracks" debian/patches/hide-loved-radio.diff0000664000000000000000000000145311750117616014575 0ustar Hide loved radio menu item. It's no longer supported. --- a/src/SideBarView.cpp +++ b/src/SideBarView.cpp @@ -539,7 +539,7 @@ { map[PlayPersonalRadio] = menu.addAction( MooseUtils::icon( "personal_radio" ), tr( "Play %1's Radio Station" ).arg( text ) ); map[PlayNeighbourRadio] = menu.addAction( MooseUtils::icon( "neighbour_radio" ), tr( "Play %1's Neighbourhood" ).arg( text ) ); - map[PlayLovedRadio] = menu.addAction( MooseUtils::icon( "loved_radio" ), tr( "Play %1's Loved Tracks" ).arg( text ) ); + //map[PlayLovedRadio] = menu.addAction( MooseUtils::icon( "loved_radio" ), tr( "Play %1's Loved Tracks" ).arg( text ) ); menu.addSeparator(); map[GoToUserPage] = menu.addAction( tr( "Go To %1's Profile" ).arg( text ) ); debian/patches/build-kfreebsd.diff0000664000000000000000000001210111750117616014333 0ustar Non-Linux kernels can use the RtAudio output plugin for OSS audio. This should let the client work on FreeBSD or Debian kfreebsd-* --- a/LastFM.pro +++ b/LastFM.pro @@ -37,13 +37,19 @@ SUBDIRS -= src/mediadevices/ipod } -linux* { +unix:!mac* { SUBDIRS -= src/Twiddly \ src/libFingerprint/fplib/pro_qmake/fplib.pro \ src/libFingerprint/ \ src/Bootstrapper/ITunesDevice + SUBDIRS += src/output/RtAudio - SUBDIRS += src/output/alsa-playback + UNAME = $$system(uname -s) + + contains ( UNAME, [Ll]inux ) { + SUBDIRS -= src/output/RtAudio + SUBDIRS += src/output/alsa-playback + } } --- a/src/AudioController.cpp +++ b/src/AudioController.cpp @@ -173,8 +173,10 @@ #ifdef WIN32 m_output = qobject_cast( loadPlugin( "rtaudioplayback" ) ); - #elif defined LINUX + #elif defined REALLY_LINUX m_output = qobject_cast( loadPlugin( "output_alsa" ) ); + #elif defined LINUX + m_output = qobject_cast( loadPlugin( "rtaudioplayback" ) ); #else m_output = qobject_cast( loadPlugin( "output_portaudio" ) ); #endif --- a/src/libUnicorn/unicorn.pro.inc +++ b/src/libUnicorn/unicorn.pro.inc @@ -36,7 +36,7 @@ CONFIG -= ppc } - linux* { + unix:!mac* { QMAKE_CXXFLAGS_DEBUG = -ggdb } @@ -127,10 +127,15 @@ } } -linux* { +unix:!mac { DEFINES += LINUX } +UNAME = $$system(uname -s) +contains( UNAME, [Ll]inux ) { + DEFINES += REALLY_LINUX +} + mac { DEFINES += MACOSX } --- a/src/output/RtAudio/RtAudio.pro +++ b/src/output/RtAudio/RtAudio.pro @@ -8,10 +8,6 @@ HEADERS = rtaudioplayback.h SOURCES = rtaudioplayback.cpp rtaudio/RtAudio.cpp -unix:!mac { - LIBS += -lasound -} - win32 { LIBS += -lwinmm -Ldsound -ldsound -lole32 -lgdi32 -luser32 INCLUDEPATH += dsound --- a/src/output/RtAudio/rtaudio/RtAudio.cpp +++ b/src/output/RtAudio/rtaudio/RtAudio.cpp @@ -42,7 +42,7 @@ #include #ifdef Q_WS_X11 - #define __LINUX_ALSA__ + #define __LINUX_OSS__ #endif #ifdef Q_WS_FREEBSD #define __LINUX_OSS__ @@ -57,6 +57,8 @@ #include "RtAudio.h" #include #include +#include +#include // Static variable definitions. const unsigned int RtApi::MAX_SAMPLE_RATES = 14; @@ -625,7 +627,7 @@ if (fd >= 0) close(fd); device.name.erase(); - device.name.append( (const char *)device_name, strlen(device_name)+1); + device.name.append( (const char *)device_name, strlen(device_name) ); devices_.push_back(device); nDevices_++; } --- a/src/output/RtAudio/rtaudioplayback.cpp +++ b/src/output/RtAudio/rtaudioplayback.cpp @@ -158,7 +158,7 @@ #endif #ifdef Q_WS_X11 - l << "Alsa"; + l << "OSS"; #endif #ifdef Q_WS_MAC @@ -174,6 +174,7 @@ { QStringList l; + initAudio( 44100, 2 ); if ( !m_audio ) return l; @@ -201,6 +202,8 @@ LOGL( 1, "Getting device names failed. RtAudio error type: " << error.getType() << " Message: " << error.getMessage() ); } + delete m_audio; + m_audio = 0; return l; } @@ -209,6 +212,13 @@ void RtAudioPlayback::startPlayback() { + if ( m_audio ) + { + delete m_audio; + m_audio = 0; + } + initAudio( 44100, 2 ); + if ( !m_audio ) { emit error( Radio_NoSoundcard, tr( "Your soundcard is either busy or not present. " @@ -242,6 +252,9 @@ m_audio->stopStream(); m_audio->cancelStreamCallback(); + delete m_audio; + m_audio = 0; + m_mutex.lock(); m_buffer.clear(); m_mutex.unlock(); @@ -284,13 +297,14 @@ int card = internalSoundCardID( m_deviceNum ); #ifdef Q_WS_X11 - api = RtAudio::LINUX_ALSA; + api = RtAudio::LINUX_OSS; #endif RtAudioDeviceInfo info = m_audio->getDeviceInfo( card ); delete m_audio; - if ( info.nativeFormats & RTAUDIO_SINT32 ) + // See Debian bug report #373239 + /*if ( info.nativeFormats & RTAUDIO_SINT32 ) { format = RTAUDIO_SINT32; } @@ -301,7 +315,7 @@ if ( info.nativeFormats & RTAUDIO_SINT16 ) { format = RTAUDIO_SINT16; - } + }*/ m_audio = new RtAudio( card, channels, 0, 0, format, sampleRate, &bufferSize, nBuffers, api ); } --- a/src/output/RtAudio/rtaudioplayback.h +++ b/src/output/RtAudio/rtaudioplayback.h @@ -53,7 +53,7 @@ QStringList soundSystems(); QStringList devices(); - void setDevice( int n ) { m_deviceNum = n; initAudio( 44100, 2 ); } + void setDevice( int n ) { m_deviceNum = n; /*initAudio( 44100, 2 );*/ } int audioCallback( char *buffer, int bufferSize ); --- a/src/mediadevices/ipod/ipod.pro +++ b/src/mediadevices/ipod/ipod.pro @@ -9,7 +9,7 @@ HEADERS = IpodDevice.h SOURCES = IpodDevice.cpp -linux* { +unix:!mac { LIBS += -lgpod INCLUDEPATH += $$system(pkg-config --cflags-only-I libgpod-1.0 | sed -e's/-I//g') debian/lastfm.gconf-defaults0000664000000000000000000000025011750117616013303 0ustar /desktop/gnome/url-handlers/lastfm/command "/usr/bin/lastfm %s" /desktop/gnome/url-handlers/lastfm/enabled true /desktop/gnome/url-handlers/lastfm/needs_terminal false debian/README.source0000664000000000000000000000141511750117616011355 0ustar Removed Upstream Files The following binary, generated, non-free, or bundled third-party files have been removed from the upstream source tarball: patches/ res/libsamplerate/ res/mad/ src/Twiddly/iTunesCOMAPI/ src/breakpad/external/ src/libFingerprint/fplib/pro_qmake/Makefile.fplib src/libFingerprint/libs/ src/libUnicorn/zconf.h src/libUnicorn/zlib.h src/mediadevices/ipod/include/ src/output/RtAudio/dsound/ src/output/portAudio/PortAudio/ src/transcode/mpglib/mpglib/ The unpatched tarball will produce an error when it tries to build the PortAudio plugin. The first patch in the series fixes that by skipping the plugin. This does not reduce functionality since the Linux client does not use PortAudio. debian/package-files/0000775000000000000000000000000011750117616011670 5ustar debian/package-files/bin/0000775000000000000000000000000011750117616012440 5ustar debian/package-files/bin/lastfm0000775000000000000000000000021211750117616013647 0ustar #!/bin/sh RUNDIR="/usr/lib/lastfm" export LD_LIBRARY_PATH="${RUNDIR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" exec "${RUNDIR}/last.fm" "$@" debian/package-files/share/0000775000000000000000000000000011750117616012772 5ustar debian/package-files/share/icons/0000775000000000000000000000000011750117616014105 5ustar debian/package-files/share/icons/hicolor/0000775000000000000000000000000011750117616015544 5ustar debian/package-files/share/icons/hicolor/64x64/0000775000000000000000000000000011750117616016337 5ustar debian/package-files/share/icons/hicolor/64x64/apps/0000775000000000000000000000000011750117616017302 5ustar debian/package-files/share/icons/hicolor/64x64/apps/lastfm.png0000664000000000000000000001243611750117616021304 0ustar PNG  IHDR@@iqbKGD pHYs  IDATx[y\Gyu;JZiei-Ym2B6> ”p @!CEC 1RHb Kv,6. Iú=\7J]W{_w*^ XM[/y!ڪ=_9+Ǘ;DNLI0Z# @B F@9畦y{#Xlć?)4 'DRreXQAi: _ JAQdPEU1S!Bב:t [w #  ]uE|ަZ slf6icRPIzI4"C|6$9A+#_X?rϮ<[v/j5!]9;s3[*+`~GETۜՒ{kGWݷ^ _vwT(|1^n⌁|`TO?i̷S^_n|{#E1'>LJCDH0p/!5 <U]r;ֲtV#k'{/灛eƞmԣBI\]s1 ^6R.03vscDGn  B\ ^ eOp˅@ [>pU"zJm5n~4rn~JFFFoBDs yn[8w> _?Ejݍa"Ix]#o]~Ӎ=AG f VT1׾rDžHt}_x̱V,scay޸.~[N ħMs/}[$sH$C0 !nD$ I~X0@3T=d4(ʝruUqR6 8jmn¨qrQv#! Om5X}$Lg7>sb zټ=vpKZPD只5U^BX٪\nr) ^oCΖjM%B g#;(=/\^H|0U)zmCh,dzm'HyH$?LPXez-( B$ 5+Qf9ppC$BiC xrT^T&Qa<9臿\پ"#7Զ`6=8TSo6if~`>;> h!N[PkonZAx~ эdXDY{O&ʠLGk!|^Dn\_%偗}|@*>00ye?(-k1޶ym8ȟ1tGM䏝BBimFTX%2ߔzT>D} -@dǏ;{0͠ՋnBj~TexYЂR `XK}Vg%5h>创,SΨU+T-3MFAeK6Qec"&6\$HH)I0y@XN «9텈M['G- $U\7MnK)(V!"qLjJڞYD"\m{Tr\R)wp 6A>64+V_ KKpBp=Sb[Eht/F*  ޙAk-֓H9fAX.oyT,0LP=М4ݐ a7caVN57BBbAd o4a$ԋJ"qoy9Nb1睯SN4}~S`2nK XdFbg nͷ6 iu NjklًCs>E63!卅VUv^[0@q Ҩ~ P*PsrTZ38'ٜDǏ8T*v>r%7@x6=>d7pmu1(z0Ud0`*k+2Fv@s5¿xrGBn@ً+C@`5~)M "g~oR6$ [5'CbEhIk,Unh[X75)+(J18Z93/J}i 86AmUi5HZ-AgE~,AinOj*B" v!^/AiZ4 K](-K#WMiߖqv 8o 3/3> $dǫ=nAQiWFakG@dlкڢ6B(#3ُL$Vz@ygA $93ǷgF~qrd~ttd7(l'VѓIk;փk7YBfE vIrr`qa M!}V8(E^;r8ItqPD b;9oY e&TnDd e|4c ޱzJ^/HtC*mbor&u`w{(D27#TAW?^S0E$3@@ ،ϡjBHS(,fG1}>r+LE9Z〵XІhBDr JM0h?2hnO.x1u8baI,R`?<9Z%0Wa5S"[v A݆A -Fl{\mgNlyEUR܍M"B)bz4ϟe|^T^TV#3J'L0)m{6[ Ny+M}:3s0$BsfjTt 5=߳wJd/oC!P&m_<6$)@PVKc C3ZI"L2]=0I୭v*sBjE5&'AO@bĥ<[{=5N尉] Bol;rx"'TVXgxX87 dz⫈nz4=bygwÈF0n`d!9jm ";= z6s!>ifϓ v͏4-nHTa w]WOU{/M@g4x!CF"lO0e;#śc~ ƀ3 JM H0McCAb(s0R9涗`B@u<ۨrB+Cʲ4K _! v-,$`y'qæ_?lp Q{9#D}g. UsE2JA"gdPI.ZM\"EG Dbc 7'`/mK[V^d.KǢ?8cL1kRf@6PA.&h SX67 O_8ȯ|'sJ̽&&͚@dxn0Bz8\FƘ{B)h(7$k9Ib%E@iC)?{;{nm~@'sL``35/6'\L ؘęIn1 @), R¼ @)4r_۵Eb( WM=9rOQ,ITd/w6HNF )}8R4B-ä^%7wqfR(ǶuEd_'[R$~bW%>AAJ̀,퉛W_ c@ր UbN {zw/ V*k&I%dX x}25}}wvb wAϥ-wτԩޙrEH"] ,"H{9 @ . &\fĜI \oT{k[cN9iE1%DT2o߮^y*ĩҢ@kuvg䌐Eή_ď<`xaBOS .GlSB-~2c6OS-c_!Ϩg ]Ͻ7?ؿsy޶$Ҷ'Er@"lkQ޺Cs^:kuyJZ]! BeB4ac#b'yzG2-QR2+xRІmA^߳ f.khZP8qԙ@*`>/!@:7YعGۇs鼮j--؉{K]Z)\-u}C76Vn$ @olcQ1b"I`o6/1p o}!.t}8B:u@[Mݼp?tչA'3yO}mPh-2ILֿI&ORk`՞r#ڊWj{\zt;c'{K3_Yom<ܑDq ^~hA$5;+" =t8ɧ89NjuLwD$膏庎Gg^%QiDwoUmI'}I@?w*ɦ[mnH@K@ #LB6G F t71>0D!hcts5Ak=qr`SMCaОg%ϑڷTn0$X/Q:C~%"釆J!3s<䲩bO_Of6$`wt;:h?@: QnG&Z}$tcdG&Xt۷E\P|s~#vLc3@3Rq<+I5X)‰I02!@z?9Iːه?1&l6.#Q{ Oڀ8L!sRl (%d1&Q.b7ks>Ctzo +&sAJ =<݉IS(Z֞lUca&n.’gx:BޏBJoo ]_=E(V[AX: 0qњhs *SOKmdE (DCJLy @X65Fh|`qeb7nO'齃R:~ApcZm6( d!Hj~ܢy -m!(c/z`gW?y s8.v;:J/6>B}a_B4A6"]aK,ϡt(GFF86$:IuZ\13KÏH?ЏU TЁO~DMd>%f~"62Q|p}S'HFx3t<2q-:V.ݴI;Xv 6¶SĒ™k0kSZͳJ{ ~[G sL{8gOGx&=0UHW!\EA2C$ #ܻwVX(݃c^i[+HףmtQݻHI{/P2蘰\%?~ܑ/q\&Pm9~k¥%K˷kh̶R>7mFzO)G!>=[!0c(^tq-6N^mc(<0ѾkSBZʍ_o+h%bP6?C !0c)]PeToC6+f5c/[H!ij$-a”޾Gvi[BRYNA\4jHK jVPiHiH$@#6 g7a#o5@=fVyqרזJ-B;`z%ʅ{ iD;OD@r~ֺ]VwtwV(BتIBز9Zw~xW/YYݎPj@tycm=P0-wؙ%pΥrpZ$, a+$A^4u8wo]ְvWu,@^\/]^XeTҞ)+usp=R"M[7f~7u9mW~7#:e.Dqpߩccbf#,q_5*륕~s?v땭Ŗ@w˰yOZzzxh}N&U-X\xiҪi&vKp쟗N5ܖ"-re"da+j;$ ZNV~ ~IENDB`debian/package-files/share/icons/hicolor/16x16/0000775000000000000000000000000011750117616016331 5ustar debian/package-files/share/icons/hicolor/16x16/apps/0000775000000000000000000000000011750117616017274 5ustar debian/package-files/share/icons/hicolor/16x16/apps/lastfm.png0000664000000000000000000000165311750117616021275 0ustar PNG  IHDRabKGD pHYs  KIDAT8}Mh\u>给L2IEckJ JP(*B D`EŕXĴiZ&Mb3MBH2dͼ.lᜳpl}]w׶|՗?F ]۞*/0ylKYQ6ӻ/{(}T |]A.(4K;W'>lvP5ܯ8Q;}TVݳ+HC:^FQ uϴGՓ\GɁdGqYYcW 1ZfF}+we&a6a6!,gyiHض#ZU5ɯEO}Sݷ#Q]@}>4Po{NX2G^7"/-Uxp'?q*N[2Ә:D p7Jµ D%wxomK ^ t=0 㬮^\~SLw~an%4HTCC-e"LEUs˜VrMmdabKGD pHYs   IDATxy\W}'=ܭ֮-.K$[M !3oH`> {!y!fYL2CLX`,6-[jIݭޗZvΙ?[n",~>SUVݺ~o=\~7FS)RRB8. 527mφд@/(֭s[=|r^|XMPE g [C[)4!Z%ʲ´faB 10۱O}&Q<ߦd~l@fft m3[6Bmk ,J#O[aJ#yՋp9s(9Ӱ'g ȳDlʕzG/sW W؟8b}H_ƺ^Mi)]H/Nl)!8tE/ļ($ E!2杏QBWJAdda iAqcᘈ[moΎvw; ݠ@b$wmC|cۅIGdaې..`Oyds)% ( jgF$GNbpfR)N S?{ /OS+ K.tw!sh,q!BiiUB̓\Յt/&+(о ABDnȿxPX&= M׻WEcnl6hZ$wm"a 9@X ܂Kz *C3uQ>;(-TjOS;S p< =N|w7E-#qw>e&m{|)k5eUS: 1!CW}v?eCiz_;(rx|C1 }hbi݉[oDrВһ!!\XLϐՃK (c1TQ,{#Ap:tw~z9;>Kn W7c>*}h77p\WS_jP-p]ϵC,CT`UcCw {=FukBI&npb TyC(@hz`EӰf"w?rs6 at{7RɪE E8?!niFVQ6b\^ӶK%Hہцã:}MW|W@ҢGlUr/|n@A43J%qEBTj2 {b "wx<Qo&έh.89y@:?ǟ7 n|w8R @WIH_}nxg|Ffۆ5> ^,CJye,wp 7_ҒA au, +E;R_]oQU89y27*<7Fw<[^׉Z|3t P\zΕmM)Ԗ ܩӳ?cuS(o{WzvzM/"+7@)Ԧ48W۷l~z0\ @I ltu䎭^xRyse %a00٤83|?5WCiJldSR &|ry]3&o0zW` j* kfsv=//.6jS =+;]$(b=&$\u@/@)=⺫[փWu{wuB҄EC^H`OY. >{y`uU;"KlsUۅ{KMeatwz5ra]ٖH jsZqgnl~??)ުdԜز~}/HP8}EkS,׹$ @Mʯܧί&6r(K % b ፘ(7sjY\.4pR]AԤ{lHe;;ťeO?{APZ V !!` )Dh`q̟Sqnkr 8S3erJ3/!݅ RU6g74%fʰ9Xӳ@*8(.uh--.:L`p^ @5-ͯvc~"cpB@b1(moE JXk!d%5hJCYD$zV*lAF/M!?0k޻NB*8#4D›-xuRc`kV }zn3hںw ۴LAr6$O״L|zf/ Bwݖ}ڑ1 5J)tƒ~!-@]߇oiG-f`nDy: 71Z&(lA=LE|u;:?}3Pr6FfǦ[P5> w.W-}g Rz$̨( sLQeBdpΏuҩlb蠲L~bb|% q-ōYGQ<}"Wl2EMDMk իh tOMx͘TUGO%%]۠& kN`j~CAlsC+%$ ۜA˛ " w=gBmnBy`˻Bz-F|MPNڪDΥVpW@[ozᓖRš侗0ege>=@)຀iBfs(tnv %$z3)%h{+oS\R<:ɟ< whLzn''BJ%ϏAR }U+(cB<2^F Ӳj Xc2RS#sw꾟L@I9Kbqh 0Z3 J9GAr9*m`]]( CqAFz6d %GJ֜FۛoӠ]:Mz-bW(aj~#P  Y,"~H!~<3.3FT,˵SzCeߟVA׶ŏA/O<@[nS`J=IED &$d6?qZmvG 7^'6$z{k`*% ,Fv~dQ Ma/e1nx,Qc^@ʹŒUP,iHކD( v4] ('1ؓ(6|h}o\cA*!̱ i@M( {D!qm 7vhqx=X`ҽ;6C#}G熠lJ)P 1t34ZȦ7[<TUT52%JePx[TQB=[Dt!@woR,^*# Zn -$53 LOCQ*.` `{aNDB֔D;OkB0jHو[=,|WX 0>ix7Ͽ&̛źHɒkzn'xf?TUs.ypbtCWZEQ(*j{|Jm[C( 0 9k88Pdv_\ {8JHQVpH!R;~:t[ )D(c:Z Uw )%]~/< [9m-wwFJ=G\Hy$u,dT2@RRpwP3WԆPV{My\ΐ+4] H5BXr%b .${}sGO4ULepΏpf8 l^;JҙH5777pO_yd^2 8.t\FXV؞eLu5*Qʽr buu[,aP H5PrYs]d_: XEME[DB@'Q5mJ/]WQu ՜'IoWND@wwJU@X̡"BI$4ُt z[Kd5fbvVRJ= Aix,bm0q9LLpi5]㾻v'DS3~ /20]x Ce XERJW /߱'P -dhk T"z|~0-]l1 =޺.Uoĩ0h?¡cȭB Eӑٶ9NG<#0R|]k ^*<7 ktoHPZXY/Wh²a56jPIhPIMG 4"X&@YWm#@ 7F+uvwӽ((@s1龞GK%֎v@yr ga Ý͂X6%Ρjͨ隗./uV<&WJI$URv {rDa {<ήs8B^8^oӪyZ<%)?bWN dM={,0R15❷#kkoіAjc/\s#(FσAzUJQP7-/c#B-P>3{zvD]ѫQ'B@B%v aZ6D,2PXkJ2@p+}mo.ǩ'kC&"E' c0R6anSB (\7_ -\(С:fQn'rOxbı&tИ 2ܒ 51wzT.E*%B#Ӕ,^bb1h,CI%It u[q!|Cʻya KahUW49?ݲXՂM$h=XDgPDסi:(22w:}]HsF'}AE8xܲ{92rJª*Owo@& *,@L["{RPFAc1PC-i`A4y.z 18|p^ i;_/NfR1!=fry0MEfVYh1 ,3~ypYSZAuLU^&N(d*nfa6nXnM%<.sm5yMjs.\%K&oTaG(]UHx+v:X"B%1!`8X:Ue2B(: BP ';Yzml:KJ/v2pr 4]P% TQмmNWQs);BE*E|a)@X k H| ah/V2L棠6%KA5}qaډMIRF1LOAfee%rRH8x ܾm7 c W]iMC@%3|T$ *TDgsBDŽ%b޹Kh&J DO4/\.ޟѴe]fnRia+G1[[uRShCoN[<J/ P7+Z2YĔC۸MWm8Sf_< .Z~QJahzD(]@iC˞uׯ&bpL 'y|OJpϟGn!9{=q4ԐZ&%retVBO&sE6btR c,o5@Q xn$2Krՠ;}Oc2 t:5{qOב?3\nRQnʚ5˘˲##Cm?Q8SpKD u-~2́moݝh~7\Puc"'P8w z J苌 c2r]VM 3#=`1 8gקL A;:; .۠Bf~!'R`Ob ɤRp,ˠˋz;'0#}Xd?M7]]a Ń1.b]k5MĽk^|x/=w݂ <]妅S@ P(AI8r>|-4 R ?W~SԱ0/Q~Fl>yCBP<;UUh*yRР4@Qd4Bɟ|T1~*j(~K6p]|j؜oH$![ย0c\z&[6yKҕ J xid2]K8xՊfH #@H)I'j¢ HgD߈c;Wn9Wr];BU*.=Y7hˍ0Kp,`Gf"b*@TQ_ WMX_ב?2 C3qkנ`ݗ@Cau*:]چ d x 4P8tH]fV(pMTa+p^=K&a -_5*(MOt!@*~ǎ劅~S 3T|zvSwܺ]eJmVIDAT(Rx5k?Ɉ/~p!-eUkC[΅'Cip3/-֣@ #!q8wA[\'q^oGRt6!69˚,󬢀5+ďn-4@1sht~-x=Ep(%pm7݌ޏWU#zKMt~?%P5(NFhn܅ضpLKy. #m +$0'! t?o b*ro?U%[ 1(E|&|~XDz!2%b1R5[@w7އvפg] -ݺ=tbjSDQ&ND3r9!M|[ɧN0\JIs mȼ C7KmgDWSI'м+zU"i s0fA9!Jj\*:6`\}5e|N46SPczaz%T ΍ s&WCqL:&\$d糝qƒXkvGf ޏJ/$mp^.`;G&py%1@CuO:(TWagB*J#DEjCods0[дm3H24lW(R!QoYvFN$\ہ ~#eFmns/wLSe:XW0BC{5cHSXjkQglT ^tv}T:!0`j ]oJo Ae̠PTM]}dJT`- S53T_wd5GjC/W_ X"c-!\ןM l5mp0jMhvtl5oH|k6s =x:VLg-#wnFo-IU\}ytn<_&_t-\ع |/ڮ-MJd`GaKGd8Ne / lE*_]7mn3ԥ'q`@6=r@+ׅT_݂8ϡ4<Q*{6@4%v!a-f" Gs*s=DwPF;&/jE3quh};zҫ-+M$RIVw"s+ 7,McCuK^k^Y_RKI#|fd?bq* D`Tp|i7%n0Tl!NL?ܲw ihz6p7-oaW+vo >G|)Cejd 0Pwac5@;вk -UUbin}V ē1D˪lD^  jɃzdr4צ)$5PLePD!{& GUpTUt j"-J@<P%Ai?XҟR. 4WFǓBtj"]o: %u<_~/WA`ĕk]H?zg_1Ky  W)se׎>NWty#ȒWJ |jzk3X̸d"R^~{`i ݟH#W'*P<;L5PnrpkEqOs4~B+~ɟ_a; 5b.C~eM7&lƵ@j0]qLȎ %*+7EL۞?<#5 eȅ`ơPXAdfE6dbg?> =y\ /;0]X|hgFg!,[*dUMщƖ QRS{cI2G+%Z88}/bEaϡJ P J]^~(:e1A' 3 _cEQA8}`MLcw130P$Ts89!l*pffRh*kMU]: 22XVYF`5GQ?g|%K$׼P[(@K` ` ֔Lr\dn&TW.?cjyPꁐz\^}Pzi^* *~1&;H<|Uxdh2L|`Da1!}eK^䑙S~>_._ՀP+dAU =涖۵ [!DQUJ)w;|1aU^\p DTuŰ u;[B///ܿZ2&t[>3 ֿO^5gVڒޔ֯W'fSUH /[(d ēFX$:[OV~\rmU UBxz/eK.0]E fR> 熲 nliTj2haÚ.-kR>$ПSPy'T24dyxw  " yd*:+{\.Gy$<32ŏ%X>3"KEDQ@H@ԏ!n.ETY# `AH-rޓ:'˸]@yAi b!![$przs{v@K10rh5Xώ ߵeƴ(WXWڡ/Thԇ9h=,:Bژτ }Jpa`DLXAϗj]2\.aaooحYvRmJxAD2=~Fy T?G#|ݨz8<3%?&~w>Ÿ|ȋ'R _ į(vxt8٭qЫuoPi5D'ӺQBsYGPߛh\ /=W8x4@|3`u7vftQc{;oSTY*Z5?,ӠQPWo@V_Q6f4t΁!kUP|i/_|y1_[1y)`a!LY{d[,à4b3 @_Oh v":Q-e!5Y@Ck4 MŒ`uաB*-Jnt%yi,שHz)@`bРҗ*v&R:I66MA׉ݹe!^k8Fg(XJY|u[=wsEN=6<3f_/MN?;y]c v {)j=ʨPru?Ho-_T @@psȝ?G??4=Y++dD%QL͹rbKeVj2#~K'yau *,Xy~~[X*$Y W|N:n: ~9fJ`@^@L'V` # AU'D"oߐ$\:?p~Jk6x h}0X~gǐ+бmfA.ߥ`JEPYe<̌5MQTby-.HJk0x8W F3aZ$^hD¾b "rdžӎW^/_ye/E_\,*J b߯P?}}o]:Zz`|F>#+P!.d䎬էz$dmX֟Cqˆs~ 9G )%@{+9\}?8q6H*iG ,> :T hAh(S,"$‹ I %}Z(~)[w+%++edFb>J?qWnVCiN>äjрK$X4GJCu %Ó;c>}yT(s!Et *}.AeN($Fݺvêڲ[WܻUn:(!`5׹k j5 벎iH5+(Jec300>=cLJ 쇭bĿ UE B|]wkzlZoh"^'ez>cҸ($@LdYW|"- 3]/g^)͝đш3EK/TA80@,Fw^X]kS=i9 0f0ؘ}F P9VY+[ Toׅ/=23c?YC `EX+*1|#Z.uEU~;Jm޻T[&j+WZ·XkW=w!u0+) wr̩=z\<9l܀t!]o+b_0A#T}u n߰־Gvvqynmu K?A.9m=dق;=2 gh\Z.'gzԉ/g'^8sj:@`Y v쐾k)d@ ! X07;{MN&5 Iy3o)^e d8X #8$"39Xټ;~vu/72fX }}zfFnb 4D`?yfKv֌( ,Mb)^ XX@Dل(["ܩYe ^clNOLe4჆^Vܻn7 D(!OA1`#T[7ojpN6vޱmcEdh L5t*BޢS+].eCX6A <ܷ~tȑιn)m#^4a 0b@]hT t}am[o=J`/?'yDy;d;h\+/1p!*Bv UZ3,'~ ]F H|l;,a^^.iLN8Q#h Ձb "4BȽ/D0̇pY.g\-1@#O! AWB@Y#G!dxn3X u @fF e+!BexawC5K"4b0ШADF~AhH2`K 0S~FbKa>2kX 40c (A}zdF"j__7D3@#FhX @q`W5>> +yW+ە7,|K;ɳIENDB`debian/package-files/share/icons/hicolor/48x48/0000775000000000000000000000000011750117616016343 5ustar debian/package-files/share/icons/hicolor/48x48/apps/0000775000000000000000000000000011750117616017306 5ustar debian/package-files/share/icons/hicolor/48x48/apps/lastfm.png0000664000000000000000000001105211750117616021301 0ustar PNG  IHDR00WbKGD pHYs  IDATh޽ZY\YyrK7w{3 K` @B#) By<$yxs)yIBP"!! F:cϴ{q<[e{p WuUuN}9\)vtҽa4ih~1>I)!T C0  Õ.ީZnI_/LdDzv&}t쏛sz>{rP]?ȖZEP -GAq߫7^n7W*WT6  @>[Yklx x.BzdJ@( B{v=*5ַ^o|wsx;ŵom OL ###Ɏ|6{쑔֛8dB!TA %cKJ@aD@4D˅k߼Tں;W !@?30l A>dB@)t_"! 0k鐾wuݯ\{r֝/xm/Qw$ލldzN.o܇lbYAgADwm>Lzp/9o>X(nQ+m%a c2@V40BjdFP?7o!,S79g~D&0 vOmT/\EM𔙲̂Jٻ%ߍ8:g-Ӝ溞RqF"-'>y,eB]x[EkJ8>P M#56 stFBgW>l=`v'e3Dc8P$,"}b,eC%n߃r8Kv(*>12~ Vjju@*ZGMwWc&l!N 2+%e3~ @i\'Ɔ`L9>fQp ޽5 H6KEEV!M@8sHMۜD` B)] AD6Zp$z~t1X1o1-Sd< @ ?0 -p=4nކ**(%y/ P"i-0 CO۠:" Y? :+)(A*P w}͛ ]JI()YT߽h-@FPolCd= mp%쀎bQ 0JɶKcz2A vc^ux k'a BEo-93 sSH qu}j5v J% J)H׃hDH:R(!K65fkuxP"MAE"8$d'͎} QT9\9>cj.\ $i I3@XBTC"h"ۇh$BI pD(EHPJZ\%Qzq`ZZ3 Z ,. M- TP 0Rh2gORV!-{rz` 5T@vѺwiь!P#|-@9؝2 P\E(Xeh1sYuJʃEs. IC(]21V֓=? , pN+>[PBp~M_ F)tγtp;Rh^Cء=$ׁSPRAmQ58 `)@\dG;%k1>q839tP*DSdZ;``U,B_,N$C9$P2mW7@C3} A (Q~e>TC[ծG~6H @mT*(\ :MѼs0π[ yIJwQv*0},mhpC5u;+U(@u-~p74* 4* 5:*]-m#%$xb F9~dž ƍ7؆v#CqPS1<S98Sˍ[J@;\n8;?<!"14 Jڭ|Ƶ"]#k>pб˵JloA33;N +cqIt3Z;Xe*VC(֤ h䖖]V<67=ޕRop֎Z/}' {<_D3uEdՋ#c6ɴm ?D{> |C#hׇ D!RH6]^#q[f*$F#GKWvbէqT&P5X6q{}kMT69(%~r)z=[4x zLj(c֥m}i/nFKXsH%ƛG ZSpƧR>Or7 Ԯ|2j]sHP>?{s(EaJv!l DCb׭}B 39釡L͈'1S QFDƣe"uR:}#OӤ/ɿ"iGA9Z.y#G w|S@QGǨK!’ 4Z؝T*؅V!ay Fƈt!6+:2ZZseO(S!M7M#Q$HY4#6۶V+ȄlقᩐhRj?Jdc vpdԎ o77iiKOس'pf(u _ ?5O,H[+V&r]y*llL&KK0У^y/w @Zʭ]tVZueT #2vV eSE;Ή<uri\Zy(Oa[:0b#-^eaHfn=/ {mSR!?qcBo)jԥ !ck(¶a۸5:22Ʒ_e@m4z8Օҟ't°X"RI[Dc$CiXp'Nw~[F C -})Cgf\/oZn̽Oߛ. ȀU xw[Xк3$IENDB`debian/package-files/share/pixmaps/0000775000000000000000000000000011750117616014453 5ustar debian/package-files/share/pixmaps/lastfm32.xpm0000664000000000000000000002445111750117616016642 0ustar /* XPM */ static char * lastfm32a_xpm[] = { "32 32 519 2", " c None", ". c #D22944", "+ c #D53952", "@ c #D7445B", "# c #D8465E", "$ c #D64058", "% c #D3314C", "& c #D0213D", "* c #D43650", "= c #DF6D7F", "- c #E99BA7", "; c #EEB5BE", "> c #F1C1C8", ", c #F2C5CB", "' c #F2C5CC", ") c #F2C4CB", "! c #F0BDC4", "~ c #ECABB5", "{ c #E58796", "] c #DA5268", "^ c #D0223E", "/ c #D43851", "( c #E68B99", "_ c #F1C0C7", ": c #F2C6CC", "< c #F0BAC2", "[ c #EDAFB9", "} c #ECA8B3", "| c #EBA5B0", "1 c #ECA8B2", "2 c #EDACB6", "3 c #F1C2C8", "4 c #F2C8CE", "5 c #EDADB6", "6 c #DD6175", "7 c #DF6B7D", "8 c #F0BDC5", "9 c #F0BEC5", "0 c #EA9EAB", "a c #EA9DA9", "b c #EA9EAA", "c c #EA9DAA", "d c #EAA2AE", "e c #EEB1BB", "f c #F1C3CA", "g c #E99EA9", "h c #D53851", "i c #EA8A99", "j c #F0BFC6", "k c #ECA6B1", "l c #EA9FAB", "m c #EEB0BA", "n c #EDB0B9", "o c #D84A61", "p c #EB8797", "q c #EEAEB9", "r c #E999A6", "s c #E99AA7", "t c #EA9BA8", "u c #EBA4AF", "v c #D7415A", "w c #E3667A", "x c #EDA1AE", "y c #E893A1", "z c #E895A2", "A c #E999A5", "B c #E78E9D", "C c #D32C47", "D c #B8384D", "E c #EF93A2", "F c #E78F9D", "G c #E895A3", "H c #DF6F81", "I c #EE7487", "J c #E68D9C", "K c #E58897", "L c #E58594", "M c #E48090", "N c #E38190", "O c #E38291", "P c #E38090", "Q c #E48191", "R c #E58695", "S c #E58292", "T c #E48292", "U c #E68E9C", "V c #D63E57", "W c #B5354A", "X c #EC8797", "Y c #E48291", "Z c #E2798A", "` c #E5909D", " . c #EDB8C1", ".. c #F3D2D7", "+. c #F4D7DD", "@. c #F2CBD2", "#. c #EBAEB8", "$. c #E38695", "%. c #E37A8B", "&. c #E27D8E", "*. c #E8A1AD", "=. c #F0C3CB", "-. c #F0C6CD", ";. c #E9A6B1", ">. c #E27E8E", ",. c #E4808F", "'. c #DE687A", "). c #E1576D", "!. c #E58191", "~. c #E37B8C", "{. c #E3788A", "]. c #E17989", "^. c #EEBDC6", "/. c #FDFBFC", "(. c #FFFFFF", "_. c #FAF0F2", ":. c #E8A3AF", "<. c #E17385", "[. c #E1788A", "}. c #F1CBD2", "|. c #FEFFFF", "1. c #F3D6DB", "2. c #E27F8F", "3. c #E3798B", "4. c #E37C8D", "5. c #E67A8C", "6. c #BF2941", "7. c #EB687D", "8. c #E17889", "9. c #E17485", "0. c #DF7284", "a. c #F2CFD5", "b. c #F9ECEF", "c. c #EAADB7", "d. c #E38B99", "e. c #E38594", "f. c #E592A0", "g. c #EEC1C9", "h. c #E9A8B3", "i. c #DF6C7F", "j. c #E06E80", "k. c #E8A0AC", "l. c #F2D1D7", "m. c #E28291", "n. c #E17F8F", "o. c #EFC1C9", "p. c #F8EBEE", "q. c #E28796", "r. c #E07183", "s. c #E17586", "t. c #E77A8C", "u. c #BF3B51", "v. c #981F33", "w. c #E96B7F", "x. c #E07081", "y. c #DE6579", "z. c #EBB2BC", "A. c #DE7385", "B. c #DE6478", "C. c #DF697C", "D. c #DF6A7D", "E. c #DF687B", "F. c #DD6377", "G. c #E38C9B", "H. c #FBF4F5", "I. c #FDFCFC", "J. c #E28595", "K. c #DD6074", "L. c #EFC0C8", "M. c #E17E8F", "N. c #DF6579", "O. c #DE6B7E", "P. c #E06B7E", "Q. c #E27385", "R. c #D94A61", "S. c #B2263C", "T. c #E56A7E", "U. c #DE6679", "V. c #DF7586", "W. c #FCF7F8", "X. c #FAEFF1", "Y. c #DD6F81", "Z. c #DE6276", "`. c #DE687B", " + c #DC5C71", ".+ c #E596A3", "++ c #F0C9D0", "@+ c #DA566B", "#+ c #EDBAC3", "$+ c #DB596E", "%+ c #DE6578", "&+ c #DF677A", "*+ c #E04F67", "=+ c #BC2039", "-+ c #DE4F66", ";+ c #E79EAA", ">+ c #E9ABB6", ",+ c #DB576C", "'+ c #DD6075", ")+ c #DB5D71", "!+ c #F5DCE1", "~+ c #DE6F81", "{+ c #E18090", "]+ c #F9EDF0", "^+ c #E69DA9", "/+ c #DD6E80", "(+ c #DA596E", "_+ c #DB586D", ":+ c #DE6477", "<+ c #DE677A", "[+ c #DA3F58", "}+ c #BD1C36", "|+ c #D31F3B", "1+ c #CE1F3B", "2+ c #E8A7B2", "3+ c #E07C8D", "4+ c #DC596E", "5+ c #DE6779", "6+ c #E69CA8", "7+ c #EAAFB9", "8+ c #D95167", "9+ c #E6A0AC", "0+ c #FDFAFB", "a+ c #FDFBFB", "b+ c #E38F9D", "c+ c #DC6074", "d+ c #DC586D", "e+ c #D84B61", "f+ c #D2304A", "g+ c #D21F3B", "h+ c #B71D35", "i+ c #D5203D", "j+ c #CB102E", "k+ c #E6A1AC", "l+ c #D3465D", "m+ c #CE1A37", "n+ c #D12A45", "o+ c #D3334D", "p+ c #D53D55", "q+ c #D7465E", "r+ c #D94F66", "s+ c #DC5E73", "t+ c #DD6B7E", "u+ c #F8EBED", "v+ c #FCF6F7", "w+ c #E07A8A", "x+ c #DE6D80", "y+ c #E38D9C", "z+ c #F2D4D9", "A+ c #ECBCC4", "B+ c #CD213D", "C+ c #CE1836", "D+ c #CE1C39", "E+ c #D5213D", "F+ c #A51B31", "G+ c #D7223E", "H+ c #CC1330", "I+ c #E18A99", "J+ c #D96478", "K+ c #CD1330", "L+ c #CF1F3B", "M+ c #CE1D39", "N+ c #CE1C38", "O+ c #CE1B37", "P+ c #CE1A36", "Q+ c #CB0D2B", "R+ c #E18B99", "S+ c #DB6F81", "T+ c #CB0C2B", "U+ c #CD1633", "V+ c #CC112F", "W+ c #CC1C38", "X+ c #D34A60", "Y+ c #EFC6CD", "Z+ c #DE7F8F", "`+ c #CC1431", " @ c #D0213C", ".@ c #D6213E", "+@ c #841829", "@@ c #DD2A45", "#@ c #CF1F39", "$@ c #D6566B", "%@ c #EBB7C0", "&@ c #CC1935", "*@ c #D12740", "=@ c #D12841", "-@ c #D02841", ";@ c #D1253F", ">@ c #CC2640", ",@ c #CE223C", "'@ c #D13C53", ")@ c #FCF9FA", "!@ c #F2D3D8", "~@ c #CD233E", "{@ c #D12640", "]@ c #CE1834", "^@ c #D13D54", "/@ c #ECBBC4", "(@ c #CD1D38", "_@ c #D42942", ":@ c #C9253E", "<@ c #DE314B", "[@ c #D22F47", "}@ c #CF2B43", "|@ c #EFC9CF", "1@ c #DB7383", "2@ c #CE1E38", "3@ c #D22E45", "4@ c #D23047", "5@ c #D23048", "6@ c #D33148", "7@ c #D22C44", "8@ c #CF2D44", "9@ c #E7B0BA", "0@ c #D85C6F", "a@ c #CE2039", "b@ c #E8AAB4", "c@ c #D96577", "d@ c #D0223B", "e@ c #D23148", "f@ c #D12840", "g@ c #D24157", "h@ c #EDBEC5", "i@ c #CE263F", "j@ c #DB324B", "k@ c #A72237", "l@ c #CA3147", "m@ c #D83B50", "n@ c #D33147", "o@ c #D6576A", "p@ c #FAF4F6", "q@ c #FDFCFD", "r@ c #E08A97", "s@ c #D1394E", "t@ c #D12E44", "u@ c #D13046", "v@ c #D2354A", "w@ c #D55165", "x@ c #EDBDC5", "y@ c #E396A1", "z@ c #D23046", "A@ c #D85C6E", "B@ c #FDFEFE", "C@ c #F5DDE1", "D@ c #D2465B", "E@ c #D02A41", "F@ c #D12B42", "G@ c #CF3349", "H@ c #E8ACB6", "I@ c #E08996", "J@ c #E23B52", "K@ c #87212F", "L@ c #E34559", "M@ c #D64254", "N@ c #D3374A", "O@ c #D96A79", "P@ c #F7E7EA", "Q@ c #EBB7BF", "R@ c #E9ADB5", "S@ c #EFC8CF", "T@ c #FCF7F9", "U@ c #EFCACF", "V@ c #D85B6B", "W@ c #D94E5F", "X@ c #D54355", "Y@ c #E49AA4", "Z@ c #F9EEF0", "`@ c #EAB4BC", " # c #E9ADB6", ".# c #F5DFE3", "+# c #EFCBD1", "@# c #D34154", "## c #DA4254", "$# c #CE384C", "%# c #D54153", "&# c #DB4D5D", "*# c #D74A5A", "=# c #D54051", "-# c #D65464", ";# c #E7AAB3", "># c #F9EDEF", ",# c #FEFEFE", "'# c #E396A0", ")# c #D85867", "!# c #DB5A68", "~# c #DC5E6C", "{# c #DB5B6A", "]# c #D85060", "^# c #E1909B", "/# c #F6E3E7", "(# c #E6A4AD", "_# c #D54B5B", ":# c #D64556", "<# c #E64E60", "[# c #7B1F2C", "}# c #741E2A", "|# c #E85665", "1# c #D95360", "2# c #D94F5D", "3# c #D74B59", "4# c #D85C6A", "5# c #DD737F", "6# c #DF7C87", "7# c #DB6370", "8# c #DC616D", "9# c #DF6B76", "0# c #DF6C77", "a# c #DE6A76", "b# c #DE6975", "c# c #DD6671", "d# c #DA5966", "e# c #D95B69", "f# c #DB6875", "g# c #DA6673", "h# c #D75462", "i# c #D64755", "j# c #D8505D", "k# c #E15865", "l# c #C23D4E", "m# c #AB3644", "n# c #E8626D", "o# c #DA5B66", "p# c #DB5E68", "q# c #DD636D", "r# c #DD656F", "s# c #DE6670", "t# c #DE6973", "u# c #E06E78", "v# c #E1747D", "w# c #E17780", "x# c #E17881", "y# c #E1767F", "z# c #E0747E", "A# c #E0717B", "B# c #DF6E78", "C# c #DD626D", "D# c #DC5E69", "E# c #DB5B67", "F# c #DB5B66", "G# c #DF5F6A", "H# c #E05361", "I# c #C04452", "J# c #E96B74", "K# c #DD6971", "L# c #DF6C74", "M# c #E07179", "N# c #E1757D", "O# c #E17981", "P# c #E27D84", "Q# c #E38087", "R# c #E38289", "S# c #E4838A", "T# c #E37F86", "U# c #E27C83", "V# c #E17980", "W# c #E0757D", "X# c #DF7179", "Y# c #DD6770", "Z# c #E06871", "`# c #E75F6B", " $ c #BB4652", ".$ c #EF7980", "+$ c #E2797E", "@$ c #E17A80", "#$ c #E27E84", "$$ c #E38388", "%$ c #E4868C", "&$ c #E58A8F", "*$ c #E68D92", "=$ c #E68E93", "-$ c #E58C91", ";$ c #E58A8E", ">$ c #E4868B", ",$ c #E38288", "'$ c #E17A7F", ")$ c #E0767C", "!$ c #E8797E", "~$ c #E3636D", "{$ c #953742", "]$ c #EC7E85", "^$ c #EC9194", "/$ c #E48E91", "($ c #E48F92", "_$ c #E59497", ":$ c #E6979A", "<$ c #E79A9D", "[$ c #E89D9F", "}$ c #E89C9F", "|$ c #E59396", "1$ c #E38C8F", "2$ c #E78E90", "3$ c #F1898E", "4$ c #C95862", "5$ c #BD5D66", "6$ c #EF969A", "7$ c #F2A9AA", "8$ c #ECABAB", "9$ c #E9AAAB", "0$ c #E9ABAC", "a$ c #E9AEAF", "b$ c #E9ADAE", "c$ c #E8AAAB", "d$ c #E8A8A9", "e$ c #EAA8A9", "f$ c #EFA9A9", "g$ c #F2A0A2", "h$ c #DA787F", "i$ c #81323B", "j$ c #9B4E56", "k$ c #D08086", "l$ c #E9A0A4", "m$ c #F3B2B4", "n$ c #F6BBBB", "o$ c #F6BBBC", "p$ c #F4B5B6", "q$ c #EEA8AA", "r$ c #DD8F94", "s$ c #B6646C", "t$ c #702E37", " . + @ # $ % & ", " * = - ; > , ' ) ! ~ { ] ^ ", " / ( _ : < [ } | | 1 2 ; 3 4 5 6 ", " 7 8 9 1 0 a a b b b b a a c d e f g h ", " i j k a b l l l l l l l l l l l a b m n o ", " p q r s t t t t t t t t t t t t t t t r l u v ", " w x y z z z z z z z z z z z z z z z z z z z A B C ", " D E F B B B B B B B B B B B B B B B B B B B B B G H ", " I J K K K L M N O P Q R K K K K K K S P P T { K K U V ", " W X Y Y M Z ` ...+.@.#.$.%.Y Y Y M &.*.=.-.;.>.,.Y { '. ", " ).!.~.{.].^./.(.(.(.(.(._.:.<.~.%.[.}.(.(.|.(.1.2.3.4.5.6. ", " 7.8.9.0.a.(.b.c.d.e.f.g./.(.h.i.j.k.(.l.m.n.o.p.q.r.s.t.u. ", " v.w.x.y.z.(.1.A.B.C.D.E.F.G.H.I.J.K.L.(.M.N.D.O.H P.j.j.Q.R. ", " S.T.U.V.W.X.Y.Z.E.`.E.E.E. +.+(.++@+#+(.q.$+%+&+&+E.`.`.= *+ ", " =+-+ +;+(.>+,+6 K.K.K.'+6 K.)+!+|.~+{+|.]+^+/+(+_+K.:+<+E.[+ ", " }+|+1+2+(.3+4+U.`.E.E.5+%+:+$+6+(.7+8+9+0+(.a+a.b+c+d+e+f+g+ ", " h+i+j+k+(.l+m+n+o+p+q+r+,+s+Z.t+u+v+w+6 x+y+z+(.(.A+B+C+D+E+ ", " F+G+H+I+(.J+K+L+M+N+O+m+m+O+P+Q+R+(.S+T+U+V+W+X+Y+(.Z+`+ @.@ ", " +@@@#@$@(.%@&@*@=@=@=@=@-@;@>@,@'@)@!@~@*@=@{@]@^@(./@(@_@:@ ", " <@[@}@|@(.1@2@3@4@5@6@7@8@9@0@a@b@(.c@d@e@5@f@g@|.h@i@j@k@ ", " l@m@n@o@p@q@r@s@t@u@v@w@x@(.y@z@A@B@C@D@E@F@G@H@(.I@t@J@ ", " K@L@M@N@O@p.(.P@Q@R@S@T@(.U@V@W@X@Y@(.Z@`@ #.#(.+#@###$# ", " %#&#*#=#-#;#>#(.(.,#C@'#)#!#~#{#]#^#/#|.(.b.(#_#:#<#[# ", " }#|#1#1#2#3#4#5#6#5#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l# ", " m#n#o#p#q#r#s#t#u#v#w#x#x#y#z#A#B#t#C#D#E#F#G#H# ", " I#J#K#L#M#N#O#P#Q#R#S#S#R#T#U#V#W#X#L#Y#Z#`# ", " $.$+$@$#$$$%$&$*$=$=$-$;$>$,$#$'$)$!$~$ ", " {$]$^$/$($_$:$<$[$}$<$:$|$($1$2$3$4$ ", " 5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$ ", " j$k$l$m$n$o$p$q$r$s$t$ ", " ", " "}; debian/package-files/share/pixmaps/lastfm16.xpm0000664000000000000000000000557111750117616016646 0ustar /* XPM */ static char * lastfm16a_xpm[] = { "16 16 144 2", " c None", ". c #E58695", "+ c #E58897", "@ c #E37C8C", "# c #E794A1", "$ c #EEB3BC", "% c #ECA9B3", "& c #EBA2AE", "* c #ECA7B2", "= c #EEB2BC", "- c #EAA1AD", "; c #ECA4B0", "> c #EA9EAA", ", c #EA9DA9", "' c #EA9DAA", ") c #EA9CA9", "! c #ECA6B1", "~ c #EA8A9A", "{ c #E8919F", "] c #E892A0", "^ c #E48292", "/ c #E793A0", "( c #EBABB5", "_ c #E99EAB", ": c #E48493", "< c #E48594", "[ c #E48494", "} c #E58A99", "| c #EAA2AE", "1 c #E58B9A", "2 c #E07283", "3 c #E46E81", "4 c #E27688", "5 c #F0C1C9", "6 c #F8E5E8", "7 c #F1C4CB", "8 c #F4D4DA", "9 c #F8E3E7", "0 c #E38091", "a c #E38090", "b c #F8E6EA", "c c #F0C0C8", "d c #F6E0E4", "e c #E27C8D", "f c #E4798B", "g c #E36B7E", "h c #E9A1AD", "i c #F2CDD3", "j c #DE687C", "k c #DF697C", "l c #DE677A", "m c #E89CA9", "n c #F4D2D8", "o c #E58C9A", "p c #DE6377", "q c #DF6A7D", "r c #E06E80", "s c #D73A53", "t c #F3D1D6", "u c #E07687", "v c #DE6477", "w c #DE6478", "x c #DC5E72", "y c #F6DEE2", "z c #E07C8C", "A c #F6E2E6", "B c #E28493", "C c #DD5F73", "D c #DA5268", "E c #D11936", "F c #F1CAD1", "G c #D2364F", "H c #D02642", "I c #D22E48", "J c #D43650", "K c #D63D56", "L c #EEB8C0", "M c #D53C55", "N c #DB6477", "O c #F0C4CB", "P c #E697A4", "Q c #CE1A37", "R c #D72A44", "S c #E5929F", "T c #E4909E", "U c #D02740", "V c #D22C44", "W c #D22B44", "X c #D54A5F", "Y c #D1364E", "Z c #F5DDE1", "` c #D2344C", " . c #D03048", ".. c #D22841", "+. c #C8364A", "@. c #D44054", "#. c #F2D1D6", "$. c #EAAAB4", "%. c #DE7080", "&. c #E4919E", "*. c #F6E1E4", "=. c #DA5C6C", "-. c #E48E99", ";. c #DD6E7D", ">. c #EBAFB8", ",. c #E8A5AE", "'. c #D7394E", "). c #DD505F", "!. c #D74E5C", "~. c #E49099", "{. c #EEBBC1", "]. c #EBACB4", "^. c #DE6E7A", "/. c #DD6470", "(. c #DC5E6C", "_. c #E28A94", ":. c #ECB3BA", "<. c #E38B95", "[. c #D94E5D", "}. c #DF636D", "|. c #DE6972", "1. c #E06F78", "2. c #E27880", "3. c #E27D85", "4. c #E17880", "5. c #E0717A", "6. c #DE6771", "7. c #DD616C", "8. c #CF515D", "9. c #E78086", "0. c #E3888C", "a. c #E58F93", "b. c #E79498", "c. c #E69498", "d. c #E58E92", "e. c #E3878B", "f. c #E68286", "g. c #C95C64", "h. c #C3787C", "i. c #E49EA0", "j. c #EFB2B2", "k. c #EFB2B3", "l. c #E7A2A4", "m. c #CB8084", " . + @ ", " # $ % & & * = - ", " ; > , ' ' ' ' ' ) ! ", " ~ { ] ] ] ] ] ] ] ] ] ] ", " . ^ / ( _ : < [ } | 1 [ 2 ", " 3 4 5 6 7 8 9 0 a b c d e f ", " g h i j k l m n o 5 p q q r ", " s t u v w p x y z A 5 B C D ", " E F G H I J K z L M N O P Q ", " R S T U V W X Y Z ` V .y .. ", " +.@.#.$.%.&.*.=.-.O ;.>.,.'. ", " ).!.~.{.].^./.(._.:.<.[. ", " }.|.1.2.3.3.4.5.6.7.8. ", " 9.0.a.b.c.d.e.f.g. ", " h.i.j.k.l.m. ", " "}; debian/package-files/share/lastfm/0000775000000000000000000000000011750117616014260 5ustar debian/package-files/share/lastfm/icons/0000775000000000000000000000000011750117616015373 5ustar debian/package-files/share/lastfm/icons/user_green22.png0000664000000000000000000000265211750117616020410 0ustar PNG  IHDRĴl;bKGD pHYs  JIDAT8mˏ\WqgcrD$C( v(R C,X'd X L86`hytL}{=E&Ǝ)[N>US%-uAm5oxm|QHq r&e`GqJ_\;]\xx{KX:[;ӭuSs7h$M~;8y>EyO/-/|;_{eD8RH WRV%J(Tʱ5;]7~rgk@s˽\zo=Z6IK)sTԽ۔Y~Ss-!(M:RWV?zcBOKEbSjvNpȱ843c%':u~r0ɵL^Ӳ\’@05IaHp^cP:טg6Gjs05+/,uwd?~{Mk;}t\;h25Q=Ph)K! GZfbi-]e3.>p24eNl' gGi0c.~~)Zh|o.Y Zx_ʺԙv0KKJ"rh"tw_7!@ B2Φ:V3uM]*\̘ d¡(*GUU 1@l3b)J0&Su²=1J&B"hu^=qo.߷o֝J&ē!QXig g|;-%E؅V^_8YB kO׼*qYLde1Q9'O*5@YX}*7H"7+tM8O@̟@ܣs-5逽xRq|6$+'7/>:841_ Q2!J(ʪdR A;h` t}xruB?Xwk1_J*(Q2fc>S`#Z{? (iX.כ^ʜ1gSٔYp3qǻ|ӥEʥEQ26šu_4~o Ĕ]@}:Ĕ{э۟\[ :j+MV$M'6m+d}~PqE^ܸ{s[vkn ~w-^-L4DgvU!t{@Su OȚZJIENDB`debian/package-files/share/lastfm/icons/user_blue22.png0000664000000000000000000000265211750117616020237 0ustar PNG  IHDRĴl;bKGD pHYs  JIDAT8mUKo\Iq}헻3b'$D" 3@B4 $i@,XE fbłBa$#MB'L'rv|V*v̻;{Yn4>H/>/K, j/uݸ;NVEiK3+X_m:kUصiV4 2g}Ng㷾PEBpJХE&52}j>I?|{W7Won_YjYkP =,#4'8I8aJ@ؾʥUo |ε76=#5tiJ.gwB7ΠK 8B?m]/r~xwuU\ĩ1_ |UcJ\ sv'As>JD~%4_*IJ ,BxBlۏ@'>ZW*7qUo]rB n/d&!zz$Φ*֖"qQ,0 @?/TȥYaP EkK0 &9F֞Љ*߼+x5e3BZ #e>:K(BA D6POW}4ZVRI8-P =0)w6V]~ccs <+T$˦nw\3;a!UyR(=2$I鰫D|:L;~guzfgig4?X ;3LYw|O S"12l.-GfRBE"4GQ,я%L2\Q_<9||Xkr Ʃ8Q$f<A%٣;޿) U2ZTy~تW7\PJQ Nf(p>1??x;'2QFBfH 1R45BXrF+.C" zӇ_~ޓݚ o j{m[ o^o+z:"Y?<}ywr#VөǏ: xYc%E:H(s>4 N)~_Z/IENDB`debian/package-files/share/lastfm/icons/user_disabled22.png0000664000000000000000000000255711750117616021063 0ustar PNG  IHDRĴl;bKGD pHYs  IDAT8mUIoG^lV2)0C#ș686|9'_ @40 _$Lye:Ed9ٱP@=TW |4ݻg(,u/gO 8eY+<8~I)/?1>4޽=;Wqqҥ??i6j$I0ϱ|r+Mӯ޽{0 <|0_bΝ;hlZmllܻvz<Ec<ٳg)%ITJǃ@WnݢV듵^zk sEBLJ)dYlۆ!en۝F@^_}o/_,1u]uqc:V1z=_Jy; 7nNٙ3gܼb&PJA)>cs)%fR8MSGuaeffٴmI@k]%sBHeB9GWyBQmNgs2ܴ,keYVwVegY) ASNsȲ {{{F0 R0h4l6m۶?ϲSJ9W,˂ʾIQŋW^ӧa0 . ø3B$ X,'B2ϱRBJ B @YOjcŊhQfX,(eY0 ض^~ŋ/ 8eX àEQpeBa0~da6jpx4Mheqey.8OZ j2va n{Z J)i$B$( 98`U]ru<ϡ0ưEQ"aAD_uiaL&Ve@kIMTSJz5 s%X, I˲`&loo7JTN)8筭pX$IE(BBT(? 1P !}>k%aҐtպ)}E ',;=? ]Ud{GM)TkξWO^Xm-.LH7~~Irow#SntQ.w߿pz:EH3gZae͓x뷽_Mgx5f;o]ޗ}}֙&)6ZjUaƸ h58vrXxQd dSoUn/__:ib\UjN<|{ f<ƦJ)5W a?TިOT۝;/]j!(#lc?s 9?D16)#ttiHuF}Z@Ƞ\_8|lP/oDT|lS_裻od[ Pbo7DنPsaC$$R8GokF(Fju8FT,TtNd{/pւ;HY7i[11&H&Dj@9OgXe% A}VhzX֪d$ua̝<]ᵚHO#=ro?V_jsGjZM$!2zl&k,{VEV|ZLM#˙HZϲlj"\,oX\^Zw(G񧟂R!j9ᝁ)B;k;܌gA ֘ɄK#!ޡZuL5`uu-|ٟV&=+-8,R'|Vi4 ){{{{}xn61Հx}'y q6RK-3g#Gw:~j"E@h+޻,k@y(vbMZӏd'bo=)kU&^'s0 #66m{Jo7Vm"%LWU8ۙ\B43 A@.cii)(rH? OO^Ɯi3 +++,//aXeYx,..Lղ|B㵵@mavvriI\fvv۶mNZP(| $Jb6nO LiY4RNO6R\|n7 xR$=ϣJCHR6wAUUapa|)(3 e>RJ>e&W\lnnRPEQ4FAX$@ZaAu:n#:RJ8۷om]Ou]"q/qkAs:ш(P|>ϵkX__`kk{N躎(@$ljmh(Blllp-r+++!ܜQ4ODo aZ躎ayuu4'53==DQTRvR$tRyRJ0DJy5M#Nspp W?WJՙ.qw!lT' Zπ-qgZ~x…qSV' EfDIEَl;hmJJR"L1aYǴZ-Z^EQrR)_7` 8^oZQ,z>GAOid2<}n~Zm}G\nƉo\Ny@Gv?[$x ߺN9`iY?,={k aU:0k;'W~`/_&_=a-ggO,r+h '`J!L T *AXUr4Ū~3PKYk̜neYP_0t -p/VFrA5``;MJ|5ɸ`RD~ L a0.r YUn4#>W3wd5JzsXGP6£<s;-XU<׹(+% :񟰟P= ,ջںB!t|sA^DWbzOX~㋯]+lA&{O[?~&:M=#:֓cK #kO 00ѱ1ۏ(Cz ӡ«LJʎr Yy4ʺ Ch?o>]rs+™A'C*@Ls{Ga7@v:7=|(eK9V]*-D!TCz@wF&XeU&oooc#NsҊ̲UeUZ0mVգD0هp8N !=&{~D L@C#Fd8SYkصJMn.®7z}#zo'y d¡z<;(JRy ,`gdNnw'W޹{A nֹ%{Y+ϟy|eUw檞l7w?8~g;f{@}MӹT sn)ecγ-d: 5j3:a @Y%% ٧,C^gW IENDB`debian/package-files/share/kde4/0000775000000000000000000000000011750117616013621 5ustar debian/package-files/share/kde4/services/0000775000000000000000000000000011750117616015444 5ustar debian/package-files/share/kde4/services/lastfm.protocol0000664000000000000000000000023211750117616020512 0ustar [Protocol] exec=/usr/bin/lastfm "%u" protocol=lastfm input=none output=none helper=true listing= reading=false writing=false makedir=false deleting=false debian/package-files/share/applications/0000775000000000000000000000000011750117616015460 5ustar debian/package-files/share/applications/lastfm.desktop0000664000000000000000000000026111750117616020340 0ustar [Desktop Entry] Name=Last.fm Comment=Listen to Last.fm radio Exec=/usr/bin/lastfm Icon=lastfm Terminal=false Type=Application Categories=Qt;Audio;AudioVideo; StartupNotify=true debian/lastfm.manpages0000664000000000000000000000002011750117616012170 0ustar debian/lastfm.1 debian/changelog0000664000000000000000000006564611757100142011061 0ustar lastfm (1:1.5.4.27091+dfsg1-1ubuntu1) quantal; urgency=low * Resync on Debian. - debian/patches/fix_ftbfs.diff: change include from glib/glist.h into glib.h. This fixes FTBFS. (LP: #1002885) -- Jean-Louis Dupond Tue, 22 May 2012 15:42:10 +0200 lastfm (1:1.5.4.27091+dfsg1-1) unstable; urgency=low * Remove bundled mpglib * Fix compilation with gcc 4.7 (Closes: #667236) * Compile with hardened build flags * Update debian/copyright * Update Standards-Version to 3.9.3 -- John Stamp Mon, 07 May 2012 17:07:35 -0700 lastfm (1:1.5.4.27091+dfsg-6) unstable; urgency=low * Fix include flags on Debian GNU/kFreeBSD. Thanks to Christoph Egger. Closes: #632506 -- John Stamp Sat, 02 Jul 2011 19:17:22 -0700 lastfm (1:1.5.4.27091+dfsg-5) unstable; urgency=low * debian/patches/do_not_prevent_logouts.patch: do not prevent logging out when the main window is visible. Closes: #632050, LP: #757794 * Remove obsolete debian/lastfm.preinst * Add libqt4-sql-sqlite to Recommends. LP: #449955 * Bump Standards-Version to 3.9.2. No changes needed. * Fix description-synopsis-starts-with-article lintian warning -- John Stamp Sat, 02 Jul 2011 13:27:36 -0700 lastfm (1:1.5.4.27091+dfsg-4) unstable; urgency=low * debian/patches/build-fixes.diff: use pkg-config instead of hard-coding include paths for glib-2.0 and libgpod. Closes: #621832, LP: #749089. * debian/patches/build-kfreebsd.diff: drop references to /usr/local, which have nothing at all to do with a kfreebsd build. * Clean the architecture dependent stuff in Build-Depends -- John Stamp Mon, 11 Apr 2011 16:14:56 -0700 lastfm (1:1.5.4.27091+dfsg-3) unstable; urgency=low * Upload to unstable. -- John Stamp Sun, 13 Mar 2011 17:57:18 -0700 lastfm (1:1.5.4.27091+dfsg-2) experimental; urgency=low * Added patch: - sidebar-crash-fix: prevent a crash when dragging sidebar items -- John Stamp Wed, 08 Dec 2010 13:49:09 -0800 lastfm (1:1.5.4.27091+dfsg-1) experimental; urgency=low * New upstream. * Update debian/rules so the client doesn't spam stdout with debug info (Closes: #599605) * Added patches: - gcc41.diff: fix compilation with gcc >= 4.1 - hide-loved-radio.diff: this is now unsupported, but the new version didn't fully remove it - ipod-scrobble-fix.diff: identify ipods by their FirewireGuid; this should prevent the duplicate scrobbles bug -- John Stamp Mon, 06 Dec 2010 11:47:33 -0800 lastfm (1:1.5.4.26862+dfsg-6) unstable; urgency=high * Back out the undocumented changes that sneaked in with -5. We only want the fix for CVE-2010-3362. -- John Stamp Mon, 04 Oct 2010 13:23:01 -0700 lastfm (1:1.5.4.26862+dfsg-5) unstable; urgency=high * Fix CVE-2010-3362: insecure library loading (Closes: #598294) -- John Stamp Thu, 30 Sep 2010 14:03:23 -0700 lastfm (1:1.5.4.26862+dfsg-4) unstable; urgency=low * Bump Standards-Version to 3.9.1. No changes needed. * Fix warnings when compiling with Qt 4.7 -- John Stamp Wed, 04 Aug 2010 00:44:59 -0400 lastfm (1:1.5.4.26862+dfsg-3) unstable; urgency=low * Switch to dh and 3.0 (quilt) source format. * Add misc:Depends * Add a watch file (comments only) * merge reduce-linkage and link-to-needed patches -- John Stamp Sat, 15 May 2010 09:09:54 -0700 lastfm (1:1.5.4.26862+dfsg-2) unstable; urgency=low * Bump Standards-Version to 3.8.4 No changes needed * Fix some text/icon display issues when using Qt 4.6 -- John Stamp Thu, 18 Mar 2010 22:16:48 -0700 lastfm (1:1.5.4.26862+dfsg-1) unstable; urgency=low * New upstream. * Removed patches: - cheaper-save-geometry: applied upstream - gcc-4.3: applied upstream - hide-crashreport-option: applied upstream * Add build-kfreebsd.diff to use OSS audio with non-Linux kernels * Add descriptions to the quilt patches * Link to all needed libraries (Closes: #555076) * Bump Standards-Version to 3.8.3 No changes needed -- John Stamp Thu, 12 Nov 2009 12:31:50 -0800 lastfm (1:1.5.1.31879.dfsg-3) unstable; urgency=low * Remove lastfm protocol handler for KDE 3. * Fix painting of the sidebar background color during scroll. * Bump Standards-Version to 3.8.2. No changes needed. -- John Stamp Tue, 07 Jul 2009 20:25:54 -0700 lastfm (1:1.5.1.31879.dfsg-2) unstable; urgency=low * Add a lastfm protocol handler for KDE 4. * Add qt45.diff to fix building with Qt 4.5. Thanks to Fabrice Coutadeur. (Closes: #524429) * Bump standards to 3.8.1. No changes needed. -- John Stamp Fri, 17 Apr 2009 20:59:43 -0700 lastfm (1:1.5.1.31879.dfsg-1) unstable; urgency=low * New upstream. * Install all binaries into /usr/lib/lastfm and remove the lintian override. /usr/bin/lastfm is now a script. (Closes: #455073) * Bump standards to 3.8.0 - Move README.Debian-source to README.source and update it. * Added patches: - hide-crashreport-option: release builds don't do crash reports. - set-firstrun-status: don't re-run the setup wizard on every startup. * Changed patches: - build-fixes: split into build-fixes and reduce-linkage. - save-window-states: reduce its scope and rename to cheaper-save-geometry - dirpaths: don't change where to look for plugins. - alsa-qdebug => alsa-uses-qdebug - no-fingerprint => no-fingerprint-lib - no-scrobble-directories => hide-scrobbledir-option * Removed patches: - translations * Sync remaining patches. -- John Stamp Thu, 10 Jul 2008 11:16:32 -0700 lastfm (1:1.4.2.58240.dfsg-3) unstable; urgency=low * Add DM-Upload-Allowed header. -- John Stamp Sat, 05 Jul 2008 13:55:55 -0700 lastfm (1:1.4.2.58240.dfsg-2) unstable; urgency=low [ John Stamp ] * Add zlib1g-dev to build depends due to recent Qt4 dependency cleanup (Closes: #476998) [ Adeodato Simó ] * Add libx11-dev and x11proto-core-dev to Build-Depends as well. -- John Stamp Mon, 21 Apr 2008 09:48:20 -0700 lastfm (1:1.4.2.58240.dfsg-1) unstable; urgency=low * New Upstream. * Build with libgpod-nogtk-dev. * Added patches: - check-soundcard-errors: Don't crash if another program is already using the audio device. See LP #188490 for the original report. -- John Stamp Tue, 05 Feb 2008 23:16:36 -0800 lastfm (1:1.4.1.57486.dfsg-1) unstable; urgency=low * Added patches: - gcc-4.3.patch: fix compilation on gcc-4.3. - no-fingerprint: the fingerprint library isn't needed on Linux and would pull in more dependencies. - alsa-qdebug: decrease plugin size and reduce unnecessary noisiness in the log file. - no-scrobble-directories: renamed from no-mediadevice to account for the patch's reduced scope. * Removed patches: - 07_tooltip-segfault-fix - 08_silence-debug.diff - 11_close-fds - 12_fix-http-hangs These worked around various bugs that are no longer present in lastfm or Qt. * Sync remaining patches. * Update manpage. * Remove deprecated Encoding key in desktop file. * Update debian/copyright and make it machine readable. * Update README.Debian-source to account for removed source files. * Add Homepage field to debian/control and remove dependency on gconf. * Bump standards version to 3.7.3. No changes needed. -- John Stamp Fri, 14 Dec 2007 20:07:00 -0800 lastfm (1:1.3.2.14.dfsg-1) unstable; urgency=low * Added patches: - 00_build-fixes - 10_save-window-states: properly save window size/state and prevent the client from becoming unrecoverably invisible - 11_close-fds: invoking a browser or editor no longer blocks audio device - 12_fix-http-hangs: Prevent the client from hanging when fetching artist/album images. Many thanks to Markus Järvinen for his help in tracking this down. (Closes: #435128) * Changed patches: - 01_translations: fix a mistranslated string * Removed patches: - 04_alsaplayback: applied upstream - 04_transcode: applied upstream - 10_container-load: merge with save-window-states; they both modify the same section of code. * Remove README.Debian; not needed anymore * Remove non-free files from source tarball. -- John Stamp Sat, 03 Nov 2007 17:39:30 -0700 lastfm (1:1.3.2.13-1) unstable; urgency=low * New Upstream Version * Changed patches: - 01_translations: updated and enabled * Re-sync patches. -- John Stamp Thu, 20 Sep 2007 16:39:19 -0700 lastfm (1:1.3.2.11-3) unstable; urgency=low * Changed patches: -04_alsaplayback & 04_transcode: fix building on 64-bit arches -- John Stamp Sat, 15 Sep 2007 10:19:33 -0700 lastfm (1:1.3.2.11-2) unstable; urgency=low * Changed patches: -04_alsaplayback: remove a debug message to prevent flooding container.log -- John Stamp Fri, 14 Sep 2007 22:04:41 -0700 lastfm (1:1.3.2.11-1) unstable; urgency=low * New Upstream Version (Closes: #442152) * Added patches: - 04_transcode: fix pops in audio stream. - 08_silence-debug: don't report a 'failure' to the console when the failure is expected and perfectly normal. - 10_container-load: significantly reduce cpu load when moving the main window. * Changed patches: - 01_translations: disable until Ismail updates the Turkish patch. - 04_alsaplayback: update alsaaudio to reduce cpu load. * Removed patches: - 06_history-fix: applied upstream. - 10_reduce-load: applied upstream. * Re-sync remaining patches. * Comply with the new menu hierarchy. -- John Stamp Fri, 14 Sep 2007 09:10:15 -0700 lastfm (1:1.3.1.0-1) unstable; urgency=low * New Upstream Version * Added patches: - 10_reduce-load: A couple of quick optimizations to reduce the cpu load while playing. * Changed patches: - 03_no-mediadevice: Don't make unrelated change to LastFM.pro. It's outside this patch's scope. - 04_alsaplayback: Remove portaudio build from LastFM.pro. Client doesn't use it. - 08_alsa-default-device: Merge with 04_alsaplayback. - Refresh remaining patches so they apply cleanly. * Remove /etc/*/lastfm.js and /usr/lib/lastfm.mozilla script. These should no longer be needed. * Change firefox recommends to iceweasel. * Fix lastfm.desktop so desktop-file-validate doesn't complain. * Update README.Debian -- John Stamp Wed, 15 Aug 2007 20:21:29 -0700 lastfm (1:1.3.0.62-2) unstable; urgency=low * Added patches: - 08_alsa-default-device: Only have one default device, not one per card. This will avoid inconsistent behavior while detecting devices. (Closes: #431819) - 09_set-locale.diff: Correctly sets the language when there is no Last.fm.conf file. If you need to change the language after that, you can do so in Tools | Options | Account. (Closes: #432232) * Changed patches: - 03_no-mediadevice: Don't compile unused code that is pulling in a dependency on libqt4-sql. * Move from simple patchsys to quilt for headache saving goodness. -- John Stamp Sun, 08 Jul 2007 19:10:17 -0700 lastfm (1:1.3.0.62-1) unstable; urgency=low * New upstream version in svn. Build tarball using build-release-linux.sh found in the svn directory. * Added patches: - 07_tooltip-segfault-fix: Work around #431322. * Changed patches: - 01_translations: İsmail Dönmez fixed up the Turkish translation a bit more. - 03_no-mediadevice: Significantly minimize its invasiveness to improve chances that upstream will accept it. - Resync remaining patches so they apply cleanly. * Remove trailing backslash in menu. * Update man page. The cache and log files moved from ~/.lastfm to ~/.local/share/Last.fm * Add svn download location to copyright info. -- John Stamp Mon, 02 Jul 2007 09:50:49 -0700 lastfm (1:1.3.0.58-1) unstable; urgency=low * New upstream (Closes: #429786) * Upstream adopted most of the former patches. Start with a new set: - 01_translations: Use Turkish translation provided by İsmail Dönmez at Pardus. - 02_tray-icon-size: Use 22x22 tray icons. - 03_no-mediadevice: Do not compile code related to media devices, binary updates, or unused plugins. - 04_alsaplayback: Configure audio device only on startup to work around mysterious browser / audio setup conflict. - 05_tray-volume: Control volume with mouse wheel over tray icon. This will function as soon as a user upgrades to Qt >= 4.3. - 06_history-fix: When removing a history item, don't duplicate the last item in the list. - 20_dirpaths: Modify install directories for packaging. * Add README.Debian to describe a known bug regarding sound setup. * Bump compat to 5. Update rules, control, copyright. * Install translations and icons in /usr/share/lastfm. Desktop icons move to hicolor. -- John Stamp Sat, 23 Jun 2007 10:30:49 -0700 lastfm (1:1.1.3.0-4) unstable; urgency=low * Changed patches: - 13_alsa.diff: Fix audio output on big endian machines. Many thanks to Rafal Czlonka for help in tracking this down. (Closes: #426955) -- John Stamp Tue, 05 Jun 2007 15:21:43 -0700 lastfm (1:1.1.3.0-3) unstable; urgency=low * Remove the gconf schemas file and re-add the gconf defaults file from 1.1.90. This prevents a conflict with last-exit. (Closes: #422720) This also reopens #369907 for now. The keys will exist, but gconf-editor will report "This key has no schema". -- John Stamp Tue, 08 May 2007 09:23:50 -0700 lastfm (1:1.1.3.0-2) unstable; urgency=low * Change unofficial versions to UNRELEASED. * Install lastfm.desktop to /usr/share/applications. * Move lastfm.mozilla to /usr/lib/lastfm and remove lastfm.mozilla.1. * Update lastfm.js. * Clean up debian/rules * Use a basic gconf schemas file. Also restores gconf preferences which went AWOL in the last upload. (Closes: #369907) * Added patches: - 06_gcc43: Add some missing includes to fix compilation on gcc-snapshot. (Closes: #422201) * Reorder patches to minimize compexity: - 18_valgrind and 19_delete-http: merged into 04_memleaks - 22_loqqer: moved to 05_loqqer - re-diff all of the patches so they apply cleanly. -- John Stamp Sat, 05 May 2007 21:21:38 -0700 lastfm (1:1.1.3.0-1) unstable; urgency=low * Take over package with the maintainer's permission. * Upload to unstable. (Closes: #412130, #413271) * Close bugs fixed by patches: - dmix support (Closes: #354405) - don't segfault on wrong/busy audio devices (Closes: #355194, #395078) - don't limit output to first soundcard (Closes: #366977) - fix distorted output (Closes: #373239, #388064) - fix memory leaks (Closes: #399423) * Update description to include a note about the msk patchset. * Do not generate/remove lastfm.js and lastfm.protocol in postinst/postrm. Install them as files. -- John Stamp Tue, 01 May 2007 15:05:28 -0700 lastfm (1:1.1.3.0~msk8) UNRELEASED; urgency=low * Changed patches: - 13_alsa: fix a potential overflow in the device description. - 20_noupdates: remove unused reference to actionCheckForUpdates in container.ui. This was only partially removed before. * Update man page. -- John Stamp Mon, 30 Apr 2007 22:43:47 -0700 lastfm (1:1.1.3.0~msk7) UNRELEASED; urgency=low * Changed patches: - 22_loqqer: delete instances of gLogger in the class destructors * remove Loqqer.o when cleaning a previous build. -- John Stamp Sun, 22 Apr 2007 09:32:10 -0700 lastfm (1:1.1.3.0~msk6) UNRELEASED; urgency=low * Added patches: - 22_loqqer: Change implementation of Loqqer to prevent text relocations. Needed for amd64, ia64, SELinux, etc. * Changed patches: - 03_translations: Add Turkish translation from Pardus: http://paketler.pardus.org.tr/devel/source/lastfm-player.html - 13_alsa: use a more generalized linux test in LastFM.pro. * Update 16_select-browser so it applies cleanly. -- John Stamp Tue, 17 Apr 2007 19:32:36 -0700 lastfm (1:1.1.3.0~msk5) UNRELEASED; urgency=low * Added patches: - 00_qt41: permit building on Qt 4.1 so dapper can enjoy new versions too * Changed patches: * - 10_tray: make sure show/hide behavior works for both Qt 4.1 and 4.2 - 11_history: . add "Remove this station" to the context menu for recent stations . increase history size to 100 . fix RecentStations counting error when playing an older station . delete station names that are no longer in the history - 12_loveban: fix track banning. Thanks Fluxid! * Update the rest of the patches so they apply cleanly * Fix rules, postinst, postrm to properly use ldconfig * Lower Qt build dependency to 4.1.0 -- John Stamp Fri, 23 Mar 2007 14:02:49 -0700 lastfm (1:1.1.3.0~msk4) UNRELEASED; urgency=low * Change 10_tray to add discovery mode option to tray popup. * Add 21_tray-icon-size and trayicons22.tar.gz so we can have 22x22 tray icons instead of those tiny 16x16 ones. * Lintian override added: package-name-doesnt-match-sonames libLastFMTools1 -- John Stamp Mon, 19 Feb 2007 14:09:11 -0800 lastfm (1:1.1.3.0~msk3) UNRELEASED; urgency=low * Add support for iceweasel in postinst and postrm. -- John Stamp Wed, 7 Feb 2007 08:28:52 -0800 lastfm (1:1.1.3.0~msk2) UNRELEASED; urgency=low * Update 13_alsa so it can choose from multiple default devices in a multi-card environment. -- John Stamp Sun, 4 Feb 2007 18:37:29 -0800 lastfm (1:1.1.3.0~msk1) UNRELEASED; urgency=low * New upstream. * Removed patches: - 00_build: Doesn't seem to be needed anymore. - 17_draglabel: Applied upstream. * Added patches: - 03_translations: Patch the .pro files to install translations. * Update the rest of the patches so they apply cleanly. * Fix rules to properly clean things before a rebuild. -- John Stamp Sat, 27 Jan 2007 15:29:07 -0800 lastfm (1:1.0.9.6~msk3) UNRELEASED; urgency=low * Changed patches: - 10_tray: slightly modify behavior to make it more intuitive (for me). - 13_alsa: Get rid of some unused variables. - 14_timebar: Trim to include only the necessary bits. * Removed patches: - 16_sensiblebrowser: Not needed for Linux client. 1.0.9.6 lets Qt figure it out for itself, but see below. * New patches: - 16_select-browser: Some people want to select which browser they use, and apparently Qt's default isn't acceptable. Add an option in Tools->Options->Connection to manually configure the browser that the client uses. It will default to "sensible-browser." - 19_delete-http: The webservice plugin doesn't delete http requests, which causes lastfm to use up more and more memory at each song change. (This seems to average about 200-300k per song, according to top.) One delete was commented out (why?) and another was missing. Add/enable them. - 20_noupdates: Downloading binary updates and plugins is a bad idea in a packaged situation. This aggressively removes any code that checks for new versions, that downloads updates and plugins, or that configures media devices or players. None of it relates to the linux client, and removing it shrinks the app by about 150K. -- John Stamp Sun, 21 Jan 2007 19:17:12 -0800 lastfm (1:1.0.9.6~msk2) UNRELEASED; urgency=low * Change 13_alsa: now it's a whole new ALSA plugin that builds libplayback_alsa.so instead of libplayback_rtaudio.so. Advantages: - Adds default device support for those who need dmix. - Full device names appear in the soundcard combobox - No need to restart app after changing devices: just stop and play again. - Easier to debug. :) * Add 18_valgrind: fix a few memory leaks that valgrind reported. -- John Stamp Wed, 17 Jan 2007 21:36:12 -0800 lastfm (1:1.0.9.6~msk1) UNRELEASED; urgency=low * New upstream. * New patches: - 02_noitunes: Linux doesn't have iTunes, so don't build things that we will never use. * Update older patches to account for source changes: - 00_build: no need to patch definitions.pro.inc, but we do need to fix some misbehaving makefiles (see #345388). - 11_history: remove friendly history names; implemented upstream. - 17_draglabel: no more CPU load problem, so remove. But do show all words in multi-word labels. - Other minor tweaks to patches so they apply cleanly. -- John Stamp Mon, 18 Dec 2006 13:18:56 -0800 lastfm (1:1.0.7-0.04) UNRELEASED; urgency=low * Use cdbs. Makes patch admin easier. * Update and reorder patches: - patches < 10 are needed for a working package - patches >= 10 are bugfixes / features * Remove 04_oss in favor of 13_alsa ALSA "default" device patch. * Link to libasound2 again and remove dependency on alsa-oss * Update app icons to match those for Windows / Mac. -- John Stamp Mon, 18 Dec 2006 09:37:37 -0800 lastfm (1:1.0.7-0.03) UNRELEASED; urgency=low * I'm using the OSS patch. So don't link to libasound2 and add alsa-oss to package dependencies. * Add sharutils to build dependencies * Use absolute path for ldconfig -- John Stamp Tue, 21 Nov 2006 10:53:31 -0800 lastfm (1:1.0.7-0.02) UNRELEASED; urgency=low * Compile with Debian testing version of Qt * Add 10_draglabel to prevent massive cpu usage when using Qt >= 4.2. * Make 04_oss a little more aggressive so we don't compile code we'll never use. * Bring packaging a little closer to official packaging for 1.1.90 -- John Stamp Sun, 19 Nov 2006 10:26:38 -0800 lastfm (1:1.0.7-0.01) UNRELEASED; urgency=low * New upstream * Use version epoch since 1.0.7 < 1.1.90. * Update patches from 1.1.90. * Add mine: - 01_tray: Single click in tray show/hides main window - 02_history: . Max history items changed from 9 to 50 . Give history items friendly descriptions - 03_loveban: Add love/ban items to Recently Played context menu - 04_oss: Use OSS instead of ALSA and add aoss to .desktop command - 05_timebar: Show a timebar even when not scrobbling - 06_icons: Adjust icon and library paths - 07_scrobble: Possibly fix a minor scrobbling issue - 08_sensiblebrowser: use "sensible-browser" instead of "firefox" for now - 09_showradio: undefine HIDE_RADIO so we have an interface. -- John Stamp Sat, 18 Nov 2006 10:02:26 -0800 lastfm (1.1.90-4) unstable; urgency=low * New maintainer. (Closes: #385362) * Fixed messing up gconf source. (Closes: #392450) * Removed unnecessary commented lines in debian/rules. * Bumped Standards-Version, no changes necessary. -- Franz Pletz Sat, 14 Oct 2006 15:30:40 +0200 lastfm (1.1.90-3) unstable; urgency=low * Fix browser integration (Closes: #357539) * Fix .desktop file (Closes: #359782) * Fix to build with g++ 4.1 (Closes: #357960) * Change to link against standard libsamplerate package -- Paul Telford Wed, 5 Apr 2006 12:01:17 -0700 lastfm (1.1.90-2) unstable; urgency=low * Fix history bug (Closes: #356520) -- Paul Telford Tue, 14 Mar 2006 08:26:13 -0800 lastfm (1.1.90-1) unstable; urgency=low * Sync with svn (new upstream version number) * Added new Conflicts/Depends to avoid some Qt bugs (Closes: #354717) -- Paul Telford Fri, 24 Feb 2006 10:34:07 -0800 lastfm (1.1.5-3) unstable; urgency=low * Fixed some broken embedded icons -- Paul Telford Tue, 21 Feb 2006 14:53:28 -0800 lastfm (1.1.5-2) unstable; urgency=low * Sync with svn * Avoid broken QMovie call (closes: #353751) -- Paul Telford Tue, 21 Feb 2006 09:54:06 -0800 lastfm (1.1.5-1) unstable; urgency=low * New upstream version -- Paul Telford Thu, 2 Feb 2006 15:32:39 -0800 lastfm (1.1.4-4) unstable; urgency=low * Sync with svn * Add fixes to compile with latest qt4 -- Paul Telford Thu, 12 Jan 2006 13:38:06 -0800 lastfm (1.1.4-3) unstable; urgency=low * Sync with svn (replaces GPL-incompatible md5 routines) -- Paul Telford Wed, 4 Jan 2006 12:39:45 -0800 lastfm (1.1.4-2) unstable; urgency=low * Added protocol handler logic for /etc/firefox * Sync with svn -- Paul Telford Tue, 3 Jan 2006 12:39:21 -0800 lastfm (1.1.4-1) unstable; urgency=low * New upstream version -- Paul Telford Wed, 21 Dec 2005 11:01:25 -0800 lastfm (1.1.3-1) unstable; urgency=low * New upstream version * Added a protocol handler for GNOME * Added missing libasound2-dev build-dep -- Paul Telford Fri, 16 Dec 2005 14:27:41 -0800 lastfm (1.1.2-3) unstable; urgency=low * Sync with svn -- Paul Telford Thu, 15 Dec 2005 11:14:49 -0800 lastfm (1.1.2-2) unstable; urgency=low * Sync with svn (fixes to RtAudio scheduling) * Added protocol handlers for mozilla-firefox and KDE -- Paul Telford Tue, 13 Dec 2005 11:10:08 -0800 lastfm (1.1.2-1) unstable; urgency=low * Sync with svn * Added missing 'README' file in mpglib directory -- Paul Telford Thu, 8 Dec 2005 13:45:08 -0800 lastfm (1.1.1-0.svn20051130) unstable; urgency=low * Sync with svn -- Paul Telford Wed, 30 Nov 2005 10:27:40 -0800 lastfm (1.1.1-0.svn20051123) unstable; urgency=low * Sync with svn * Put an icon in the menu entry -- Paul Telford Wed, 23 Nov 2005 08:32:54 -0800 lastfm (1.1-1) unstable; urgency=low * new upstream version from svn -- Paul Telford Mon, 21 Nov 2005 14:47:56 -0800 lastfm (1.0.4-2) unstable; urgency=low * Allow volume to be preserved across launches -- Paul Telford Fri, 21 Oct 2005 14:39:55 -0700 lastfm (1.0.4-1) unstable; urgency=low * Initial Release. -- Paul Telford Thu, 29 Sep 2005 10:05:03 -0700 debian/lastfm.docs0000664000000000000000000000003411750117616011332 0ustar README debian/README.source debian/source/0000775000000000000000000000000011750117616010475 5ustar debian/source/format0000664000000000000000000000001411750117616011703 0ustar 3.0 (quilt) debian/source/include-binaries0000664000000000000000000000132311750117616013634 0ustar debian/package-files/share/icons/hicolor/22x22/apps/lastfm.png debian/package-files/share/icons/hicolor/128x128/apps/lastfm.png debian/package-files/share/icons/hicolor/32x32/apps/lastfm.png debian/package-files/share/icons/hicolor/48x48/apps/lastfm.png debian/package-files/share/icons/hicolor/16x16/apps/lastfm.png debian/package-files/share/icons/hicolor/64x64/apps/lastfm.png debian/package-files/share/lastfm/icons/user_blue22.png debian/package-files/share/lastfm/icons/user_green22.png debian/package-files/share/lastfm/icons/user_disabled22.png debian/package-files/share/lastfm/icons/user_orange22.png debian/package-files/share/lastfm/icons/user_black22.png debian/package-files/share/lastfm/icons/user_red22.png debian/lastfm.10000664000000000000000000000464311750117616010554 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH LASTFM 1 "2007-12-06" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME lastfm - Audio player for last.fm streams .SH SYNOPSIS .B /usr/bin/lastfm [options] [URL] .SH DESCRIPTION This manual page documents briefly the .B lastfm command. .PP .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. .B LASTFM is the flagship product from the team that designed the Audioscrobbler system, a music engine based on a massive collection of Music Profiles. Each music profile belongs to one person, and describes their taste in music. Last.fm uses these music profiles to make personalized recommendations, match you up with people who like similar music, and generate custom radio stations for each person. This program will allow you to play your personalized radio station streams from the last.fm website. .SH OPTIONS .SS Arguments: .TP URL A station url beginning with .I lastfm:// .SS Options: .TP .B \-\-sanity Show the number of listeners instead of the number of plays scrobbled. .TP .B \-tray Start the program minimized as a tray icon. .SH FILES .TP .I ~/.config/Last.fm/Last.fm.conf Application config file. .TP .I ~/.local/share/Last.fm/cache/* Cache files for album artwork and artist descriptions. .TP .I ~/.local/share/Last.fm/IpodDevice.db SQLite database of songs played on the iPod. .TP .I ~/.local/share/Last.fm/Last.fm.log Application log file. .TP .I ~/.local/share/Last.fm/*_mediadevice.xml Submission cache of songs played on the iPod. .TP .I ~/.local/share/Last.fm/*_submissions.xml Submission cache of songs played with the client. .SH AUTHOR This manual page was written by Paul Telford , for the Debian project (but may be used by others). It has been updated by John Stamp . debian/rules0000775000000000000000000000072711750117720010257 0ustar #!/usr/bin/make -f DPKG_EXPORT_BUILDFLAGS := 1 include /usr/share/dpkg/buildflags.mk override_dh_auto_clean: dh_auto_clean -Sqmake rm -rf bin/services/* build i18n/*.qm override_dh_auto_configure: dh_auto_configure -Sqmake -- "DEFINES += NDEBUG" override_dh_auto_build: dh_auto_build -Sqmake cd i18n; lrelease-qt4 *.ts override_dh_makeshlibs: dh_makeshlibs --exclude=usr/lib/lastfm override_dh_shlibdeps: dh_shlibdeps -l $(DESTDIR)/usr/lib/lastfm %: dh $@