Commit Graph

196 Commits

Author SHA1 Message Date
Andreas dd2ba0fe33 Append id to spotify_bin gst_bin. 2015-04-21 11:47:32 +02:00
Andreas a1855f84bc Almost. SpotifyClient streams new tracks to a new media pipeline.
Bugs:
- If the transition work, there is no audio output, but the pipeline is filled with data.
- Sometimes the transition doesn't work and a complete new gstpipeline is created. Not sure why yet.
2015-04-14 16:33:44 +02:00
Andreas 8ab13d2b23 Work on other approach. 2015-04-14 14:39:56 +02:00
Andreas 341d5d3722 Once track can be played gaplessly. But the gst pipeline position isn't reset to 0 and this causes further problems. 2015-04-14 14:39:56 +02:00
Andreas a759fdb2e0 Oops. 2015-04-14 14:39:56 +02:00
Andreas db14b75fe7 Use Spotify prefetch to load next song before the current one ends.
We still have the problem that each track a new GstPipeline is created and the SpotifyClient creates a new connection to this pipeline.
Therefore playback is not gapless yet.
2015-04-14 14:39:56 +02:00
Martin Babutzka 258ae281d8 IDv3 tag lyrics support.
Squashed the following commits:

5c723ad commit: Fix: Includes alpha sort
15ac350 commit: Fix: Updated Database::kSchemaVersion to 49.
767a26a commit: Fixed small code style issue. Added schema-49 to data.qrc instead schema-48
bf6aa64 commit: fixup! Modified async handling of CollapsibleInfoPane as recommended by Andreas. Display of IDv2 tag lyrics works now.
c1f97e9 commit: fixup! Added support to read/display the ID tag lyrics in MP3 files:
c946b1d commit: Added support to read/display the ID tag lyrics in MP3 files:

-Added schema to the database to store it
-Added readers/writers for ID tags
-Added readers/writers for the database to the song class
-Added the taglyricsinfoprovider to show the lyrics in songinfo
2015-04-10 21:05:07 +02:00
Andreas f34734443b Remove pending playlist requests in SpotifyClient if sp_session_player_load failed as well. 2015-03-14 15:26:44 +01:00
Andreas 55e5eab157 Fix Race-Condition in SpotifyClient that caused playback to break.
QList.removeAll calls the destructor for the elements in the list. This caused `req` to be initialized in `SpotifyClient::TryPlaybackAgain()`. Therefore, spotify method calls might crash because the pointers are invalid.

This commit moves the `pending_playback_requests_.removeAll` to the end of the method to ensure `req` is accessible all the time.
2015-03-13 14:12:19 +01:00
John Maguire 705cdf11fc Move ScopedNSAutoreleasePool to ext 2015-03-02 17:51:17 +01:00
Chocobozzz 071be6bc83 Make format 2015-02-21 16:57:37 +01:00
Chocobozzz fb5781eee2 Add performer tag support for mpeg 2015-02-21 16:49:00 +01:00
John Maguire 87fed5d0f4 Merge pull request #4715 from Chocobozzz/albumartist_flac
Fix album artist for FLAC/OGG files (with vorbis comments)
2015-01-19 10:57:31 +01:00
Chocobozzz c61d866caf Fix album artist for FLAC/OGG files (with vorbis comments) 2015-01-16 18:30:11 +01:00
Arnaud Bienner e1139e731f run make format 2015-01-14 22:55:20 +01:00
Arnaud Bienner 7039c2a2bf Spotify: add the ability to add/remove tracks to/from Starred playlist 2015-01-14 22:49:36 +01:00
Arnaud Bienner 7278e7c4d0 Add ability to get a link to share Spotify playlists 2014-12-27 18:05:04 +01:00
Andreas ff172f6ed4 Network remote can now transcode lossless files before sending them to the remote.
- It is configurable in the settings.
- Any format can be chosen that is supported by the transcoder.
- The status of the transcoder is send to the remote.

