gitextract_3180lsex/ ├── .gitignore ├── .gitmodules ├── COPYING ├── Last.fm.pro ├── README.md ├── admin/ │ ├── Doxyfile │ ├── dist/ │ │ ├── mac/ │ │ │ ├── AppleScriptSuite.sdef │ │ │ ├── Growl Registration Ticket.growlRegDict │ │ │ ├── Standard.plist │ │ │ ├── build-release.rb │ │ │ ├── bundleFrameworks.sh │ │ │ ├── dacp.fm.last.Scrobbler.scpt │ │ │ ├── dsa_pub.pem │ │ │ ├── fm.last.Scrobbler.scpt │ │ │ └── sign_update.rb │ │ ├── updates/ │ │ │ ├── Changelog.txt │ │ │ ├── Mac/ │ │ │ │ └── updates.xml │ │ │ ├── Win/ │ │ │ │ └── updates.xml │ │ │ ├── updates.html │ │ │ ├── updates.linux.xml │ │ │ ├── updates.mac.beta.xml │ │ │ ├── updates.mac.xml │ │ │ ├── updates.win.beta.xml │ │ │ └── updates.win.xml │ │ └── win/ │ │ ├── Last.fm.iss │ │ ├── build-release-win.pl │ │ ├── isspp │ │ └── wix/ │ │ ├── boffin.wxs │ │ ├── client.wxs │ │ ├── eula.rtf │ │ ├── qt.conf │ │ ├── wixboff.cmd │ │ └── wixclient.cmd │ ├── include.qmake │ ├── qmake/ │ │ ├── 1stparty.pro.inc │ │ ├── 3rdparty.pro.inc │ │ ├── QtOverride.pro.inc │ │ └── debug.pro.inc │ └── tests/ │ ├── QtTest_to_JUnit.xslt │ ├── log_test.sh │ └── run_tests.sh ├── app/ │ ├── boffin/ │ │ ├── App.cpp │ │ ├── App.h │ │ ├── HistoryWidget.cpp │ │ ├── HistoryWidget.h │ │ ├── Info.plist.in │ │ ├── LocalCollectionScanner.cpp │ │ ├── LocalCollectionScanner.h │ │ ├── MainWindow.cpp │ │ ├── MainWindow.h │ │ ├── MediaPipeline.cpp │ │ ├── MediaPipeline.h │ │ ├── PickDirsDialog.cpp │ │ ├── PickDirsDialog.h │ │ ├── PlaydarHostsModel.cpp │ │ ├── PlaydarHostsModel.h │ │ ├── PlaydarTagCloudModel.cpp │ │ ├── PlaydarTagCloudModel.h │ │ ├── Playlist.cpp │ │ ├── Playlist.h │ │ ├── PlaylistModel.cpp │ │ ├── PlaylistModel.h │ │ ├── PlaylistWidget.h │ │ ├── ScanProgressWidget.cpp │ │ ├── ScanProgressWidget.h │ │ ├── ScrobSocket.cpp │ │ ├── ScrobSocket.h │ │ ├── Shuffler.cpp │ │ ├── Shuffler.h │ │ ├── TagBrowserWidget.cpp │ │ ├── TagBrowserWidget.h │ │ ├── TagCloudView.cpp │ │ ├── TagCloudView.h │ │ ├── TagDelegate.cpp │ │ ├── TagDelegate.h │ │ ├── TrackSource.cpp │ │ ├── TrackSource.h │ │ ├── WordleDialog.h │ │ ├── XspfDialog.cpp │ │ ├── XspfDialog.h │ │ ├── XspfReader.cpp │ │ ├── XspfReader.h │ │ ├── boffin.pro │ │ ├── comet/ │ │ │ ├── CometParser.cpp │ │ │ ├── CometParser.h │ │ │ └── YajlCallbacks.hpp │ │ ├── json_spirit/ │ │ │ ├── README │ │ │ ├── json_spirit.h │ │ │ ├── json_spirit_reader.cpp │ │ │ ├── json_spirit_reader.h │ │ │ ├── json_spirit_utils.h │ │ │ ├── json_spirit_value.cpp │ │ │ ├── json_spirit_value.h │ │ │ ├── json_spirit_writer.cpp │ │ │ └── json_spirit_writer.h │ │ ├── layouts/ │ │ │ ├── SideBySideLayout.cpp │ │ │ └── SideBySideLayout.h │ │ ├── main.cpp │ │ ├── playdar/ │ │ │ ├── BoffinPlayableItem.cpp │ │ │ ├── BoffinPlayableItem.h │ │ │ ├── BoffinRqlRequest.cpp │ │ │ ├── BoffinRqlRequest.h │ │ │ ├── BoffinTagRequest.cpp │ │ │ ├── BoffinTagRequest.h │ │ │ ├── CometRequest.cpp │ │ │ ├── CometRequest.h │ │ │ ├── PlaydarApi.h │ │ │ ├── PlaydarAuthRequest.cpp │ │ │ ├── PlaydarAuthRequest.h │ │ │ ├── PlaydarCometRequest.cpp │ │ │ ├── PlaydarCometRequest.h │ │ │ ├── PlaydarConnection.cpp │ │ │ ├── PlaydarConnection.h │ │ │ ├── PlaydarRosterRequest.cpp │ │ │ ├── PlaydarRosterRequest.h │ │ │ ├── PlaydarStatRequest.cpp │ │ │ ├── PlaydarStatRequest.h │ │ │ ├── TPlaydarApi.hpp │ │ │ ├── TrackResolveRequest.cpp │ │ │ ├── TrackResolveRequest.h │ │ │ ├── jsonGetMember.cpp │ │ │ └── jsonGetMember.h │ │ ├── qrc/ │ │ │ └── boffin.qrc │ │ └── sample/ │ │ └── SampleFromDistribution.h │ ├── client/ │ │ ├── Application.cpp │ │ ├── Application.h │ │ ├── AudioscrobblerSettings.cpp │ │ ├── AudioscrobblerSettings.h │ │ ├── Bootstrapper/ │ │ │ ├── AbstractBootstrapper.cpp │ │ │ ├── AbstractBootstrapper.h │ │ │ ├── AbstractFileBootstrapper.cpp │ │ │ ├── AbstractFileBootstrapper.h │ │ │ ├── ITunesDevice/ │ │ │ │ ├── ITunesParser.h │ │ │ │ ├── MediaDeviceInterface.h │ │ │ │ ├── itunesdevice.cpp │ │ │ │ └── itunesdevice.h │ │ │ ├── PluginBootstrapper.cpp │ │ │ ├── PluginBootstrapper.h │ │ │ ├── iTunesBootstrapper.cpp │ │ │ └── iTunesBootstrapper.h │ │ ├── CommandReciever/ │ │ │ ├── CommandReciever.h │ │ │ └── CommandReciever.mm │ │ ├── Dialogs/ │ │ │ ├── BetaDialog.cpp │ │ │ ├── BetaDialog.h │ │ │ ├── BetaDialog.ui │ │ │ ├── DiagnosticsDialog.cpp │ │ │ ├── DiagnosticsDialog.h │ │ │ ├── DiagnosticsDialog.ui │ │ │ ├── LicensesDialog.cpp │ │ │ ├── LicensesDialog.h │ │ │ └── LicensesDialog.ui │ │ ├── Fingerprinter/ │ │ │ ├── AacSource.cpp │ │ │ ├── AacSource.h │ │ │ ├── AacSource_p.h │ │ │ ├── FlacSource.cpp │ │ │ ├── FlacSource.h │ │ │ ├── MadSource.cpp │ │ │ ├── MadSource.h │ │ │ ├── VorbisSource.cpp │ │ │ └── VorbisSource.h │ │ ├── Last.fm Scrobbler.css │ │ ├── MainWindow.cpp │ │ ├── MainWindow.h │ │ ├── MediaDevices/ │ │ │ ├── DeviceScrobbler.cpp │ │ │ ├── DeviceScrobbler.h │ │ │ ├── IpodDevice.cpp │ │ │ ├── IpodDevice.h │ │ │ ├── IpodDevice_linux.cpp │ │ │ ├── IpodDevice_linux.h │ │ │ ├── MediaDevice.cpp │ │ │ └── MediaDevice.h │ │ ├── Mpris2/ │ │ │ ├── DBusAbstractAdaptor.cpp │ │ │ ├── DBusAbstractAdaptor.h │ │ │ ├── MediaPlayer2.cpp │ │ │ ├── MediaPlayer2.h │ │ │ ├── MediaPlayer2Player.cpp │ │ │ ├── MediaPlayer2Player.h │ │ │ ├── Mpris2.cpp │ │ │ └── Mpris2.h │ │ ├── PrefPane/ │ │ │ ├── English.lproj/ │ │ │ │ ├── InfoPlist.strings │ │ │ │ └── MainWindow.xib │ │ │ ├── FmLastPrefPane.h │ │ │ ├── FmLastPrefPanePrefWidget.h │ │ │ ├── FmLastPrefPanePrefWidget.mm │ │ │ ├── FmLastPrefPaneQtView.h │ │ │ ├── FmLastPrefPaneQtView.mm │ │ │ ├── Info.plist │ │ │ ├── PrefPane.pro │ │ │ ├── PrefPane.xcodeproj/ │ │ │ │ └── project.pbxproj │ │ │ └── PrefPane_prefix.pch │ │ ├── ScrobSocket.cpp │ │ ├── ScrobSocket.h │ │ ├── Services/ │ │ │ ├── AnalyticsService/ │ │ │ │ ├── AnalyticsService.cpp │ │ │ │ ├── AnalyticsService.h │ │ │ │ ├── PersistentCookieJar.cpp │ │ │ │ └── PersistentCookieJar.h │ │ │ ├── AnalyticsService.h │ │ │ ├── RadioService/ │ │ │ │ └── RadioService.cpp │ │ │ ├── ScrobbleService/ │ │ │ │ ├── ScrobbleService.cpp │ │ │ │ ├── ScrobbleService.h │ │ │ │ ├── StopWatch.cpp │ │ │ │ └── StopWatch.h │ │ │ └── ScrobbleService.h │ │ ├── Settings/ │ │ │ ├── AccountSettingsWidget.cpp │ │ │ ├── AccountSettingsWidget.h │ │ │ ├── AccountSettingsWidget.ui │ │ │ ├── AdvancedSettingsWidget.cpp │ │ │ ├── AdvancedSettingsWidget.h │ │ │ ├── AdvancedSettingsWidget.ui │ │ │ ├── CheckFileSystemModel.cpp │ │ │ ├── CheckFileSystemModel.h │ │ │ ├── CheckFileSystemView.cpp │ │ │ ├── CheckFileSystemView.h │ │ │ ├── GeneralSettingsWidget.cpp │ │ │ ├── GeneralSettingsWidget.h │ │ │ ├── GeneralSettingsWidget.ui │ │ │ ├── IpodSettingsWidget.cpp │ │ │ ├── IpodSettingsWidget.h │ │ │ ├── IpodSettingsWidget.ui │ │ │ ├── PreferencesDialog.cpp │ │ │ ├── PreferencesDialog.h │ │ │ ├── PreferencesDialog.ui │ │ │ ├── ScrobbleSettingsWidget.cpp │ │ │ ├── ScrobbleSettingsWidget.h │ │ │ ├── ScrobbleSettingsWidget.ui │ │ │ ├── SettingsWidget.cpp │ │ │ └── SettingsWidget.h │ │ ├── Widgets/ │ │ │ ├── BioWidget.cpp │ │ │ ├── BioWidget.h │ │ │ ├── ContextLabel.cpp │ │ │ ├── ContextLabel.h │ │ │ ├── FriendListWidget.cpp │ │ │ ├── FriendListWidget.h │ │ │ ├── FriendListWidget.ui │ │ │ ├── FriendWidget.cpp │ │ │ ├── FriendWidget.h │ │ │ ├── FriendWidget.ui │ │ │ ├── MetadataWidget.cpp │ │ │ ├── MetadataWidget.h │ │ │ ├── MetadataWidget.ui │ │ │ ├── NothingPlayingWidget.cpp │ │ │ ├── NothingPlayingWidget.h │ │ │ ├── NothingPlayingWidget.ui │ │ │ ├── NothingPlayingWidget_mac.mm │ │ │ ├── NowPlayingStackedWidget.cpp │ │ │ ├── NowPlayingStackedWidget.h │ │ │ ├── NowPlayingWidget.cpp │ │ │ ├── NowPlayingWidget.h │ │ │ ├── PlaybackControlsWidget.cpp │ │ │ ├── PlaybackControlsWidget.h │ │ │ ├── PlaybackControlsWidget.ui │ │ │ ├── PointyArrow.cpp │ │ │ ├── PointyArrow.h │ │ │ ├── ProfileArtistWidget.cpp │ │ │ ├── ProfileArtistWidget.h │ │ │ ├── ProfileWidget.cpp │ │ │ ├── ProfileWidget.h │ │ │ ├── ProfileWidget.ui │ │ │ ├── PushButton.cpp │ │ │ ├── PushButton.h │ │ │ ├── RefreshButton.cpp │ │ │ ├── RefreshButton.h │ │ │ ├── ScrobbleControls.cpp │ │ │ ├── ScrobbleControls.h │ │ │ ├── ScrobblesListWidget.cpp │ │ │ ├── ScrobblesListWidget.h │ │ │ ├── ScrobblesWidget.cpp │ │ │ ├── ScrobblesWidget.h │ │ │ ├── ScrobblesWidget.ui │ │ │ ├── ShortcutEdit.cpp │ │ │ ├── ShortcutEdit.h │ │ │ ├── SideBar.cpp │ │ │ ├── SideBar.h │ │ │ ├── SimilarArtistWidget.cpp │ │ │ ├── SimilarArtistWidget.h │ │ │ ├── StatusBar.cpp │ │ │ ├── StatusBar.h │ │ │ ├── TagWidget.cpp │ │ │ ├── TagWidget.h │ │ │ ├── TitleBar.cpp │ │ │ ├── TitleBar.h │ │ │ ├── TrackWidget.cpp │ │ │ ├── TrackWidget.h │ │ │ ├── TrackWidget.ui │ │ │ ├── WidgetTextObject.cpp │ │ │ └── WidgetTextObject.h │ │ ├── Wizard/ │ │ │ ├── AccessPage.cpp │ │ │ ├── AccessPage.h │ │ │ ├── BootstrapInProgressPage.h │ │ │ ├── BootstrapPage.cpp │ │ │ ├── BootstrapPage.h │ │ │ ├── BootstrapProgressPage.cpp │ │ │ ├── BootstrapProgressPage.h │ │ │ ├── FirstRunWizard.cpp │ │ │ ├── FirstRunWizard.h │ │ │ ├── FirstRunWizard.ui │ │ │ ├── LoginPage.cpp │ │ │ ├── LoginPage.h │ │ │ ├── PluginsInstallPage.cpp │ │ │ ├── PluginsInstallPage.h │ │ │ ├── PluginsPage.cpp │ │ │ ├── PluginsPage.h │ │ │ ├── TourFinishPage.cpp │ │ │ ├── TourFinishPage.h │ │ │ ├── TourLocationPage.cpp │ │ │ ├── TourLocationPage.h │ │ │ ├── TourMetadataPage.cpp │ │ │ ├── TourMetadataPage.h │ │ │ ├── TourScrobblesPage.cpp │ │ │ ├── TourScrobblesPage.h │ │ │ ├── WizardPage.cpp │ │ │ └── WizardPage.h │ │ ├── audioscrobbler.icns │ │ ├── audioscrobbler.rc │ │ ├── client.pro │ │ ├── lastfm-scrobbler.desktop │ │ ├── main.cpp │ │ └── qrc/ │ │ └── audioscrobbler.qrc │ ├── fingerprinter/ │ │ ├── Fingerprinter.cpp │ │ ├── Fingerprinter.h │ │ ├── LAV_Source.cpp │ │ ├── LAV_Source.h │ │ ├── fingerprinter.pro │ │ └── main.cpp │ └── twiddly/ │ ├── IPod.cpp │ ├── IPod.h │ ├── IPodScrobble.h │ ├── IPodSettings.h │ ├── ITunesLibrary.h │ ├── ITunesLibraryTrack.h │ ├── ITunesLibrary_mac.cpp │ ├── ITunesLibrary_win.cpp │ ├── PlayCountsDatabase.cpp │ ├── PlayCountsDatabase.h │ ├── README │ ├── Twiddly.rc │ ├── TwiddlyApplication.cpp │ ├── TwiddlyApplication.h │ ├── Utils.cpp │ ├── Utils.h │ ├── Utils_mac.mm │ ├── main.cpp │ └── twiddly.pro ├── common/ │ ├── HideStupidWarnings.h │ ├── c++/ │ │ ├── Logger.cpp │ │ ├── Logger.h │ │ ├── fileCreationTime.cpp │ │ ├── mac/ │ │ │ └── getBsdProcessList.c │ │ ├── string.h │ │ └── win/ │ │ └── scrobSubPipeName.cpp │ ├── precompiled.h │ └── qt/ │ ├── README │ ├── msleep.cpp │ ├── override/ │ │ ├── QDebug │ │ ├── QHttp │ │ ├── QMessageBox │ │ ├── QNetworkAccessManager │ │ └── README │ ├── reverse.cpp │ └── sort.cpp ├── i18n/ │ ├── i18n.pro │ ├── lastfm_de.ts │ ├── lastfm_en.ts │ ├── lastfm_es.ts │ ├── lastfm_fr.ts │ ├── lastfm_it.ts │ ├── lastfm_ja.ts │ ├── lastfm_pl.ts │ ├── lastfm_pt.ts │ ├── lastfm_ru.ts │ ├── lastfm_sv.ts │ ├── lastfm_tr.ts │ └── lastfm_zh_CN.ts ├── lib/ │ ├── 3rdparty/ │ │ ├── README │ │ ├── fetch.sh │ │ ├── fftw3.h │ │ ├── iTunesCOMAPI/ │ │ │ ├── LicenseAgreement.rtf │ │ │ ├── ReadMe.rtf │ │ │ ├── SampleScripts/ │ │ │ │ ├── CreateAlbumPlaylists.js │ │ │ │ ├── RemoveDeadTracks.js │ │ │ │ └── RemoveUserPlaylists.js │ │ │ ├── iTunesCOM.chm │ │ │ ├── iTunesCOMInterface.h │ │ │ └── iTunesCOMInterface_i.c │ │ ├── mad.h │ │ ├── patches/ │ │ │ ├── README │ │ │ └── tbytevector_cpp.patch │ │ └── samplerate.h │ ├── DllExportMacro.h │ ├── listener/ │ │ ├── PlayerCommand.h │ │ ├── PlayerCommandParser.cpp │ │ ├── PlayerCommandParser.h │ │ ├── PlayerConnection.cpp │ │ ├── PlayerConnection.h │ │ ├── PlayerListener.cpp │ │ ├── PlayerListener.h │ │ ├── PlayerMediator.cpp │ │ ├── PlayerMediator.h │ │ ├── State.h │ │ ├── legacy/ │ │ │ ├── LegacyPlayerListener.cpp │ │ │ └── LegacyPlayerListener.h │ │ ├── listener.pro │ │ ├── mac/ │ │ │ ├── ITunesListener.cpp │ │ │ ├── ITunesListener.h │ │ │ ├── SpotifyListener.h │ │ │ └── SpotifyListener.mm │ │ ├── mpris2/ │ │ │ ├── Mpris2Listener.cpp │ │ │ ├── Mpris2Listener.h │ │ │ ├── Mpris2Service.cpp │ │ │ └── Mpris2Service.h │ │ ├── tests/ │ │ │ ├── TestPlayerCommandParser.cpp │ │ │ └── test_liblistener.pro │ │ └── win/ │ │ ├── NamedPipeServer.cpp │ │ ├── NamedPipeServer.h │ │ ├── SpotifyListener.cpp │ │ └── SpotifyListener.h │ ├── logger/ │ │ └── logger.pro │ └── unicorn/ │ ├── AnimatedPushButton.h │ ├── AnimatedStatusBar.cpp │ ├── AnimatedStatusBar.h │ ├── CrashReporter/ │ │ ├── CrashReporter.cpp │ │ ├── CrashReporter.h │ │ └── CrashReporter_mac.mm │ ├── DesktopServices.cpp │ ├── DesktopServices.h │ ├── LoginProcess.cpp │ ├── LoginProcess.h │ ├── PlayBus/ │ │ ├── Bus.cpp │ │ ├── Bus.h │ │ ├── PlayBus.cpp │ │ └── PlayBus.h │ ├── QMessageBoxBuilder.cpp │ ├── QMessageBoxBuilder.h │ ├── ScrobblesModel.cpp │ ├── ScrobblesModel.h │ ├── SignalBlocker.h │ ├── TrackImageFetcher.cpp │ ├── TrackImageFetcher.h │ ├── UnicornApplication.cpp │ ├── UnicornApplication.h │ ├── UnicornApplicationDelegate.h │ ├── UnicornApplicationDelegate.mm │ ├── UnicornApplication_mac.mm │ ├── UnicornCoreApplication.cpp │ ├── UnicornCoreApplication.h │ ├── UnicornMainWindow.cpp │ ├── UnicornMainWindow.h │ ├── UnicornSession.cpp │ ├── UnicornSession.h │ ├── UnicornSettings.cpp │ ├── UnicornSettings.h │ ├── UpdateInfoFetcher.cpp │ ├── UpdateInfoFetcher.h │ ├── Updater/ │ │ ├── Updater.cpp │ │ ├── Updater.h │ │ └── Updater_mac.mm │ ├── dialogs/ │ │ ├── AboutDialog.cpp │ │ ├── AboutDialog.h │ │ ├── AboutDialog.ui │ │ ├── CloseAppsDialog.cpp │ │ ├── CloseAppsDialog.h │ │ ├── CloseAppsDialog.ui │ │ ├── CloseAppsDialog_mac.mm │ │ ├── LoginContinueDialog.cpp │ │ ├── LoginContinueDialog.h │ │ ├── LoginDialog.cpp │ │ ├── LoginDialog.h │ │ ├── ProxyDialog.cpp │ │ ├── ProxyDialog.h │ │ ├── ProxyDialog.ui │ │ ├── ScrobbleConfirmationDialog.cpp │ │ ├── ScrobbleConfirmationDialog.h │ │ ├── ScrobbleConfirmationDialog.ui │ │ ├── ShareDialog.cpp │ │ ├── ShareDialog.h │ │ ├── ShareDialog.ui │ │ ├── TagDialog.cpp │ │ ├── TagDialog.h │ │ ├── TagDialog.ui │ │ ├── UnicornDialog.h │ │ ├── UserManagerDialog.cpp │ │ └── UserManagerDialog.h │ ├── layouts/ │ │ ├── FlowLayout.cpp │ │ └── FlowLayout.h │ ├── mac/ │ │ ├── AppleScript.cpp │ │ └── AppleScript.h │ ├── notify/ │ │ ├── Notify.h │ │ └── Notify.mm │ ├── plugins/ │ │ ├── FooBar08PluginInfo.cpp │ │ ├── FooBar08PluginInfo.h │ │ ├── Foobar09PluginInfo.cpp │ │ ├── Foobar09PluginInfo.h │ │ ├── IPluginInfo.cpp │ │ ├── IPluginInfo.h │ │ ├── ITunesPluginInfo.cpp │ │ ├── ITunesPluginInfo.h │ │ ├── ITunesPluginInstaller.cpp │ │ ├── ITunesPluginInstaller.h │ │ ├── KillProcess.h │ │ ├── PluginList.cpp │ │ ├── PluginList.h │ │ ├── Version.cpp │ │ ├── Version.h │ │ ├── WinampPluginInfo.cpp │ │ ├── WinampPluginInfo.h │ │ ├── WmpPluginInfo.cpp │ │ └── WmpPluginInfo.h │ ├── qrc/ │ │ ├── spinner.mng │ │ └── unicorn.qrc │ ├── qtsingleapplication/ │ │ ├── qtlocalpeer.cpp │ │ ├── qtlocalpeer.h │ │ ├── qtlockedfile.cpp │ │ ├── qtlockedfile.h │ │ ├── qtlockedfile_unix.cpp │ │ ├── qtlockedfile_win.cpp │ │ ├── qtsingleapplication.cpp │ │ ├── qtsingleapplication.h │ │ ├── qtsinglecoreapplication.cpp │ │ └── qtsinglecoreapplication.h │ ├── qtwin.cpp │ ├── qtwin.h │ ├── unicorn.pro │ └── widgets/ │ ├── ActionButton.cpp │ ├── ActionButton.h │ ├── AvatarWidget.cpp │ ├── AvatarWidget.h │ ├── BannerWidget.cpp │ ├── BannerWidget.h │ ├── DataBox.h │ ├── DataListWidget.cpp │ ├── DataListWidget.h │ ├── FriendsPicker.cpp │ ├── FriendsPicker.h │ ├── GhostWidget.cpp │ ├── GhostWidget.h │ ├── HttpImageWidget.cpp │ ├── HttpImageWidget.h │ ├── ImageButton.cpp │ ├── ImageButton.h │ ├── ItemSelectorWidget.cpp │ ├── ItemSelectorWidget.h │ ├── Label.cpp │ ├── Label.h │ ├── LfmListViewWidget.cpp │ ├── LfmListViewWidget.h │ ├── MessageBar.cpp │ ├── MessageBar.h │ ├── PlayableMimeData.h │ ├── ProxyWidget.cpp │ ├── ProxyWidget.h │ ├── ProxyWidget.ui │ ├── SearchBox.cpp │ ├── SearchBox.h │ ├── Seed.h │ ├── SlidingStackedWidget.cpp │ ├── SlidingStackedWidget.h │ ├── SpinnerLabel.h │ ├── StackedWidget.cpp │ ├── StackedWidget.h │ ├── StatusLight.cpp │ ├── StatusLight.h │ ├── TagListWidget.cpp │ ├── TagListWidget.h │ ├── TrackWidget.cpp │ ├── TrackWidget.h │ ├── UnicornTabWidget.cpp │ ├── UnicornTabWidget.h │ ├── UserComboSelector.h │ ├── UserManagerWidget.cpp │ ├── UserManagerWidget.h │ ├── UserMenu.cpp │ ├── UserMenu.h │ ├── UserToolButton.cpp │ └── UserToolButton.h └── plugins/ ├── LFMRadio/ │ └── PluginInfo.h ├── foobar08/ │ ├── audioscrobbler.cpp │ ├── foo_install.iss │ └── tools/ │ └── append_once.bat ├── foobar09/ │ ├── ChangeLog.txt │ ├── audioscrobbler.cpp │ ├── foo_audioscrobbler.rc │ ├── foo_install.iss │ ├── foobar_sdk/ │ │ ├── foobar2000/ │ │ │ ├── SDK/ │ │ │ │ ├── abort_callback.cpp │ │ │ │ ├── abort_callback.h │ │ │ │ ├── advconfig.h │ │ │ │ ├── app_close_blocker.cpp │ │ │ │ ├── app_close_blocker.h │ │ │ │ ├── audio_chunk.cpp │ │ │ │ ├── audio_chunk.h │ │ │ │ ├── audio_chunk_channel_config.cpp │ │ │ │ ├── audio_postprocessor.h │ │ │ │ ├── cfg_var.cpp │ │ │ │ ├── cfg_var.h │ │ │ │ ├── chapterizer.cpp │ │ │ │ ├── chapterizer.h │ │ │ │ ├── commandline.cpp │ │ │ │ ├── commandline.h │ │ │ │ ├── completion_notify.cpp │ │ │ │ ├── completion_notify.h │ │ │ │ ├── component.h │ │ │ │ ├── component_client.h │ │ │ │ ├── components_menu.h │ │ │ │ ├── componentversion.h │ │ │ │ ├── config_io_callback.cpp │ │ │ │ ├── config_io_callback.h │ │ │ │ ├── config_object.cpp │ │ │ │ ├── config_object.h │ │ │ │ ├── config_object_impl.h │ │ │ │ ├── console.cpp │ │ │ │ ├── console.h │ │ │ │ ├── contextmenu.h │ │ │ │ ├── contextmenu_manager.h │ │ │ │ ├── core_api.h │ │ │ │ ├── coreversion.h │ │ │ │ ├── dsp.cpp │ │ │ │ ├── dsp.h │ │ │ │ ├── dsp_manager.cpp │ │ │ │ ├── dsp_manager.h │ │ │ │ ├── file_info.cpp │ │ │ │ ├── file_info.h │ │ │ │ ├── file_info_impl.cpp │ │ │ │ ├── file_info_impl.h │ │ │ │ ├── file_info_merge.cpp │ │ │ │ ├── file_operation_callback.cpp │ │ │ │ ├── file_operation_callback.h │ │ │ │ ├── filesystem.cpp │ │ │ │ ├── filesystem.h │ │ │ │ ├── filesystem_helper.cpp │ │ │ │ ├── filesystem_helper.h │ │ │ │ ├── foobar2000.h │ │ │ │ ├── genrand.h │ │ │ │ ├── guids.cpp │ │ │ │ ├── hasher_md5.cpp │ │ │ │ ├── hasher_md5.h │ │ │ │ ├── info_lookup_handler.h │ │ │ │ ├── initquit.h │ │ │ │ ├── input.cpp │ │ │ │ ├── input.h │ │ │ │ ├── input_file_type.cpp │ │ │ │ ├── input_file_type.h │ │ │ │ ├── input_impl.h │ │ │ │ ├── library_manager.h │ │ │ │ ├── link_resolver.cpp │ │ │ │ ├── link_resolver.h │ │ │ │ ├── main_thread_callback.h │ │ │ │ ├── mainmenu.cpp │ │ │ │ ├── masstagger_action.h │ │ │ │ ├── mem_block_container.cpp │ │ │ │ ├── mem_block_container.h │ │ │ │ ├── menu.h │ │ │ │ ├── menu_helpers.cpp │ │ │ │ ├── menu_helpers.h │ │ │ │ ├── menu_item.cpp │ │ │ │ ├── menu_manager.cpp │ │ │ │ ├── message_loop.h │ │ │ │ ├── metadb.cpp │ │ │ │ ├── metadb.h │ │ │ │ ├── metadb_handle.cpp │ │ │ │ ├── metadb_handle.h │ │ │ │ ├── metadb_handle_list.cpp │ │ │ │ ├── modeless_dialog.cpp │ │ │ │ ├── modeless_dialog.h │ │ │ │ ├── packet_decoder.cpp │ │ │ │ ├── packet_decoder.h │ │ │ │ ├── play_callback.h │ │ │ │ ├── playable_location.cpp │ │ │ │ ├── playable_location.h │ │ │ │ ├── playback_control.cpp │ │ │ │ ├── playback_control.h │ │ │ │ ├── playlist.cpp │ │ │ │ ├── playlist.h │ │ │ │ ├── playlist_loader.cpp │ │ │ │ ├── playlist_loader.h │ │ │ │ ├── playlist_lock.cpp │ │ │ │ ├── popup_message.cpp │ │ │ │ ├── popup_message.h │ │ │ │ ├── preferences_page.cpp │ │ │ │ ├── preferences_page.h │ │ │ │ ├── replaygain.cpp │ │ │ │ ├── replaygain.h │ │ │ │ ├── replaygain_info.cpp │ │ │ │ ├── resampler.h │ │ │ │ ├── service.cpp │ │ │ │ ├── service.h │ │ │ │ ├── service_impl.h │ │ │ │ ├── shared.h │ │ │ │ ├── shortcut_actions.h │ │ │ │ ├── stdafx.cpp │ │ │ │ ├── tag_processor.cpp │ │ │ │ ├── tag_processor.h │ │ │ │ ├── tag_processor_id3v2.cpp │ │ │ │ ├── threaded_process.cpp │ │ │ │ ├── threaded_process.h │ │ │ │ ├── titleformat.cpp │ │ │ │ ├── titleformat.h │ │ │ │ ├── titleformat_config.cpp │ │ │ │ ├── titleformat_config.h │ │ │ │ ├── track_property.h │ │ │ │ ├── ui.cpp │ │ │ │ ├── ui.h │ │ │ │ ├── unpack.h │ │ │ │ ├── utf8api.cpp │ │ │ │ └── vis.h │ │ │ ├── foo_input_raw/ │ │ │ │ ├── foo_input_raw.cpp │ │ │ │ └── readme.txt │ │ │ ├── foo_input_validator/ │ │ │ │ └── readme.txt │ │ │ ├── foobar2000_component_client/ │ │ │ │ └── component_client.cpp │ │ │ ├── helpers/ │ │ │ │ ├── StdAfx.cpp │ │ │ │ ├── StdAfx.h │ │ │ │ ├── bitreader_helper.h │ │ │ │ ├── cfg_guidlist.h │ │ │ │ ├── cfg_structlist.h │ │ │ │ ├── create_directory_helper.cpp │ │ │ │ ├── create_directory_helper.h │ │ │ │ ├── cue_creator.cpp │ │ │ │ ├── cue_creator.h │ │ │ │ ├── cue_parser.cpp │ │ │ │ ├── cue_parser.h │ │ │ │ ├── cue_parser_embedding.cpp │ │ │ │ ├── cuesheet_index_list.cpp │ │ │ │ ├── cuesheet_index_list.h │ │ │ │ ├── dialog_resize_helper.cpp │ │ │ │ ├── dialog_resize_helper.h │ │ │ │ ├── dropdown_helper.cpp │ │ │ │ ├── dropdown_helper.h │ │ │ │ ├── dynamic_bitrate_helper.cpp │ │ │ │ ├── dynamic_bitrate_helper.h │ │ │ │ ├── file_cached.h │ │ │ │ ├── file_info_const_impl.cpp │ │ │ │ ├── file_info_const_impl.h │ │ │ │ ├── file_list_helper.cpp │ │ │ │ ├── file_list_helper.h │ │ │ │ ├── file_move_helper.cpp │ │ │ │ ├── file_move_helper.h │ │ │ │ ├── file_win32_wrapper.h │ │ │ │ ├── file_wrapper_simple.cpp │ │ │ │ ├── file_wrapper_simple.h │ │ │ │ ├── format_title_group.cpp │ │ │ │ ├── format_title_group.h │ │ │ │ ├── helpers.h │ │ │ │ ├── inplace_edit.cpp │ │ │ │ ├── inplace_edit.h │ │ │ │ ├── input_helpers.cpp │ │ │ │ ├── input_helpers.h │ │ │ │ ├── listview_helper.cpp │ │ │ │ ├── listview_helper.h │ │ │ │ ├── meta_table_builder.h │ │ │ │ ├── metadb_io_hintlist.cpp │ │ │ │ ├── metadb_io_hintlist.h │ │ │ │ ├── mp3_utils.cpp │ │ │ │ ├── mp3_utils.h │ │ │ │ ├── preload_info_helper.cpp │ │ │ │ ├── preload_info_helper.h │ │ │ │ ├── search_filter.cpp │ │ │ │ ├── search_filter.h │ │ │ │ ├── seekabilizer.cpp │ │ │ │ ├── seekabilizer.h │ │ │ │ ├── stream_buffer_helper.cpp │ │ │ │ ├── stream_buffer_helper.h │ │ │ │ ├── string_filter.h │ │ │ │ ├── text_file_loader.cpp │ │ │ │ ├── text_file_loader.h │ │ │ │ ├── wildcard.cpp │ │ │ │ ├── wildcard.h │ │ │ │ ├── win32_dialog.cpp │ │ │ │ ├── win32_dialog.h │ │ │ │ ├── win32_misc.cpp │ │ │ │ ├── win32_misc.h │ │ │ │ ├── window_placement_helper.cpp │ │ │ │ └── window_placement_helper.h │ │ │ └── shared/ │ │ │ ├── audio_math.h │ │ │ ├── shared.h │ │ │ ├── shared.lib │ │ │ └── win32_misc.h │ │ ├── pfc/ │ │ │ ├── alloc.h │ │ │ ├── array.h │ │ │ ├── avltree.h │ │ │ ├── bit_array.h │ │ │ ├── bit_array_impl.h │ │ │ ├── bsearch.cpp │ │ │ ├── bsearch.h │ │ │ ├── bsearch_inline.h │ │ │ ├── byte_order_helper.h │ │ │ ├── chainlist.h │ │ │ ├── com_ptr_t.h │ │ │ ├── guid.cpp │ │ │ ├── guid.h │ │ │ ├── instance_tracker.h │ │ │ ├── int_types.h │ │ │ ├── license.txt │ │ │ ├── list.h │ │ │ ├── map.h │ │ │ ├── mem_block_mgr.h │ │ │ ├── order_helper.h │ │ │ ├── other.cpp │ │ │ ├── other.h │ │ │ ├── pfc.h │ │ │ ├── primitives.h │ │ │ ├── printf.cpp │ │ │ ├── profiler.cpp │ │ │ ├── profiler.h │ │ │ ├── ptr_list.h │ │ │ ├── rcptr.h │ │ │ ├── ref_counter.h │ │ │ ├── selftest.cpp │ │ │ ├── sort.cpp │ │ │ ├── sort.h │ │ │ ├── stdafx.cpp │ │ │ ├── string.cpp │ │ │ ├── string.h │ │ │ ├── string8_impl.h │ │ │ ├── string_conv.cpp │ │ │ ├── string_conv.h │ │ │ ├── string_list.h │ │ │ ├── traits.h │ │ │ └── utf8.cpp │ │ ├── sdk-license.txt │ │ ├── sdk-readme.css │ │ └── sdk-readme.html │ ├── resource.h │ └── tools/ │ └── append_once.bat ├── iTunes/ │ ├── ChangeLog.txt │ ├── IPod.cpp │ ├── IPod.h │ ├── IPodDetector.h │ ├── IPodDetector_mac.cpp │ ├── IPodDetector_win.cpp │ ├── IPod_mac.cpp │ ├── IPod_win.cpp │ ├── ITunesComThread.cpp │ ├── ITunesComThread.h │ ├── ITunesComWrapper.cpp │ ├── ITunesComWrapper.h │ ├── ITunesEventInterface.h │ ├── ITunesExceptions.h │ ├── ITunesPlaysDatabase.cpp │ ├── ITunesPlaysDatabase.h │ ├── ITunesPlaysDatabase_mac.cpp │ ├── ITunesPlaysDatabase_win.cpp │ ├── ITunesTrack.cpp │ ├── ITunesTrack.h │ ├── Moose.h │ ├── Moose_mac.cpp │ ├── Moose_win.cpp │ ├── Plist.cpp │ ├── Plist.h │ ├── README.dist │ ├── _iTunes.iss │ ├── _iTunes.plist │ ├── _iTunes.rc │ ├── _iTunes.xcodeproj/ │ │ └── project.pbxproj │ ├── iTunesVisualAPI/ │ │ ├── iTunesAPI.cpp │ │ ├── iTunesAPI.h │ │ └── iTunesVisualAPI.h │ ├── libs/ │ │ ├── sqlite3.c │ │ └── sqlite3.h │ ├── main.cpp │ ├── main.h │ ├── main_mac.cpp │ ├── main_win.cpp │ ├── resource.h │ ├── scripts/ │ │ ├── currentTrack.scpt │ │ ├── currentTrackLocation.scpt │ │ ├── currentTrackPersistentId.scpt │ │ ├── playCountForDatabaseId.scpt │ │ ├── playCountForPersistentId.scpt │ │ └── uninstall.sh │ ├── tests/ │ │ ├── ITunesPlaysDatabaseMac.pro │ │ ├── TestITunesPlaysDatabaseMac.cpp │ │ ├── comtest.cpp │ │ └── tests.pro │ └── tools/ │ └── append_once.bat ├── scrobsub/ │ ├── BlockingClient.cpp │ ├── BlockingClient.h │ ├── Bootstrap.cpp │ ├── Bootstrap.h │ ├── Bootstrap.rc │ ├── Doxyfile │ ├── EncodingUtils.cpp │ ├── EncodingUtils.h │ ├── RegistryUtils.cpp │ ├── RegistryUtils.h │ ├── ScrobSub.xcodeproj/ │ │ └── project.pbxproj │ ├── ScrobSubmitter.cpp │ ├── ScrobSubmitter.h │ ├── StdString.h │ ├── resource.h │ ├── resource1.h │ └── tests/ │ ├── BlockingClient.cpp │ └── EncodingUtils.cpp ├── winamp/ │ ├── AutoChar.h │ ├── Dbg.h │ ├── GEN.H │ ├── Gen_AudioScrobbler.cpp │ ├── Gen_AudioScrobbler.dsp │ ├── Gen_AudioScrobbler.dsw │ ├── Gen_AudioScrobbler.h │ ├── Gen_AudioScrobbler.rc │ ├── OSVer.cpp │ ├── OSVer.h │ ├── Registry.cpp │ ├── Registry.h │ ├── Scrobbler.cpp │ ├── Scrobbler.h │ ├── StdAfx.cpp │ ├── StdAfx.h │ ├── StdString.h │ ├── StdStringArray.cpp │ ├── StdStringArray.h │ ├── UTF.cpp │ ├── UTF.h │ ├── VersionApp.cpp │ ├── VersionApp.h │ ├── WhatsNew.txt │ ├── WinampBootstrap.cpp │ ├── WinampBootstrap.h │ ├── WinampController.cpp │ ├── WinampController.h │ ├── WinampScrobbler.cpp │ ├── WinampScrobbler.h │ ├── comdate.h │ ├── dbg.cpp │ ├── ml.h │ ├── ml_lib.cpp │ ├── res/ │ │ └── Gen_AudioScrobbler.rc2 │ ├── resource.h │ ├── wa_dlg.h │ ├── wa_hotkeys.h │ ├── wa_ipc.h │ ├── winamp_install.iss │ └── winampcmd.h └── wmp/ ├── Dbg.h ├── OSVer.cpp ├── OSVer.h ├── Scrobbler.cpp ├── Scrobbler.h ├── StdAfx.cpp ├── StdAfx.h ├── StdString.h ├── StdStringArray.cpp ├── StdStringArray.h ├── VersionApp.cpp ├── VersionApp.h ├── WMPScrobbler.cpp ├── WMPScrobbler.h ├── WhatsNew.txt ├── comdate.h ├── dbg.cpp ├── resource.h ├── tools/ │ └── append_once.bat ├── wmp.h ├── wmpBootStrap.cpp ├── wmpBootStrap.h ├── wmp_install.iss ├── wmp_scrobbler.cpp ├── wmp_scrobbler.def ├── wmp_scrobbler.dsp ├── wmp_scrobbler.h ├── wmp_scrobbler.rc ├── wmp_scrobbler.rgs ├── wmp_scrobbler.vcxproj ├── wmp_scrobblerEvents.cpp ├── wmp_scrobblerdll.cpp └── wmpplug.h