Commit Graph

653 Commits

Author SHA1 Message Date
John Maguire 47e437383e Remove unnecessary includes. 2012-02-02 14:08:14 +01:00
John Maguire 3e65d3d5f0 Add ScopedNSAutoreleasePool from Chromium. 2012-01-31 13:54:03 +01:00
David Sansome facb366017 Remove subdirectory watches after a directory is removed from the library. Otherwise subdirectories that changed after the directory was removed would be re-scanned and re-added. 2012-01-29 17:39:28 +00:00
David Sansome 0335d57a0f Improve pipeline buffering: on an underrun event playback will now pause until the buffer is completely full. Fixes audio stuttering on when listening to radio streams on slow networks. 2012-01-23 15:01:39 +00:00
David Sansome 58c0f464cd Queue messages in WorkerPool instead of in each individual handler, so the entire queue isn't lost if a worker crashes. 2012-01-22 18:53:17 +00:00
Руслан Ижбулатов 5c45e22e28 Make SAC and WMDM optional 2012-01-22 14:35:22 +00:00
John Maguire 17c8189dcf Add and use scoped_cftyperef from Chromium. 2012-01-20 15:46:33 -08:00
John Maguire 87b94de0d7 Save background stream state as soon as it is changed. 2012-01-20 15:24:43 -08:00
John Maguire e83616ad09 Fix build on Clang. 2012-01-19 15:33:16 -08:00
Alan Briolat 66cc5d432e Add pretty printer for Qt enums. 2012-01-19 14:20:26 -08:00
Arnaud Bienner da35fab076 Save default QApplication palette when starting Clementine
Update issue 2603
Hopefully, this will fix this issue for other systems this time...
2012-01-14 16:27:49 +01:00
Arnaud Bienner 97d8365c56 Also refresh stylesheet when chanfing application's QPalette 2012-01-14 16:27:36 +01:00
Arnaud Bienner 22d1608bdc Explicitly use a default QPalette
Update issue 2603
Hopefully, this fixes this issue
2012-01-12 23:01:05 +01:00
John Maguire dfdb71b164 Make it so!
Fixes issue #2527
2012-01-10 17:00:17 +01:00
Arnaud Bienner b08567b697 Merge commit '710536ad506d' into appearance 2012-01-09 20:24:26 +01:00
Arnaud Bienner c2d794c014 Merge branch 'master' into appearance 2012-01-09 20:15:10 +01:00
Arnaud Bienner ea063e1c39 Add missing modifications 2012-01-09 20:08:09 +01:00
Arnaud Bienner 710536ad50 Start working on UI customization. Allow user to change global background/foreground colors. Some work still required to update all components' colors
Update issue 219
Started!
2012-01-09 00:01:01 +01:00
David Sansome 68a379ef26 Use pb::spotify instead of spotify_pb for the protobuf namespace 2012-01-07 23:26:27 +00:00
David Sansome ccb3a0aa3a Show a detailed error when the tagreader executable couldn't be started. 2012-01-07 22:58:30 +00:00
David Sansome 31f423a0ff Fix a compilation error 2012-01-07 22:58:19 +00:00
David Sansome 4618651cf4 Merge branch 'master' into external-tagreader 2012-01-07 22:52:18 +00:00
David Sansome e9c0b4bd69 Musicbrainz tagging improvements:
* Fix a bug where the song title would be used for the album field
  * Get the album's year as well
  * Include all releases for a song in the results list
  * Remove duplicate albums
  * Sort results
2012-01-07 21:51:02 +00:00
David Sansome 9be641ee87 The external tagreader mostly works now:
* Make TagReaderClient a singleton until it's easier to pass dependencies around
 * Add a WaitForSignal() that uses a local event loop to wait for a signal to be emitted
 * Add a WaitForFinished() to _MessageReplyBase that blocks using a semaphore
 * Add blocking versions of all TagReaderClient methods
 * Use the TagReaderClient everywhere that Song::InitFromFile and friends were used before
