Commit Graph

693 Commits

Author SHA1 Message Date
Arnaud Bienner 99fdba877e Merge branch 'master' into grooveshark 2011-09-02 00:35:40 +02:00
Arnaud Bienner 839bb411f2 Make qjson not optional, as we will need it for Grooveshark 2011-09-01 23:48:32 +02:00
John Maguire c2d68fd697 Basic search popup triggered by a global shortcut. 2011-09-01 14:23:16 +01:00
John Maguire 85e101c8a7 Fix the global shortcut grabber on Mac. 2011-09-01 14:10:30 +01:00
David Sansome 8dea8a2664 Add a spotify global search provider 2011-08-29 03:31:12 +01:00
David Sansome cd44c47f7b Sort the results in the popup list, prevent the user from searching for short strings 2011-08-29 03:29:51 +01:00
David Sansome 9370657b50 Started work on a global search for library, with album art.
The idea is that there's a single place to search for music, and it doesn't matter where it is, Clementine will find something playable.
2011-08-29 03:27:47 +01:00
David Sansome 13fc24f6c6 Refactor the last.fm, magnatune, spotify and di.fm settings pages - moving the login state display into a separate widget. 2011-08-27 22:01:28 +01:00
David Sansome 3be95c9462 Always compile the spotify settings page UI file to fix a build failure when spotify was disabled. Fixes issue 2159 2011-08-15 11:36:06 +01:00
David Sansome dad76b78dd Move all the settings pages to their own widgets and classes 2011-08-14 00:07:10 +01:00
David Sansome 191e23ed13 Remove old references to libarchive 2011-08-10 16:30:36 +01:00
David Sansome 082716e9c9 Don't try to compile audio CD support if libcdio isn't installed. 2011-08-10 16:30:36 +01:00
John Maguire 5fcb3d3d7a Merge branch 'master' into resolvers 2011-08-09 19:30:20 +02:00
Arnaud Bienner f7859f591c Adding CD devices in devices tab. Fixes issue 701. 2011-08-05 02:15:16 +02:00
John Maguire 2bda4966fc Basic working use of resolvers for XSPF playlists. 2011-07-28 17:33:58 +02:00
David Sansome 5c90404915 Sort album covers by image size. Fixes issue 2048 2011-07-26 12:17:28 +01:00
David Sansome a1062eb96f Add sha256 and hmac-sha256 functions 2011-07-23 19:33:00 +01:00
David Sansome dd3eee63e5 Remove python scripting support 2011-07-23 15:32:12 +01:00
David Sansome a0258a9e81 Add c++ implementations of the di.fm and sky.fm radio services 2011-07-23 15:32:11 +01:00
Tyler Rhodes ded8e5f6f0 Refactor "Radio" files into "Internet" files. 2011-07-15 13:27:50 +00:00
John Maguire e4c8eee7d9 Add lastfm suggester to OTHER_SOURCES for translations. 2011-07-07 14:22:32 +00:00
John Maguire ea3cf5f92d Only build lastfm suggester if we have lastfm.
Fixes issue #2057
2011-07-07 13:36:44 +00:00
David Sansome 7773e98ebf Keep track of some statistics while searching for album covers, and show a statistics dialog at the end. Fixes issue 1921 2011-06-26 15:07:48 +00:00
David Sansome dd98f8abc8 Make the album cover search results list scroll by pixel instead of item, and re-layout the items when any data changes 2011-06-26 15:06:59 +00:00
John Maguire 1df5db5ee3 Add Echoprint library and a new fingerprinting classs that uses it. 2011-06-25 17:30:12 +00:00
David Sansome 2ef9ab6f6e Replace the KCategorizedView with a custom widget that works better. 2011-06-25 16:47:00 +00:00
David Sansome dad22297d1 Add a nyan cat analyzer.
Nyan nyan nyan nyan.
2011-06-22 23:25:08 +00:00
David Sansome 4864d24e42 Only do the Ubuntu Unity hack on Linux 2011-06-22 20:52:49 +00:00
David Sansome 62bd3694ec Remove cover provider factories and refactor everything else to use cover providers directly instead. 2011-06-19 23:15:51 +00:00
David Sansome c6e2981860 Group album cover search results by category 2011-06-19 23:15:29 +00:00
David Sansome fd7d24b11a Add Clementine to the Unity system tray whitelist on startup. 2011-06-18 19:08:09 +00:00
John Maguire 54e9299c08 libgsttag is also required to build clementine now. 2011-06-16 13:49:10 +00:00
Arnaud Bienner 272841ab73 Starting audio CD support. Starts issue 701 2011-06-09 23:08:43 +00:00
John Maguire 69cfd03248 Only build spotify resolver when spotify enabled. 2011-05-31 16:01:33 +00:00
John Maguire e5d991ddaf Add Resolver interface and Spotify resolver. 2011-05-31 15:33:46 +00:00
John Maguire 41e79bea0e Add basics of last.fm suggester and library resolver. 2011-05-31 14:36:28 +00:00
John Maguire 97a8aa54be Use SPMediaKeyTap for global media keys on Mac.
Thanks to: tyler.s.rhodes@gmail.com
2011-05-30 10:09:34 +00:00
David Sansome 147bbb9928 Add some more python bindings 2011-05-19 23:02:15 +00:00
John Maguire 51e031df2b Add class for transcoding a Song into an OGG Vorbis stream. 2011-05-19 16:34:33 +00:00
Paweł Bara d1d177769a cover providers are now recreated every search (this will lead to simpler API of theirs in a moment)
initial migration from SIP -> PythonQt in cover providers
2011-05-17 17:53:36 +00:00
John Maguire 69b2942566 Add dependency so spotify blob is built before clementine. 2011-05-17 11:53:17 +00:00
John Maguire e7f635e507 Maybe fix mac spotify build. 2011-05-16 15:15:02 +00:00
David Sansome 7b84b23366 Add bindings for classes from network.h 2011-05-15 16:12:49 +00:00
David Sansome 368c637ce7 Fix compilation in release mode and disable the python test for now 2011-05-15 15:46:42 +00:00
David Sansome d9bb8ffd8c Add the pythonqt bindings generator and make some bindings for RadioService and UrlHandler 2011-05-15 15:45:49 +00:00
David Sansome 930a2aa2bf Add an interactive Python console to the script manager 2011-05-15 13:44:06 +00:00
David Sansome 7c05b42dcd Add PythonQt to 3rdparty, use it in the python engine instead of SIP/PyQt. 2011-05-15 13:41:54 +00:00
Andrea Decorte 2bcaba28ad Fixed translations when compiling without Spotify support 2011-05-04 18:00:48 +00:00
David Sansome 3deb371537 If the spotify blob isn't installed, try to download it from the Clementine website. Also, make the blob separate from the core Spotify code in Clementine so you can build the core code without building the blob 2011-04-29 19:44:51 +00:00
David Sansome b20d280156 Add a "Did you mean ...?" widget when searching on spotify 2011-04-28 20:48:53 +00:00
John Maguire b45e11712a Correctly copy and fix up spotify blob on mac. 2011-04-28 20:37:13 +00:00
David Sansome 06852aaeb7 Show spotify search results in a separate playlist tab rather than in a tree in the sidebar. 2011-04-28 17:50:45 +00:00
David Sansome 255682b057 Remove the special load behaviour from Playlist Items and instead add URL Handlers that do the same job but for all playlist item types. 2011-04-28 15:10:28 +00:00
Paweł Bara fdda938c53 now that we have more cover providers, we're bringing the cover manager and the cover searcher goodness to our last.fm-less users 2011-04-27 19:10:37 +00:00
John Maguire ff7d634fa4 Spotify on mac. 2011-04-26 22:20:11 +00:00
David Sansome e152e3a3e3 Start of some spotify support - builds a binary blob linked against libspotify that Clementine starts as a separate process. 2011-04-25 19:16:26 +00:00
David Sansome ec07d9d46f Don't statically initialise Python extensions on Windows, add some more debug logging 2011-04-24 17:02:32 +00:00
David Sansome 9d52951dea Add a compile time option to show the WIN32 console even outside debug mode 2011-04-24 17:02:26 +00:00
David Sansome 63b6c65b8f Make the script dialog list scroll more smoothly 2011-04-22 18:53:26 +00:00
David Sansome 3eedc916ad Add a new logging system 2011-04-22 16:50:29 +00:00
David Sansome 5ed1fcd5e1 Add a load of options to the transcoders. Fixes issue 415. 2011-04-16 23:04:15 +00:00
John Maguire 18bfa12042 Add the beginnings of an ICE socket implementation.
Currently, it can be demoed using --stun-test and the icedemo from pjsip as the other client.
TODOs:
Add ability to do a full demo using only 2 clementine instances.
Complete session initiation over XMPP.
Add local & port forwarded sockets as options.
2011-04-07 13:38:27 +00:00
Andrea Decorte 886f3d4d6f Double click on a tab to rename it and visual improvements to tab bar.
Fixes issue 1651
2011-04-02 14:46:56 +00:00
Paweł Bara f86b671272 fixing the minimal build 2011-04-02 14:43:50 +00:00
Paweł Bara 032b5f7e48 initial commit of "multiple covers providers" feature:
- simple API for cover providers (both C++ and SIP)
- a new "package" for cover related code
2011-04-02 13:34:06 +00:00
David Sansome e69970709e Add an option to turn off -Werror. Thanks ssuominen@unk.fi 2011-03-29 18:51:16 +00:00
John Maguire d86dce4b96 Add support for Google breakpad on mac. (Uploading crash reports doesn't work yet due to redirect). 2011-03-25 11:38:03 +00:00
David Sansome d50cfaed46 Add google breakpad to 3rdparty, and gather crash reports 2011-03-23 21:53:24 +00:00
David Sansome f700df2f54 ALL GLORY TO THE HYPNOTOAD. Fixes issue 1374 2011-03-13 22:46:25 +00:00
David Sansome b51566cdd9 Remove the dependencies on libtunepimp, libofa, libmusicbrainz. Use the gstreamer ofa plugin instead to fingerprint songs. 2011-03-12 21:19:41 +00:00
John Maguire 48b7dc3501 Massively hacky basic integration to tomahawk. 2011-03-08 21:16:09 +00:00
John Maguire 7ca69e009e Add libportfwd and an async wrapper. 2011-03-08 16:34:20 +00:00
John Maguire 6a14e0d94f Link correct directory for gloox. 2011-02-26 09:51:36 +00:00
David Sansome a39cccd059 Update the track slider popup delta time when the track position changes. 2011-02-21 22:25:04 +00:00
David Sansome bc1372a735 Fix the build failure when the remote is disabled 2011-02-20 16:26:26 +00:00
David Sansome 72096bf1c8 Move ArtLoader from mpris_common.h to its own file, add libxrme to 3rdparty, add a working XMPP remote. 2011-02-19 18:24:11 +00:00
John Maguire 45cabc1b6b Add settings dialog for Google account with verification and stores password in secure keychain. 2011-02-17 13:47:54 +00:00
John Maguire e36a333212 Basic XMPP support using gloox. 2011-02-16 20:49:12 +00:00
John Maguire 1fc9dd183d Put our CFLAGS after the default ones so they don't get overridden. 2011-02-04 14:35:25 +00:00
John Maguire ab2f3360e2 Add Linux variable and set -Werror for Linux builds. 2011-02-04 12:07:00 +00:00
David Sansome e586ca12e5 Link clementine_lib instead of clementine against qtsparkle, fixing the tests on Windows 2011-02-03 21:06:05 +00:00
David Sansome e4d9d54414 Link Clementine against SIP and PyQt on Windows, and add the modules to python's inittab 2011-01-31 23:44:44 +00:00
Andrea Decorte f98b89a2d8 Fixed issue #764 2011-01-25 19:15:51 +00:00
John Maguire 2ad5acdd29 Move version information in to separate file to decrease churn on svn up.
Fix inverted error message for Avahi.
2011-01-24 20:45:15 +00:00
Paweł Bara 8bce92e69b refactoring the code that handles common UI album cover related actions into a common controller
fixes a bug where cancelling the 'cover from URL' dialog would set the cover to a previously chosen URL
2011-01-24 00:09:57 +00:00
Paweł Bara 3e2ffd3647 ability to load cover from URL in all the usual places: cover manager, now playing widget and edit tag dialog (fixes issue #517) 2011-01-23 20:24:17 +00:00
David Sansome 2ecf61a57e Move everything DBus related back to the main thread and use synchronous method calls everywhere 2011-01-22 12:47:19 +00:00
Arnaud Bienner 729e8e729d Adding track selection dialog for tag fetcher results. Also corrected tagfetcher to prevent from infinite loop when no result is found 2011-01-20 23:42:28 +00:00
David Sansome 3f9dec3808 Add an "Install script from file..." button 2011-01-18 23:10:22 +00:00
John Maguire 2c9964ffa9 zomg scripting support on Mac. 2011-01-18 14:02:51 +00:00
John Maguire b10422c575 Build fix for Gentoo.
Fixes issue #1314
Thanks Nickollai.
2011-01-18 13:54:32 +00:00
David Sansome 472ab04e97 Make libarchive optional, disable loading scripts from archives if it's not present. 2011-01-18 13:44:12 +00:00
Arnaud Bienner abb93cd020 Minor modification to tag fetcher (including adding mutex to prevent crashes) and changing cursor during tag fetching 2011-01-17 22:58:16 +00:00
David Sansome 35a61de0a4 Refactor ScriptInfo into another class, add some (currently unused) code to read scripts from archives. 2011-01-17 20:01:16 +00:00
Paweł Bara a883630ab3 duplicate remover script (fixes #21)
fix a scripting crash when one native object was registered more than once
veto mechanism for inserting songs into playlist
2011-01-16 23:46:58 +00:00
David Sansome 5eb916cdff Watch script directories for changes 2011-01-16 15:11:23 +00:00
David Sansome 2c8e038b44 Make the Windows 7 thumbbar actually work. Move it to a different class that deals with QActions. Fixes issue #851 2011-01-16 00:39:51 +00:00
Arnaud Bienner d53e74a91f Start auto tagging support (using MusicBrainz) 2011-01-15 20:00:39 +00:00
David Sansome dd5f5d16ae Move the script console into a developer mode extension 2011-01-15 16:20:16 +00:00
John Maguire 883826a113 Tidy up the mac build a bit. 2011-01-14 14:16:56 +00:00
David Sansome 3954186af8 Maybe fix the mac build 2011-01-13 12:34:14 +00:00
David Sansome 4e0cf13b26 Add python bindings for RadioService, RadioModel, MergedProxyModel, TaskManager and SettingsDialog. Make sure radio services are removed from the model when they are deleted (eg. when their python script gets unloaded) 2011-01-12 21:20:20 +00:00
John Maguire 48bf42b2a5 Linux support for Zeroconf using Avahi over DBus. 2011-01-11 20:36:16 +00:00
David Sansome 135b32642e Refactor all the code that handles adding items to the playlist - whether it be by a context menu item, double clicking in a view or dragging. Everything now uses the models' mimeData() instead of duplicating the same code everywhere. 2011-01-10 22:26:13 +00:00
David Sansome 380fa71e86 Do gnome global shortcut registration in a background thread 2011-01-09 23:11:51 +00:00
David Sansome dc619eb437 Start refactoring the RadioModel to inherit from QStandardItemModel 2011-01-09 18:27:41 +00:00
David Sansome b3c211e26a Move MPRIS setup to a background thread 2011-01-08 15:31:14 +00:00
John Maguire 6cbf825c41 Make remote control support optional. 2011-01-06 16:00:40 +00:00
John Maguire c9d5b8100b More remote work. Clementine now requires QJson. 2011-01-06 15:09:09 +00:00
David Sansome 3a3cba3a85 Add bindings for Queue and PlaylistSequence 2011-01-03 15:49:41 +00:00
David Sansome e1b899bc61 Add python bindings for the library 2011-01-03 15:15:51 +00:00
David Sansome 0fba393f6e Fix the version numbering mess 2011-01-03 14:21:10 +00:00
David Sansome 9da56fd916 Always compile basic scripting support 2011-01-02 18:44:45 +00:00
David Sansome a79ca8c556 Let scripts register actions at predefined locations in the UI 2011-01-02 18:10:26 +00:00
David Sansome b2f22cf3a3 Add the extra sip dependencies as actual dependencies 2011-01-02 15:30:15 +00:00
David Sansome cdac0c6c86 Add python bindings for Playlist and PlaylistManager 2011-01-02 03:25:15 +00:00
David Sansome cfbbd3665c Show the script console tab in red if an error has occurred 2011-01-02 02:46:16 +00:00
David Sansome 11f4157f6f Let scripts show a settings dialog 2011-01-01 19:03:33 +00:00
David Sansome dac0d071ea Add bindings for Song, PlaylistItem, PlaylistItemPtr and EngineBase, add a "player" attribute to the clementine module 2010-12-31 20:29:52 +00:00
David Sansome 5b1000834f Add some basic script loading support and add python bindings for the Player class 2010-12-31 18:13:28 +00:00
David Sansome b578c61b36 Fix loading songs with non-ascii characters in the filename on Windows. Fixes issue #1207. Fixes issue #531. Fixes issue #813. 2010-12-30 17:13:11 +00:00
David Sansome 398f5d7f66 Use qtsparkle instead of winsparkle 2010-12-30 16:20:33 +00:00
John Maguire ce65c95580 Beginnings of remote control support. 2010-12-30 13:03:36 +00:00
David Sansome 45a7780f95 Add winsparkle support (doesn't work yet) 2010-12-29 17:53:28 +00:00
David Sansome fbbd4d4b27 Add a picker to the seek slider. Fixes issue #1050 2010-12-27 16:34:00 +00:00
David Sansome e3a9bd7b26 Make DBUS bits optional on Linux. Thanks Nickollai. Fixes issue #1177 2010-12-26 13:38:35 +00:00
David Sansome 6737b8a5c2 Always use the gstreamer engine, remove xine, vlc and phonon engines. 2010-12-26 13:01:35 +00:00
David Sansome 9b22f2ce40 Proxy support. Fixes issue #38 2010-12-25 17:25:29 +00:00
Paweł Bara d7fe4600b8 an initial version of .cue sheets parser
initial support for multipart media files in Song ('beginning' and 'end' fields)
2010-12-23 21:13:43 +00:00
John Maguire cd4ecc1f8e Fix compiling with Sparkle support. 2010-12-22 15:41:30 +00:00
David Sansome a97c23d173 Fix liblastfm detection. Protip: variables can't be used before they're set. 2010-12-19 15:10:26 +00:00
David Sansome a8a035a13a Use the system libechonest if it's installed 2010-12-18 18:36:56 +00:00
David Sansome 28fdb147d8 Make last.fm optional. Thanks volkov0aa. Fixes issue #49 2010-12-18 17:28:02 +00:00
John Maguire f95d893945 Add support for building without Sparkle on mac. 2010-12-14 18:20:14 +00:00
John Maguire 5f6dcbe4b7 Early Caturday! 2010-12-10 14:26:29 +00:00
Paweł Bara aafb3a3b73 include mpris_common in every environment 2010-12-06 00:36:31 +00:00
David Sansome 987dd8c57a Refactor and fix most of the MPRIS code. Fixes issue #374 2010-12-04 22:27:58 +00:00
John Maguire c625acfd87 Refactor background streams.
Add volume control for background streams and infrastructure for custom streams.
2010-12-03 13:53:43 +00:00
John Maguire eca1704384 Sort of working Jamendo dynamic playlist. 2010-11-26 15:16:48 +00:00
David Sansome 927937e236 Save and restore Jamendo playlist items properly. Add a Jamendo context menu. 2010-11-25 22:04:23 +00:00
David Sansome 188c7a53ec Add a database table, backend, and model for Icecast radio stations. Added a filter widget as well, but it doesn't actually search or sort yet. 2010-11-23 22:36:00 +00:00
John Maguire 5feabe09de Add Jamendo support.
Fixes issue #470
2010-11-23 17:38:39 +00:00
David Sansome a30f9a6045 Fix compilation on Natty with the Gold linker 2010-11-22 22:57:44 +00:00
John Maguire c2c3c8145b Add basic icecast directory support.
Fixes issue #601
2010-11-22 16:57:26 +00:00
David Sansome 626c75cd45 Add MPRIS2 and gnome sound menu support 2010-11-21 15:13:26 +00:00
David Sansome 3dd0e56c1b Show controls at the bottom of the playlist when a dynamic playlist is active 2010-11-20 20:00:40 +00:00
David Sansome 287f073127 Make the multi loading indicator shrinkable so it doesn't make the window bigger when lots of things are loading. Fixes issue #967 2010-11-20 14:57:02 +00:00
David Sansome bb1c2b22ef Create, edit and delete smart playlists from the context menu 2010-11-18 23:08:37 +00:00
David Sansome 753b144752 Refactor the smart playlist wizard to move all query-specific parts into a separate class 2010-11-18 21:13:43 +00:00
David Sansome 1f267881fe Put all smart playlist classes in their own namespace 2010-11-18 20:19:33 +00:00
David Sansome 4750c19d00 Remove the playlists tab and add a smart playlists section to the library view instead 2010-11-17 20:21:04 +00:00
David Sansome 444f8ae03c Don't try to link against pthreads on windows 2010-11-03 21:11:43 +00:00
John Maguire e8c271b502 Build fixes for Fedora 14. 2010-11-02 23:07:43 +00:00
David Sansome 2a480f7b1c Somewhat-working smart playlist preview widget for the wizard. Still needs a lot of polish. 2010-10-29 18:41:49 +00:00
David Sansome fb224608ae Add a rating widget, use it in the smart playlist dialog, refactor the playlist delegate to use it. 2010-10-26 19:59:55 +00:00
David Sansome 5d9e43bc14 Add a new smart playlist wizard. Doesn't do anything yet except look pretty. 2010-10-24 23:46:05 +00:00
David Sansome f8fd0e578c Support dragging a smart playlist into a playlist 2010-10-24 16:40:19 +00:00
David Sansome 30afc130a4 Start of some work for smart/dynamic playlists. Only simple generators based on sql queries are supported, and the UI still needs polish. 2010-10-24 15:38:12 +00:00
David Sansome 034c1b58f9 Build the list of languages dynamically from the list of .po files.
Update issue #902
Status: Fixed

Thanks for the patch!
2010-10-23 13:46:45 +00:00
David Sansome eb9660edad Parse FMPS ratings and played counts from mp3 id3v2 tags 2010-10-17 16:03:49 +00:00
David Sansome b5f366c40a Add a thread safe network disk cache, and remove the need to pass a NetworkAccessManager around everywhere. Fixes issue #852 2010-10-16 17:20:54 +00:00
David Sansome efb84a25ce Rename AutoSizedTextEdit to SongInfoTextView 2010-10-16 14:11:23 +00:00
David Sansome 3e87d7b703 Add Ubuntu dark and light tray icons. Fixes issue #838 2010-10-14 19:46:11 +00:00
David Sansome 5d0a2ff5cd Inhibit KDE screensavers as well as Gnome
Update issue #879
KDE support done.
2010-10-12 21:27:31 +00:00
John Maguire a87040f770 Support for inhibiting mac sleep.
Update issue #879
Mac support done.
2010-10-12 16:02:23 +00:00
John Maguire f0c3bf4332 Support for inhibiting gnome screensaver.
Update issue #879
Gnome support done.
2010-10-12 14:44:33 +00:00
David Sansome 35988411e1 Split the echonest images and biographies into different classes, fetch tags and similar artists from echonest. 2010-10-10 21:45:01 +00:00
David Sansome aca4ba6073 Add a tag widget, and get song tags from last.fm 2010-10-10 18:57:23 +00:00
David Sansome a1cc41ab27 Get last.fm play counts and wiki for the song info pane 2010-10-10 17:59:23 +00:00
David Sansome 2aa20d3dee Make the lyric providers configurable again 2010-10-10 16:46:35 +00:00
David Sansome 2f3732e73e Move lyrics into the song info pane, refactor out a load of the common code between artist and song info. 2010-10-10 16:09:20 +00:00
David Sansome 48da2f996f Move the fancy tab widget into src/widgets, remove more dead code, add it to debian copyrights. 2010-10-10 14:04:05 +00:00
David Sansome fb2accea1a Make the pretty image view even prettier 2010-10-09 16:07:20 +00:00
David Sansome 58f455ec15 Fade smoothly between pages in the artist info pane when changing artists. 2010-10-09 14:15:30 +00:00
David Sansome f09a115339 Add a pretty image viewer widget to the artist info pane 2010-10-07 23:13:41 +00:00
David Sansome f017587099 Improve the appearance of the artist info view, make individual sections collapsable. 2010-10-07 21:06:26 +00:00
David Sansome a85c292118 Set the size policy for the artist info widgets properly so they're not all squished together. 2010-10-07 20:18:37 +00:00
David Sansome d035b1abc2 Add libechonest into 3rdparty, and add a basic echonest artist info fetcher. 2010-10-02 16:23:33 +00:00
David Sansome 7f3e91226c Move src/lyrics to src/songinfo 2010-10-02 13:43:45 +00:00
David Sansome 1649ad48c5 Only fetch lyrics when the lyrics tab is visible 2010-10-02 13:37:10 +00:00
David Sansome 56d72a00bf Try the next UI experiment - wide buttons down the side like Qt Creator 2010-10-01 19:27:01 +00:00
David Sansome 200a306f57 Replace the Lyrics tab with a more discreet buttonbox/tabbar that sits alongside the playlist search bar, or the playlist tab bar if it's visible. Also remember whether the lyrics pane was shown, and hide it by default. 2010-09-30 20:17:36 +00:00
David Sansome f74f181978 Query the lyric providers in a sensible default order, and add a new pane in the Settings dialog to configure it. 2010-09-26 17:04:57 +00:00
David Sansome 0a812e46bb Add a lyrics pane to the GUI 2010-09-26 16:00:28 +00:00
David Sansome 4f1a4fe39a Some initial lyrics support. Scrapes all the sites that are supported by Amarok's Ultimate Lyrics script. No GUI or configuration yet. 2010-09-26 14:21:23 +00:00
David Sansome 1ce8ba2abf Don't include qtwin on non-windows os. Thanks oget. Fixes issue #798 2010-09-25 14:55:36 +00:00
David Sansome 4f943795bc Fix a handle + memory + whatever else leak when automatically changing tracks in Windows. Fixes issue #782 2010-09-22 22:22:02 +00:00
John Maguire 0c281bb837 Add cmake options for more libraries.
Fixes issue #738
Thanks to Nickollai for the patch.
2010-09-22 13:05:51 +00:00
John Maguire 0109a3211c Fedora build fixes.
Fixes issue #726
2010-09-11 21:12:46 +00:00
John Maguire 977dd916b0 Install Growl resources (should make the installer work). 2010-09-07 13:28:01 +00:00
David Sansome 29ec96e7b6 Show a little summary of what will and will not be built at the end of cmake 2010-08-31 18:23:23 +00:00
Bartłomiej Burdukiewicz f4dce9e51f Strip wiimotedev code to minimum, use org.wiimotedev.deviceEvents.xml to generete dbus interface for wiimotedev 2010-08-30 23:57:31 +00:00
Bartłomiej Burdukiewicz 3e658288af Put wiimotedev sources in OTHER_SOURCES, small code cleanups 2010-08-29 16:24:19 +00:00
Bartłomiej Burdukiewicz ae47b271f3 Add WiimotedevShortcutGrabber dialog 2010-08-29 15:21:50 +00:00
John Maguire d1173eb0eb Add missing files to CMakeLists.txt for Mac. 2010-08-28 19:01:54 +00:00
John Maguire c801ce1a2d Rollback analyzer changes. 2010-08-28 18:48:16 +00:00
David Sansome 299fb16c99 Add some better error handling when copying files to WMDM devices, and receive progress notifications (they're not used yet except to output to stderr) 2010-08-28 14:33:23 +00:00
David Sansome 7e4f51acb8 Add the rest of the wiimote stuff to OTHER_SOURCES so it gets included in translations even if disabled 2010-08-28 11:26:26 +00:00
David Sansome 88a48a6bdf Add an option to make columns in the playlist stretch to fit the window width like in Amarok 1. This option is enabled by default. Fixes issue #23 2010-08-27 12:42:06 +00:00
John Maguire 372e196be4 * Add a half working gl block analyzer.
* Use a native search widget for the playlist search on Mac.
2010-08-25 20:59:08 +00:00
Bartłomiej Burdukiewicz 93acd26444 Add WiimotedevShortcuts class, support for nunchuk & classic controller 2010-08-25 13:02:53 +00:00
Bartłomiej Burdukiewicz a9beafe033 Add configuration widget for wiimotedev and integration with settingsdialog 2010-08-24 19:57:43 +00:00
Bartłomiej Burdukiewicz 7f95635ba0 Move wiimotedev interface entry to NOT APPLE AND NOT WIN32 section 2010-08-23 18:59:40 +00:00
Bartłomiej Burdukiewicz 2d843fcd27 A src/wiimotedev
A    src/wiimotedev/interface.cpp
A    src/wiimotedev/interface.h
M    src/ui/mainwindow.h
M    src/ui/mainwindow.cpp
M    src/CMakeLists.txt
2010-08-23 17:42:51 +00:00
John Maguire 2e03a2f093 *Fix device lister shutdown on mac
*Remove a bunch of debug
*Fix a windows translation
2010-08-23 10:26:00 +00:00
David Sansome 7821a48cb7 Get a list of songs from a WMDM device 2010-08-22 19:18:22 +00:00
David Sansome 160879327f Pick gstreamer codecs and muxers for transcoding automatically instead of having a hardcoded list 2010-08-22 00:27:14 +00:00
John Maguire acc71de1d9 Silence some warnings. 2010-08-20 11:25:19 +00:00
John Maguire 459a134201 Remove FHT and use gstreamer's FFT for all analyzers. 2010-08-18 18:21:30 +00:00
John Maguire 03274b0831 Add new analyzer API and example using gstreamer spectrum element. 2010-08-18 16:09:45 +00:00
David Sansome 164d4f6f6f Throw away the WPD lister and add a WMDM lister 2010-08-15 18:08:09 +00:00
David Sansome ec22230f3c Add a WPD lister. Doesn't do anything yet, other than compile 2010-08-14 22:43:19 +00:00
David Sansome a3b29406e6 Use pkg-config to find libraries on windows, and explicitly link to zlib for libgpod 2010-08-14 18:56:05 +00:00
David Sansome 9fda03aa60 Support copying files to MTP devices 2010-08-14 16:39:45 +00:00
David Sansome 3f5e188045 Initial support for MTP devices 2010-08-14 15:57:05 +00:00
David Sansome c0ea45a9c9 Show an error dialog when copying or deleting files failed. 2010-08-14 11:51:50 +00:00
David Sansome b74f853446 Merge translations from launchpad 2010-08-11 17:46:01 +00:00
David Sansome 0ccc3a5f0a Remove dependency on libplist++ 2010-08-09 20:22:55 +00:00
John Maguire 9ddba7251a * Get the given name for an iDevice.
* Clean up device information code & get a few more interesting values.
2010-08-09 18:40:20 +00:00
David Sansome 296b2099ae Install an svg icon on Linux. Fixes issue #604 2010-08-07 10:41:42 +00:00
David Sansome 42139fe92f Append to, not replace, CFLAGS and CXXFLAGS. Fixes issue #609 2010-08-07 10:03:26 +00:00
John Maguire 36264e0b2b Separate out UniversalEncodingHandler. 2010-08-03 19:29:49 +00:00
John Maguire e67f9a66c8 Load playlist in separate threads on startup. 2010-08-03 18:57:17 +00:00
John Maguire 992e0fb95e Add support for saving songs in a separate thread.
Updates issue #542
2010-08-02 14:00:43 +00:00
John Maguire be389a12f3 Also check for usbmuxd. 2010-08-02 12:42:59 +00:00
David Sansome 1dcdbfd7d6 Link gstasfsrc with the library rather than the executable 2010-08-01 18:53:55 +00:00
David Sansome 2a7c6de273 Register gstafcsrc properly, and use it when playing songs from an afcdevice 2010-08-01 18:09:38 +00:00
David Sansome 3535e5b954 Compile the afc plugin statically 2010-08-01 17:41:04 +00:00
David Sansome 7a6499abde Copy the iTunes database off a libimobiledevice device and load it from the local file 2010-08-01 14:13:27 +00:00
John Maguire 7fce4ada7d AFC QIODevice for talking to iThings. 2010-08-01 12:19:21 +00:00
David Sansome 1f2b69c6bc Add support for deleting files from the filesystem, devices, and ipods. 2010-07-31 16:12:16 +00:00
John Maguire 24837741e5 Add support for capacity/free space to iDevices.
Fix code review comments for r1585
2010-07-30 22:08:47 +00:00
John Maguire e39a4a889b Fix build without libimobiledevice 2010-07-30 21:51:26 +00:00
John Maguire 23044bf702 Add basic support for libimobiledevice. 2010-07-30 21:10:34 +00:00
David Sansome 3ad30d14a8 Display device free space information in the device properties dialog 2010-07-29 20:03:24 +00:00
David Sansome 81a1a9926e Disable the "copy to device" action if there are no devices connected 2010-07-24 18:31:05 +00:00
David Sansome 990127e5e8 Merge translations from launchpad 2010-07-24 12:41:37 +00:00
David Sansome 4b96395e7f Add an option to use the system qxt library 2010-07-24 12:35:21 +00:00
John Maguire dd3182ad70 Messy mac device listing code using three different APIs. At least the IOKit one will probably go away. 2010-07-23 13:46:30 +00:00
David Sansome 62616304d8 Add a MusicStorage interface that can be used to abstract away the details of copying a file to a device. 2010-07-19 19:56:29 +00:00
David Sansome 7845a243c2 Oops, link against gio 2010-07-17 21:29:41 +00:00
David Sansome 0dcdf36535 Start of work on a GIO/GVFS device backend. 2010-07-17 14:22:07 +00:00
David Sansome 553184c7db Remove amarok's equalizer and use gstreamer's one instead for vastly reduced CPU usage. Fixes issue #494 2010-07-12 20:55:09 +00:00
David Sansome 41183107d2 Start of work on a queue manager 2010-07-11 15:37:40 +00:00
David Sansome 0c123d58e8 Use a system QtIoCompressor if it's available 2010-07-11 12:02:30 +00:00
David Sansome 9be9a7cc0a Add a cmake option to use a system install of QtSingleApplication 2010-07-10 20:33:28 +00:00
David Sansome acf9ff5fd3 Add a cmake option to use a system install of libprojectM. No, gentoo users, you shouldn't use this. 2010-07-10 20:21:06 +00:00
David Sansome 384ff16f2b Add a parser for a weird playlist format that looks like a cross between ASX and PLS. I don't know what it's called... 2010-07-10 18:39:41 +00:00
David Sansome f151df00b0 Blur behind the pretty OSD on Windows Vista and above 2010-07-07 23:03:35 +00:00
David Sansome e9525e8ec3 Very basic support for reading iPods with libgpod. Uses a hardcoded ~/.gvfs path for now. 2010-07-04 20:52:45 +00:00
David Sansome b3af9fa7d7 Add a device properties dialog 2010-07-04 15:01:24 +00:00
David Sansome db5409b66b Store devices in the main database 2010-07-03 23:00:07 +00:00
David Sansome 6654182032 Don't connect new devices automatically, put them in a list model. Add icons for ipods, android phones and USB memory sticks. 2010-07-03 21:05:55 +00:00
David Sansome a1fbd65f68 Test whether sqlite3 has the FTS3 at compile time, and use the static sqlite3 module if not 2010-06-30 19:55:46 +00:00
David Sansome 0404ecec70 Fix compilation without gstreamer. Fixes issue #440 2010-06-26 13:20:08 +00:00
David Sansome 7c09e39d41 Only compile the DeviceKit bits on Linux 2010-06-26 12:57:00 +00:00
David Sansome 2deca7fd61 Add a DeviceManager which holds all the listers and connected devices. Make FilesystemDevices use their own LibraryWatcher. 2010-06-26 12:41:18 +00:00
David Sansome 28ea240eb8 ConnectedDevices have a LibraryModel 2010-06-25 23:38:21 +00:00
David Sansome b750df38ce Rename the DeviceEngines to DeviceListers 2010-06-25 22:36:21 +00:00
David Sansome b423350208 Put each DeviceEngine in its own thread, don't pretend to be a QAbstractItemModel (it's annoying and not at all thread-safe), add a debugging class to listen to and print events. 2010-06-25 22:01:47 +00:00
David Sansome 2ef1fe5ac1 Fix LINGUAS processing 2010-06-25 20:48:39 +00:00
David Sansome ad9d6e7e73 Beginnings of some code to handle removable devices. DeviceKit engine for linux. Doesn't do anything useful yet. 2010-06-25 19:04:10 +00:00
David Sansome a9addb3c54 Add the DeviceKit-disks dbus interfaces 2010-06-25 16:17:17 +00:00
David Sansome f8d0afbc18 Move dbus xml files to src/dbus 2010-06-25 16:05:02 +00:00
David Sansome 0848f62c3d Move OrganiseFormat to core/ and add an Organise class that actually does the work. 2010-06-24 18:33:38 +00:00
David Sansome b2dcaf5cd4 Add a dialog for organising files in a library. Doesn't work yet 2010-06-24 16:26:49 +00:00
John Maguire 4da0ef772d Fix bundle target. 2010-06-24 12:53:35 +00:00
David Sansome e9b1f03ea8 Generate the right .pot file... 2010-06-23 17:03:29 +00:00
David Sansome 88d1c7518a Move the "Configure Clementine" menu item into the Tools menu and rename it "Preferences". Also move the global shortcuts dialog into a page in the preferences dialog. Fixes issue #422 2010-06-23 16:27:23 +00:00
David Sansome f808591ec7 Refactor the loading indicator widget into a seperate TaskManager class that can handle tasks with progress 2010-06-23 13:21:30 +00:00
David Sansome 63861f2ee5 Explicitly produce static libraries even when BUILD_SHARED_LIBS is set 2010-06-22 16:07:29 +00:00
David Sansome faf34a92bb Make it possible to compile out the default CMAKE_INSTALL_PREFIX paths for projectm visualisations 2010-06-22 15:46:51 +00:00
John Maguire c8cb8cf012 Fixes for comments from r1266 2010-06-22 14:26:00 +00:00
John Maguire 15b8b90556 Implement native dock menu on Mac.
Fixes issue #349
2010-06-22 14:09:13 +00:00
David Sansome b4add2a7be Refactor the system tray icon code a bit 2010-06-22 11:52:55 +00:00
David Sansome 47790e9099 Merge translations from Launchpad 2010-06-18 15:53:08 +00:00
John Maguire 2824c153bc Fix Sparkle install. 2010-06-18 14:50:13 +00:00
David Sansome d415e3e125 Include strings from macglobalshortcutbackend.mm in translations regardless of the host OS 2010-06-17 22:19:29 +00:00
John Maguire f9e29fccf4 Global keyboard shortcuts for Cocoa.
Requires "Enable access for assistive devices" set in Universal Access control panel.
2010-06-17 20:31:34 +00:00
John Maguire ae3b500259 Make the buildsystem a little more robust. 2010-06-17 14:45:31 +00:00
David Sansome afa4d0a4e2 Add a Now Playing widget 2010-06-16 22:00:39 +00:00
David Sansome f162d9d620 Add a SongLoaderInserter that loads a list of URLs and inserts them into a playlist when it's done. Wire up everything in the GUI that loads URLs or filenames to use the new SongLoader. 2010-06-15 18:24:08 +00:00
David Sansome 08a01d6997 The start of some code to automagically determine whether a URL is a playlist or a song, and load the songs in the playlist if it's a playlist. Still to do: timeout, forcing M3U for text/uri-list. 2010-06-15 13:24:17 +00:00
John Maguire 73a381fe89 Rain! 2010-06-14 20:00:17 +00:00
John Maguire 1e80ac8c5b Use cmake rm. 2010-06-14 15:10:39 +00:00
John Maguire fd037c0f9a Fix buildsystem to build a new dmg every time.
Fixes issue #405
2010-06-14 14:50:04 +00:00
David Sansome dd36835b49 Make "" an acceptable option for LINGUAS meaning None 2010-06-12 19:36:22 +00:00
David Sansome a41a450218 Add an cmake option to leave translation out of the binary.
Update issue #400
Status: Fixed
Ok makes sense I suppose.  I've cleaned up the patch a bit and committed it.  I changed the cmake variable to LINGUAS (upper case), and valid values are "All", "None", or a space seperated list of languages.
2010-06-12 17:44:19 +00:00
David Sansome 36abad486b Add a dialog for manual searching of Last.fm album covers. Fixes issue #402 2010-06-12 17:13:01 +00:00
David Sansome 516f769a75 Enable dragging and double clicking from the album cover manager to add albums to the playlist
Update issue #169
Status: Fixed
I hadn't forgotten about this, honest... :)
2010-06-12 15:18:16 +00:00
David Sansome 76f0803b81 Make visualisations optional.
Update issue #394
Status: Fixed
There's now an ENABLE_VISUALISATIONS option that you can set to cmake with cmake -DENABLE_VISUALISATIONS=OFF, or with ccmake or cmake-gui.
2010-06-10 22:48:23 +00:00
David Sansome 903dbba87e Dialog for downloading Magnatune albums 2010-06-09 14:02:26 +00:00
David Sansome f1fb9ab6b9 Remove the library config dialog and make it show the page in the settings dialog instead 2010-06-08 23:06:29 +00:00
David Sansome 43ca921d65 Add a magnatune settings page (not functional yet), remove the last.fm config *dialog*, and instead make it bring up the settings dialog at the right page. 2010-06-08 22:56:31 +00:00
David Sansome 40bb827fcd Make all the source files a single cmake target again. 2010-06-08 22:39:31 +00:00
John Maguire e8f1838d6d Fucking mac. 2010-06-07 20:39:06 +00:00
John Maguire 7d18f60ca8 Ignore silly Info.plist from Sparkle. 2010-06-07 20:22:43 +00:00
John Maguire ea95b847fc Update dmg target to stop Qt copying silly plugins. 2010-06-07 19:43:07 +00:00
John Maguire a821f5a505 Install resources into mac bundle. 2010-06-07 19:01:35 +00:00
David Sansome 0e155c1eaf Fix liblastfm finding 2010-06-06 21:08:52 +00:00
David Sansome 1895582eb9 Basic support for ProjectM visualisations 2010-06-06 14:06:23 +00:00
David Sansome c9c44ca592 Move the playlist parsers to another directory, and add a PlaylistParser class that magically uses the right parser. 2010-05-22 20:06:19 +00:00
David Sansome c5db4c025c We don't need to link against libz on windows or linux for some reason. 900 GET 2010-05-11 20:07:00 +00:00
John Maguire ff4eb346da Fix mac build 2010-05-11 12:51:31 +00:00
David Sansome 1aee5e4667 Split all the source files up into seven new directories. 2010-05-10 21:50:31 +00:00
David Sansome 481dbae992 Save magnatune playlist items properly, also fix tests from before 2010-05-10 14:19:43 +00:00
John Maguire 37960cb5df Start of (still disabled) ID3v1 encoding detector.
Comes with const_cast hackiness \o/
Updates issue #254
2010-05-10 13:46:06 +00:00
David Sansome 41f306fd2a Load cover art from Magnatune: make AlbumCoverLoader load from http, and make the OSD load artwork asynchronously. 2010-05-10 13:15:52 +00:00
David Sansome e2355d855d Move the library filter widget out of MainWindow into another class, and show the widget when magnatune is selected 2010-05-09 20:18:05 +00:00
David Sansome 6b8d6c93f9 Add a MergedProxyModel that lets us merge two models into one... 2010-05-09 15:51:04 +00:00
David Sansome 1b00aaa8b3 Big refactoring of the Library <-> LibraryBackend <-> SQLite interaction.
The LibraryBackend has now been split into a Database class that deals with setting up sqlite, and PlaylistBackend that contains the functions for persisting the playlist.  The LibraryBackend now only contains functions for accessing "a collection of songs", and can be parameterised with table names to access different collections.  It also no longer lives in a background thread, and follows the Qt memory management model instead of using shared_ptr.
Most of Library has been moved into LibraryModel - a QAbstractItemModel for any LibraryBackend.  What's left of Library is now specific to the user's local library on disk.
2010-05-09 00:10:26 +00:00
David Sansome 72dbfd51c5 Start of a Magnatune service that downloads the list of songs and prints them on stdout. 2010-05-08 20:56:39 +00:00
David Sansome 9cd0fa6d7d Better error handling for the transcoder, and a log to show the user what's going on 2010-05-08 15:36:12 +00:00
John Maguire b909f56dbb Stupid msgmerge fix. 2010-05-07 12:30:06 +00:00
David Sansome 8c9b546cc5 Show the console window in debug mode on Windows 2010-05-05 16:56:55 +00:00
David Sansome a81d0c55e7 Fix some indentation in CMakeLists 2010-05-05 16:56:35 +00:00
David Sansome d5c52f32d8 Add an almost working music transcoder. Also some small translation fixes. 2010-05-03 18:52:35 +00:00
David Sansome 7039d04ee6 Keep all the version numbers in one file, so we don't have to change it in hundreds of places each release. 2010-05-03 13:58:41 +00:00
David Sansome d3cbeed9b7 Merge translations from launchpad 2010-05-03 13:10:38 +00:00
David Sansome 29a623739b Italian translation from Vincenzo Reale 2010-04-28 10:29:26 +00:00
David Sansome 0579b18850 Accept empty fields in the edit tags dialog. Fixes issue #251. 2010-04-27 17:19:07 +00:00
David Sansome 30daf4aca2 Merge translations from launchpad 2010-04-27 13:51:25 +00:00
David Sansome 9dca93e276 Merge translations from launchpad 2010-04-22 14:01:46 +00:00
David Sansome 37f7b1ca3b Use lconvert from the Qt sdk rather than $PATH, if it's available 2010-04-21 11:03:30 +00:00
David Sansome 32d5a1dd2d Add danish translation 2010-04-19 19:25:33 +00:00
David Sansome b2236bfd1e Undo and redo actions for the playlist. Note that undoing a sort or a shuffle doesn't work yet. Fixes issue #152 2010-04-19 18:44:35 +00:00
John Maguire 4948050327 Fix build without gstreamer.
Fixes issue #217
Thanks to christoph.gysin
2010-04-16 14:39:55 +00:00
John Maguire baf59f4c8d A bit more automation for mac builds. 2010-04-15 19:09:39 +00:00
David Sansome d3adcbabf8 Change "Behaviour" to "Behavior", and add a british english translation 2010-04-15 16:26:41 +00:00
John Maguire 8abb9ecd4b Most of the work to use Sparkle on OS X.
Updates issue #210.
2010-04-15 15:23:12 +00:00
David Sansome dd86b60411 CMake variables and commandline options to allow multiple engines to be built. Thanks christoph.gysin.
Fixes issue #203
2010-04-15 12:39:34 +00:00
David Sansome af07b5becd Store the playlist in the database. This is still quite slow. 2010-04-14 21:03:00 +00:00
David Sansome b63fcb0b10 Add the new languages to the buildsystem 2010-04-14 16:50:18 +00:00
David Sansome 91d6ad79ea Add a "po_all" target 2010-04-14 16:41:11 +00:00
David Sansome 921eb94a21 Abstract the QSettings usage out of Playlist and PlaylistSequence, create a mock for it, and add a basic playlist test 2010-04-14 14:48:10 +00:00
John Maguire f429b53212 Use static version of qsqlite plugin on mac as well & disable qxt for mac.
The plugin shipped with Qt has the sqlite symbols set to hidden. It seems dlsym() actually cares about that on Snow Leopard whereas it doesn't in Leopard.
If it can't find the sqlite functions in the given library, then it will go fishing and find /usr/lib/libsqlite3.dylib and that's bad :-(
2010-04-13 19:43:08 +00:00
John Maguire a4405e7877 Add support for global media keys on mac (Cocoa only).
Updates issue #6
2010-04-13 13:55:54 +00:00
David Sansome 2ec6ca45c8 Commandline options support. Fixes issue #189 2010-04-12 22:44:29 +00:00
David Sansome 14d0b00f46 Factor out the gstreamer pipeline bits into another class. 2010-04-11 19:47:21 +00:00
David Sansome e6da826227 Make the equalizer sliders stick in the middle around '0' when being dragged. Updates issue #166 2010-04-11 13:29:27 +00:00
David Sansome c92d6f1852 Left clicking on the track slider will now jump to the absolute position in the track. Fixes issue #172 2010-04-08 21:15:33 +00:00
David Sansome c6fe113e79 GStreamer equalizer. Mostly working, just missing presets. Updates issue #166 2010-04-07 16:26:04 +00:00
David Sansome 96aef75c91 Don't add line numbers to the translations - cleans up diffs 2010-04-07 12:27:16 +00:00
David Sansome ac887cf468 Add a damn header to the .pot file 2010-04-06 21:52:29 +00:00
David Sansome 6de9b8e9d7 Moved to gnu gettext translations 2010-04-06 19:18:14 +00:00
David Sansome c7f4a091ed Let's give gstreamer another try... 2010-04-06 16:57:02 +00:00
David Sansome 1c5b6c6b05 Use the vlc engine on Windows 2010-04-05 15:50:53 +00:00
David Sansome 993a4f0e43 Experimental VLC audio engine 2010-04-04 20:45:03 +00:00
David Sansome d5eb2297d2 Move the audio engines to their own directory 2010-04-04 17:50:11 +00:00
David Sansome 134743bd29 Add an advanced grouping dialog for the library. boost::multi_index ftw. Fixes issue #94. 2010-03-31 23:11:45 +00:00