- Transcoder format settings have now a postfix so we can define mutliple transcoder formats and use them separatly. Here one for the normal transcoder and one for the network remote transcode. You can pass the postfix in the constructor.
- Fixed Transcoder crash (was introduced with the gstreamer1.0 merge, decodebin doesn't have a "new-decoded-pad").
- Transcoder emits the output filename as well on "JobComplete" signal
- Transcoder can now convert a file to a temporary file ("AddTemporaryJob")
2014-11-13 22:31:49 +01:00
John Maguire 4f4c8f6894 Merge pull request #4580 from Chocobozzz/hide_internet_services
Hide internet services
2014-10-31 12:02:29 +01:00
Arnaud Bienner f2eecadbd3 Don't write rating if not set
Fixes issue #4128
2014-10-21 21:49:23 +02:00
Andreas c43eb02efd Android Remote: Add global search. 2014-10-21 18:07:02 +02:00
Chocobozzz 50b7b7d889 Make format after update to avoid conflicts 2014-10-15 21:57:57 +02:00
David Sansome 88a6300509 Completely revert the Spotify seeking stuff - it's hacky and I don't like
waiting 4 seconds to have my songs start.  I'll reimplement it properly later.

Reverts commits 96387803cd and 160b151652.
2014-10-14 19:33:03 +11:00
Arnaud Bienner f81fa2d119 Add the ability to remove tracks from Spotify playlists 2014-09-28 02:00:32 +02:00
Arnaud Bienner 39db4dbefe Add the ability to add a Spotify track to a Spotify playlist through context menu.
TODO: drag and drop (i.e. implement DropMimeData), update special playlist (Favorites), remove from playlist.
2014-09-22 22:40:21 +02:00
David Sansome eaad4c32ee Merge branch 'gstreamer-1.2'
Fixes #3332
2014-09-22 22:45:28 +10:00
David Sansome bb08a0f416 Fix misleading offset_bytes names 2014-09-22 00:13:00 +10:00
David Sansome 3f0dc01b06 Make Spotify work with gstreamer-1.0. 2014-09-21 22:39:30 +10:00
David Sansome a2408f7c0e Merge branch 'master' into gstreamer-1.2
Conflicts:
	src/moodbar/moodbarloader.cpp
2014-09-21 19:39:27 +10:00
David Sansome 6b32ecec27 Various bits for gstreamer-1.0 compatability 2014-09-21 19:38:13 +10:00
Arnaud Bienner 160b151652 Add seek ability to Spotify tracks.
This is functional but pretty hacky.
And, as noted in the comments, there is a small delay (depends, but usually several seconds) to have the seek taken into account. But IMHO it's better than nothing.
Fixes #2503
2014-09-14 02:15:58 +02:00
pie.or.paj cbc6e5cf4d Pause spotify track (issue 2503)
(patch slightly modified, not sure why it wasn't applied before: it looks good to me)
2014-09-06 19:21:23 +02:00
David Sansome 6bb81328e8 Merge branch 'master' into gstreamer-1.2
Conflicts:
	ext/clementine-spotifyblob/mediapipeline.cpp
	gst/moodbar/gstfftwspectrum.c
	src/core/songloader.cpp
	src/core/songloader.h
	src/engines/gstengine.cpp
	src/engines/gstenginepipeline.cpp
	src/moodbar/moodbarpipeline.cpp
	src/musicbrainz/chromaprinter.cpp
	src/transcoder/transcoder.cpp
	src/ui/mainwindow.cpp
	src/visualisations/projectmvisualisation.cpp
2014-06-09 16:20:24 +10:00
Chocobozzz ef6dd38d0d use unique_ptr instead 2014-06-05 17:42:55 +02:00
Chocobozzz 2595df9779 Change the comment for TagLib::MPEG:File 2014-06-05 15:48:20 +02:00
Chocobozzz 357a9ff194 Fix memory leak in tagreader 2014-06-05 15:47:14 +02:00
David Sansome 0bf911aec4 Clean up the stream if ownership isn't taken by a taglib file. 2014-06-05 20:20:57 +10:00
Andreas f52e48c956 Send filesize and file count in advance when client wants to download songs. 2014-05-10 14:53:38 +02:00
Andreas 24481ae7bc Clementine Remote can now download all urls that are in the library. 2014-05-08 19:17:58 +02:00
John Maguire 41e9c15248 Add arraysize macro from Chromium 2014-04-29 14:11:52 +02:00
John Maguire 30d1c2f8db Remove Ubuntu One support.
http://blog.canonical.com/2014/04/02/shutting-down-ubuntu-one-file-services/
2014-04-02 16:02:00 +02:00
John Maguire 192b60d965 Use nullptr as parent parameter default everywhere 2014-02-10 16:03:54 +01:00
John Maguire 3323c2d094 Convert all instances of foreach() to a C++11 for
find ext src -name '*.cpp' -exec \
    sed -i -e 's/foreach(\([^,]\+\),/for (\1 :/' {} \;
2014-02-10 14:43:32 +01:00
John Maguire bebd781fdf Reformat all non-3rd-party C/C++/Objective-C++.
Command line:
find src ext -regex '.*\.\(h\|cpp\|mm\)' -exec clang-format -i
 -style='{BasedOnStyle: Google, DerivePointerBinding: false}' {} \;
2014-02-07 16:34:20 +01:00
John Maguire 1ac3f53a89 Build spotify blob as c++11 2014-02-06 18:06:25 +01:00
John Maguire 71893e4847 Use nullptr instead of NULL everywhere. 2014-02-06 17:29:59 +01:00
John Maguire d309d4ab27 Use c++11 instead of boost where possible. 2014-02-06 16:51:39 +01:00
David Sansome 5ac83bd463 Merge branch 'master' into gstreamer-1.2 2014-01-25 00:24:31 +11:00
Andreas 8ff0692809 Network remote: send md5 hash along with library and files. 2013-12-31 15:26:42 +01:00
Martin Brodbeck b5eb77528b Don't use TPE1 for performer 2013-12-19 14:03:23 +01:00