2012-01-07 00:26:07 +00:00
David Sansome 9041117867 Move everything around in the source tree - static libraries and external binaries now go in "ext/". Add a generic worker pool. 2012-01-05 23:25:13 +00:00
David Sansome 85f2f087cb Start work on moving everything that uses taglib out into an external process. 2012-01-05 23:24:48 +00:00
John Maguire 483c36748e const& and tweaks to Mac directory canonicalisation. 2012-01-05 16:11:39 +00:00
John Maguire 761737eb4d Add more robust subdirectory detection in LibraryWatcher. 2012-01-05 15:56:46 +00:00
John Maguire 97f3885f58 Add copyright headers. 2012-01-05 15:08:15 +00:00
John Maguire 55e9fd8dc3 Disable watching for FS updates when requested. 2012-01-05 15:01:43 +00:00
John Maguire 9fdfb52225 Use FSEvent-based filesystem watcher on Mac. 2012-01-05 14:51:23 +00:00
David Sansome 4cbc221f00 Don't set a "file" url scheme on files in devices that already have URL prefixes (like afc:// for iPod Touches)
Fixes issue 2564
2012-01-04 22:11:42 +00:00
John Maguire 0139f36e2d Add scoped_nsobject from Chrome. 2012-01-04 15:33:12 +00:00
John Maguire 3f0c779308 Add QObject constructor. 2012-01-04 15:26:22 +00:00
John Maguire 96aa95bebd Add filesystem watcher using Mac FSEvents API. 2012-01-04 15:24:53 +00:00
John Maguire bcf9475f2b Add a source column to the playlist view with appropriate icons. 2012-01-04 11:56:09 +00:00
David Sansome 54df30c15d Remove the global search popup for now until it can be made a bit prettier 2011-12-12 20:49:09 +00:00
Eike Hein e613f86acf Don't report version number in MPRIS2 Identity.
Fixes issue #2447
2011-12-01 09:28:11 +00:00
David Sansome 22e6a649b7 Remove the custom gstspotifytcpsrc and use tcpserversrc ! gdpdepay to receive data. Use a gstreamer pipeline on the other end as well to send data. 2011-11-28 18:45:12 +00:00
John Maguire e9d770a864 Remove pjsip/stun code and make PortForwarder at least compile. 2011-11-28 16:22:13 +01:00
David Sansome b873209d39 Remove the <xiphcomment.h> include from song.h so that windows headers don't infect everything else. Also move other bits of song.h into song.cpp, and reduce the number of includes in song.h. 2011-11-28 13:56:55 +00:00
Angus Gratton 360aaabd0d Add playlist album artist for use in playlist grid view (Issue 509) 2011-11-28 11:04:38 +00:00
Angus Gratton edb9b0b4fe Add album effective_artist filter that falls back to artist when unavailable (Issue 509) 2011-11-28 11:04:38 +00:00
David Sansome be4e70a9b1 Don't crash when using Player::PlayAt to play an index that doesn't exist. Fixes issue 2330 2011-11-27 22:24:38 +00:00
David Sansome da532ef3ca Make manual track changes ignore the "repeat track" setting. Fixes issue 2426 2011-11-27 21:02:37 +00:00
David Sansome 8334484c1e Fix some symbol naming conflicts that happen when including windows header files (taglib >1.7 brings them in for us). 2011-11-27 19:43:07 +00:00
David Sansome 7444f437aa Fade out tracks properly when changing between two URLs that have registered URL handlers (like spotify and grooveshark). 2011-11-27 16:35:36 +00:00
David Sansome b8ee548eb4 Rename the existing "Shuffle by album" mode to "Shuffle tracks in this album", and add a new "Shuffle albums" mode that plays all the tracks in each album sequentially, but then jumps to a different random album afterwards.
Fixes issue 1152
2011-11-27 15:01:10 +00:00
Angus Gratton 5ee9961d4f Fix bug w/ Organize deleting old files
Fixes issue #1806
2011-11-25 15:28:43 +01:00
Arnaud Bienner cc20e6b6ae Use task manager on most GS actions 2011-11-23 01:07:40 +01:00
Arnaud Bienner fdad2bd706 Make the async load of folders thread-safe 2011-11-18 21:55:54 +01:00
David Sansome 13ae806005 Only use the Unity hack on Ubuntu. Fixes issue 2198 2011-11-13 00:40:29 +00:00
Arnaud Bienner 2511a97077 Add an index on filename on songs table. Particullary, this heavily speed up the 'Add folder' usecase 2011-11-12 19:33:50 +01:00
David Sansome 53f1f6509b Fix URLs in device tables as well when upgrading 2011-11-12 17:15:10 +00:00
Arnaud Bienner 48db13b353 Make Playlist's InformOfCurrentSongChange public and use it when updating item instead of using UpdateItems (which will create a new item) 2011-11-11 02:42:48 +01:00
John Maguire 85ab8e260a Restore Qt 4.7 behaviour by adding a content type to POST requests that don't have one. 2011-11-10 23:42:34 +01:00
John Maguire 8e4ec35c61 Fix playlist detection when playlist size is < 512 bytes.
Fixes issue #2319
2011-11-10 21:42:40 +01:00
John Maguire ed0e6ba898 Lion build fixes 2011-11-10 20:56:49 +01:00
John Maguire a57d947a33 Show global shortcuts dialog on Lion.
Fixes issue #2104
2011-11-09 13:59:25 +01:00
David Sansome e3b7afbdf2 Add "Your radio streams" global search provider 2011-11-06 15:00:50 +00:00
David Sansome 8c69094931 Add a generic class for the "cached list of stuff" pattern used by last.fm and di.fm/sky.fm for keeping friend lists or stream lists around and refreshing them after a certain length of time 2011-11-06 00:02:32 +00:00
Arnaud Bienner 860d355f00 Ability to add a Grooveshark song to Grooveshark user's favorites 2011-11-02 00:02:49 +01:00
Arnaud Bienner 85ea3fe37f Add songs to Grooveshark playlists by drag and drop 2011-10-30 23:59:43 +01:00
John Maguire a1ece63f3a Use URLs for openInFileBrowser. 2011-10-26 14:54:24 +02:00
John Maguire cc986b7177 Update show in file browser to work with URLs.
Fixes issue #2002
2011-10-26 14:43:28 +02:00
David Sansome 9a739a3346 Add a DBus interface onto the global search engine, and add a KDE krunner plugin that performs global searches in Clementine.
This is optional and is not compiled unless you have the plasma developer packages installed.
2011-10-19 23:17:24 +01:00
David Sansome da825d4659 Make clicking outside the global search tooltip work again 2011-10-15 21:57:08 +01:00
David Sansome 4cabb98b43 Fix compilation of the gnome global shortcuts backend when dbus isn't available 2011-10-15 20:49:53 +01:00
David Sansome ce501d982a Don't show the global search popup immediately when clicking in the search field, making it possible to double click the search box to select all text. 2011-10-15 20:48:48 +01:00
David Sansome 2bffe1fa82 Register and unregister for media key notifications properly from the gnome settings daemon 2011-10-14 22:01:25 +01:00
John Maguire a526c7c13d Make closures non-copyable. 2011-10-06 14:45:55 +02:00
John Maguire 265b174dc9 Fix warning on GCC 4.6 2011-10-06 14:24:33 +02:00
John Maguire 5e343611bf Add some asserts to closure. 2011-10-06 13:19:42 +02:00
John Maguire a6e8797b9d Add some syntactic sugar to closures. 2011-10-06 13:11:18 +02:00
John Maguire e77de84451 Add a closure variant using tr1::function. This may break the build... 2011-10-05 14:55:39 +02:00
John Maguire fc34a244c6 Tidy up closure implementation. 2011-10-05 11:36:08 +02:00
John Maguire 20a967a19f Basic working closure implementation. 2011-10-04 18:26:40 +02:00
Arnaud Bienner 4143823870 Get GrooveShark songs' length (give the ability to seek through stream). markStream and markSongComplete, as resquested by GrooveShark 2011-10-02 12:05:56 +02:00
Casey Jones a49e2828e6 Display album art from FLAC tags 2011-09-28 00:16:02 +01:00
David Sansome 53e175e503 When stopping due to "Stop after this track", set the current song to the one after, so when the user presses Play it plays the next song instead of the last one again. 2011-09-27 23:31:15 +01:00
David Sansome 54016a8286 Add missing --help text for --search-popup 2011-09-25 11:53:42 +01:00
Arnaud Bienner 2406fdabf6 Check pointer nullity 2011-09-22 19:50:43 +02:00
Arnaud Bienner 399829291d Merge branch 'master' of https://code.google.com/p/clementine-player into grooveshark
Conflicts:
	data/data.qrc
2011-09-20 00:37:20 +02:00
David Sansome e10efbc484 Make "Add and play now" work 2011-09-18 23:26:21 +01:00
John Maguire b0c880d444 Adds --search-popup command line option. 2011-09-16 16:19:52 +02:00
Arnaud Bienner 99fdba877e Merge branch 'master' into grooveshark 2011-09-02 00:35:40 +02:00
Arnaud Bienner 096680c576 Add Hmac for MD5 2011-09-01 23:45:47 +02:00
John Maguire 551a85cb9b Add missing copyright headers. 2011-09-01 16:07:07 +01: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 2cbe90c2e5 When playing a last.fm stream, don't scrobble the next item in the playlist in between each track of the last.fm stream. Fixes issue 1943 2011-08-28 02:59:19 +01:00
David Sansome 195f618bf2 When organising files, make %albumartist behave as %artist if the song has no albumartist tag set. 2011-08-28 00:02:41 +01:00
David Sansome 1d098a40b8 Revert commit ddfb90a0a1, and always delete files from disk rather than sending them to trash. 2011-08-27 23:54:55 +01:00
David Sansome 5884502389 Fix a bug loading where song metadata wouldn't be loaded from the library when loading a local file containing spaces. Fixes issue 2192 2011-08-27 22:51:30 +01:00
David Sansome 7e0e4e48e4 When loading a CUE from disk that isn't in the library, don't overwrite the metadata of its first song with the metadata from the audio file. Fixes issue 2092 2011-08-27 22:29:35 +01:00
Arnaud Bienner 5cbb86f247 Use toEncoded instead of toString in SQL query 2011-08-19 22:37:59 +02:00
Arnaud Bienner f319a615d9 Use url when checking if a file is already in DB instead of filename when loading files (this usecase has been missed when we have decide to use urls everywhere) 2011-08-18 22:43:52 +02: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
David Sansome ae4cfeff1c Always assume Icecast-style stream metadata is in the "Artist - Title" format, as this seems more common. Remove the hacks for soma.fm and stations from the icecast list. Fixes issue 1035 2011-07-26 15:56:19 +01:00
David Sansome b628c2a26e Use a template function instead of a macro 2011-07-26 13:22:23 +01:00
David Sansome c366f722fb Show the album cover dimensions on top of the images in the album cover search dialog.
Fixes issue 1704
2011-07-26 13:02:59 +01: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 9fadf57acc Revert "Move TaskManager::Task and UrlHandler::LoadResult structs out of their parent classes - PythonQt doesn't understand nested structs."
This reverts commit 5234798a7f.
2011-07-23 15:32:12 +01:00
David Sansome dd3eee63e5 Remove python scripting support 2011-07-23 15:32:12 +01:00
Tyler Rhodes ded8e5f6f0 Refactor "Radio" files into "Internet" files. 2011-07-15 13:27:50 +00:00
David Sansome c8305c0eee Don't record an undo step when all the songs inserted into the playlist were vetoed. Thanks schizosfera. 2011-07-01 20:48:18 +00:00
John Maguire 6e86caae2c Define QT_STRICT_ITERATORS and fix the associated bugs. 2011-06-20 15:08:06 +00:00
David Sansome 36165ea9bf Keep the state of the rain and hypnotoad menu actions in sync with whether they're actually playing. Fixes issue 1986 2011-06-19 14:42:00 +00:00
David Sansome 67f41ef886 Oops, remove some unused dbus includes 2011-06-18 22:05:35 +00:00
David Sansome fd7d24b11a Add Clementine to the Unity system tray whitelist on startup. 2011-06-18 19:08:09 +00:00
David Sansome 7415d85dce When initialising a song from a library query, don't always assume the metadata originally came from a file (which means icycast tags are ignored when it is played). Fixes issue 1857 2011-06-17 20:00:10 +00:00
David Sansome 99390486bf Show a song's URL in the title playlist column if it doesn't have a title or base filename. 2011-06-17 19:32:03 +00:00
John Maguire 25587286b2 Fix error when unref'ing cdda element after failing to read CD. 2011-06-15 19:28:25 +00:00
Arnaud Bienner 7fca5d37dc Minor modifications on load audio CD, including better cleaning of objects 2011-06-14 23:38:43 +00:00
David Sansome 563de288ba Encode URLs properly when doing the DB schema conversion to store filenames as URLs 2011-06-14 14:46:02 +00:00
Tyler Rhodes a452971708 Change Mac media keys to respond on key release. Fixes issue 1985. 2011-06-13 10:20:37 +00:00
Tyler Rhodes 80abba66ca Fix my compile fix in r3373 2011-06-10 09:37:50 +00:00
John Maguire 4917ae8f4f Fix compile error. 2011-06-10 09:35:03 +00:00
Tyler Rhodes 006e085b7d Fixes 64-bit compile issue from r3372 2011-06-10 09:19:30 +00:00
Arnaud Bienner 272841ab73 Starting audio CD support. Starts issue 701 2011-06-09 23:08:43 +00:00
Andrea Decorte 527171fadb Toggle visibility for Pretty OSD by command line and global shortcut.
Fixes issue 1344
2011-06-05 08:21:17 +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 7de618beff Fix registration of metatypes for list handlers on Qt 4.7 2011-05-29 14:08:55 +00:00
John Maguire 54a79f0665 Always pause on --pause.
Fixes issue #1599
2011-05-26 15:40:53 +00:00
John Maguire 799279afcd Untested attempt to read album artist tags from ogg/flac/mp4 properly.
Fixes issue #1624
2011-05-26 15:30:42 +00:00
David Sansome 7228eb8676 Buffer stdout and stderr properly, and integrate with python's logging module 2011-05-22 11:48:12 +00:00
David Sansome 5234798a7f Move TaskManager::Task and UrlHandler::LoadResult structs out of their parent classes - PythonQt doesn't understand nested structs. 2011-05-21 10:43:25 +00:00
John Maguire 8dd745895a Add --version command line flag.
Fixes issue #1867
Thanks to: tyler.s.rhodes@gmail.com
2011-05-16 19:21:46 +00:00
David Sansome 792352be3b When songs disappear from the filesystem (either they're deleted or are on a removable media that was unmounted), mark them as unavailable instead of removing them from the database. Thanks google@robbertkrebbers.nl. Fixes issue 401 2011-05-14 13:43:57 +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 5efe63462c Get album art for Spotify tracks 2011-04-29 13:41:42 +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
David Sansome ccb9f8cf94 Use URLs everywhere instead of filenames. Move the URL parsing and song loading code out of individual playlist parsers and into the base class. Fix the playlist parser unit tests. 2011-04-28 12:27:53 +00:00
David Sansome b15156a7a3 Handle bigger protobuf messages, add spotify searching to the UI 2011-04-27 16:38:28 +00:00
David Sansome 3d6677fe6d Allow radio services (Spotify) to store whole songs in playlist items 2011-04-26 22:06:58 +00:00
David Sansome 2bec9a00fc Add license headers to all the spotify source files and obfuscate the API key 2011-04-26 13:43:13 +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 101985defa Fix a build failure with glib >= 2.25 2011-04-22 17:52:09 +00:00
David Sansome 5a2f522895 Fix compilation on release builds 2011-04-22 17:17:37 +00:00
David Sansome 3eedc916ad Add a new logging system 2011-04-22 16:50:29 +00:00
David Sansome 8f4c1dbbf6 When doing gapless playback, fix a bug where the TrackEnded signal would be emitted too early, before the track had actually ended. This caused the song after the current song to get scrobbled and its playcount increased. Fixes issue 1771 2011-04-17 14:11:37 +00:00
David Sansome 12b6bbd166 Scrobble radio streams even if we don't know the length of each individual part. Fixes issue 681 2011-04-16 15:13:53 +00:00
Arnaud Bienner f7e614684d Minor modifications thanks to David' comments. Adding some comments to explain the new process: hope it's clearer now 2011-04-16 15:06:13 +00:00
Arnaud Bienner 65ef047c38 Loading file in async way, in two times: fast loading files and insert them in playlist view, while loading info (tags, ...) in background thread 2011-04-16 14:04:15 +00:00
David Sansome 8d6f818d25 Maybe fix an assert when connecting WMDM devices 2011-04-16 13:39:31 +00:00
Andrea Decorte 5d8f1fe872 Added scrobbling button in main window and a global shortcut for
toggling it. Fixes issue 1090
Improved last.fm error handling
2011-04-07 16:25:52 +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
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