Commit Graph

255 Commits

Author SHA1 Message Date
David Sansome bacef04405 Refactoring: remove a couple of the AlbumCoverLoader instances and instead use a shared CurrentArtLoader. 2012-02-26 14:40:51 +00:00
David Sansome 48f15c9fc7 Refactoring: instead of passing individual pointers to useful core classes (like TaskManager or LibraryBackend) to each class that uses them, pass one singleton-like Application instance everywhere. 2012-02-26 14:40:51 +00:00
David Sansome 62d5c8224b Remove the hack to disable clementine's global menubar, since the appmenu-qt bug has been fixed upstream. 2012-02-11 16:28:43 +00:00
Alan Briolat dbca026a66 Added support for shipping GIO modules (e.g. glib-networking) on win32 2012-02-01 20:58:54 +00:00
Martin Björklund 8d63ddd3eb Add a Discogs cover provider
Fixes issue 1794
2012-01-29 14:27:07 +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 6ab38e0093 Add ValiCert's root CA to QSslSocket's list to fix an "invalid username/password" error when connecting to Grooveshark on a Windows machine that didn't have all the root CAs installed.
Fixes issue 2532
2012-01-09 22:57:24 +00: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
David Sansome 3e0f252b34 Exit worker processes when their sockets are closed, and make sure the main app closes sockets when exiting - fixes a crash dialog on Windows. 2012-01-08 16:35:01 +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 058e421827 Move mac init code after logging init. 2012-01-04 14:08:31 +00:00
John Maguire e9d770a864 Remove pjsip/stun code and make PortForwarder at least compile. 2011-11-28 16:22:13 +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
David Sansome dac6c1bf09 Add a SomaFM search provider 2011-11-06 00:02:32 +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
David Sansome fccd0a5458 Don't make QCA a requirement if we're bundling the spotify blob (since we won't need to download anything at runtime) 2011-11-05 15:44:56 +00:00
David Sansome c12b3ab399 Verify the signatures of spotify blob files downloaded at runtime. Should protect against MITM attacks, and compromises of our server. 2011-11-05 01:12:28 +00:00
John Maguire e1a99f1909 Change include to make glib happy. 2011-10-26 12:14:02 +02:00
David Sansome 5237c005c9 Work around an NVIDIA driver bug that would cause Clementine to use 100% cpu on shutdown. 2011-10-23 15:44:24 +01: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 dea15c91ba Oops, fix a URL 2011-10-14 21:24:35 +01:00
David Sansome bde558f655 Force the menubar to be shown in the Clementine window instead of in Unity's global menubar thing. 2011-10-14 21:17:41 +01:00
David Sansome d59e21d709 Set permissions on Clementine's config file to 0600 2011-10-01 17:15:39 +01:00
David Sansome cc20d90a7a Last.fm global search provider 2011-09-24 17:01:18 +01:00
David Sansome d83736acc0 Initialise a GlobalSearch in main and pass it around, so providers can register themselves 2011-09-24 14:44:23 +01:00
David Sansome 1f8263d329 Add a C++ implementation of the Amazon cover provider 2011-07-23 19:34:54 +01:00
David Sansome 38100f5e59 Make CoverProviders not a singleton 2011-07-23 19:34:41 +01:00
David Sansome 387b5cd5ff Fix some bugs in loading premium di.fm and sky.fm streams 2011-07-20 20:06:28 +01:00
Tyler Rhodes ded8e5f6f0 Refactor "Radio" files into "Internet" files. 2011-07-15 13:27:50 +00:00
Arnaud Bienner eb55e1b53d Try to fix the build 2011-06-22 21:52:51 +00:00
David Sansome 4864d24e42 Only do the Ubuntu Unity hack on Linux 2011-06-22 20:52:49 +00:00
Arnaud Bienner 63300d79db Set tr function's codec to system encoding. Should (finally) resolve problems with already translated strings 2011-06-22 20:41:48 +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 7de618beff Fix registration of metatypes for list handlers on Qt 4.7 2011-05-29 14:08:55 +00:00
David Sansome 6dd1634946 Add Python bindings for Playlists, port the rainbowizer plugin to PythonQt and make its colours a bit more tasteful 2011-05-29 12:55:18 +00:00
David Sansome fc97e4bb8c Convert CoverSearchResult lists correctly 2011-05-22 14:10:54 +00:00
Paweł Bara 46a411844a some more corrections of the python API for cover providers; still not working ;) 2011-05-21 12:19:35 +00:00
David Sansome 147bbb9928 Add some more python bindings 2011-05-19 23:02:15 +00:00
John Maguire eab423f84e 2-way test infrastructure for ICE tunnelling. 2011-05-18 13:54:26 +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 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 3eedc916ad Add a new logging system 2011-04-22 16:50:29 +00:00
John Maguire 55021ef67d Fix compilation without pjsip. 2011-04-07 14:12:37 +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
David Sansome d50cfaed46 Add google breakpad to 3rdparty, and gather crash reports 2011-03-23 21:53:24 +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
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 65264b517c Change XMPP connection to use stored credentials. 2011-02-17 14:10:10 +00:00
John Maguire e36a333212 Basic XMPP support using gloox. 2011-02-16 20:49:12 +00:00
John Maguire 7688cc35c6 Prevent libimobiledevice from using ~/.config on OS X. 2011-02-16 13:58:45 +00:00
John Maguire b106979fb7 Use correct preferences file on OS X and migrate old config files. 2011-02-16 13:43:01 +00:00
David Sansome e18409ebf4 Factor out a PlayerInterface from Player, and use it in MPRIS1 and MPRIS2 2011-02-13 18:36:29 +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
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
David Sansome f79c10f41e Add some buttons to the Windows 7 taskbar list. They don't do anything yet, but they sure look pretty! 2011-01-15 20:51:48 +00:00
David Sansome 03e6231483 Make the RadioModel's AddService method public, add a RemoveService method, and clean up the last.fm mess 2011-01-12 20:18:17 +00:00
John Maguire 48bf42b2a5 Linux support for Zeroconf using Avahi over DBus. 2011-01-11 20:36:16 +00:00
David Sansome 7ce5cfb5a1 Always create the connection to the dbus session bus in the main thread 2011-01-09 23:42:56 +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
John Maguire dfa5b9f8ea Fix building without last.fm. 2011-01-04 15:11:38 +00:00
John Maguire bde7902686 Refactor some initial setup out of MainWindow::MainWindow(). 2011-01-04 11:33:22 +00:00
David Sansome 0fba393f6e Fix the version numbering mess 2011-01-03 14:21:10 +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 fd00924f26 Fix parsing non-ascii filenames passed on the commandline (or through a file browser). Fixes issue #773. Fixes issue #752. 2010-12-26 14:54:46 +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 e6561a0122 Fix a race condition on startup that might lead to two instances of Clementine being started. 2010-12-25 17:49:04 +00:00
David Sansome 9b22f2ce40 Proxy support. Fixes issue #38 2010-12-25 17:25:29 +00:00
David Sansome 95ef57cf1e Add column text alignment options to the playlist header menu. Thanks brunciter! 2010-12-22 10:45:14 +00:00
John Maguire 2c0cd683db Typo in comment. 2010-12-21 15:49:17 +00:00
John Maguire 718be22d0d Automatically bump the max file descriptors for clementine to the maximum on Mac. 2010-12-21 15:48:30 +00:00
David Sansome 28fdb147d8 Make last.fm optional. Thanks volkov0aa. Fixes issue #49 2010-12-18 17:28:02 +00:00
John Maguire 4c66007e26 Code review comments from r2370. 2010-12-09 13:06:00 +00:00
John Maguire 3a19bb9d46 Fix config file location on Mac and automatically migrate. 2010-12-09 12:34:08 +00:00
David Sansome 626c75cd45 Add MPRIS2 and gnome sound menu support 2010-11-21 15:13:26 +00:00
David Sansome 5969e2b3d7 Remember whether a dynamic playlist was active between restarts 2010-11-20 20:30:21 +00:00
David Sansome ed1a25693c Add missing licenses to debian/copyright, and add copyright information to each source file 2010-11-20 13:27:10 +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 d035b1abc2 Add libechonest into 3rdparty, and add a basic echonest artist info fetcher. 2010-10-02 16:23:33 +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 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 aa80f4720d Remove private header.
Fixes issue #703.
2010-09-06 15:03:45 +00:00
David Sansome 70bea1bff4 Seed the random number generator on startup. Fixes issue #571 2010-08-29 12:34:07 +00:00
John Maguire e950b7cbf5 Only load Mac plugins from the app bundle. 2010-08-28 19:34:03 +00:00
John Maguire c801ce1a2d Rollback analyzer changes. 2010-08-28 18:48:16 +00:00
John Maguire a8295002cf Disable icons in menus on Mac. 2010-08-26 12:25:31 +00:00
John Maguire 03274b0831 Add new analyzer API and example using gstreamer spectrum element. 2010-08-18 16:09:45 +00:00
John Maguire 36264e0b2b Separate out UniversalEncodingHandler. 2010-08-03 19:29:49 +00:00
David Sansome 6604e97493 Make it possible to change the language with --language, or an option in the settings dialog. Fixes issue #583 2010-08-02 19:02:21 +00:00
John Maguire 95d5906995 Handle GLib logs ourself. 2010-07-25 01:44:46 +00:00
John Maguire 3f78df5725 Fix the parsing of Finder command line options.
Fixes issue #537
2010-07-24 14:57:56 +00:00
David Sansome a6b3aa07e1 Initialise gobject - maybe fix issue #519 2010-07-20 09:25:20 +00:00
John Maguire dc47c96024 Make sure Qt loads plugins from the correct place on mac even when it decides to ignore qt.conf. 2010-07-11 20:14:25 +00:00
John Maguire bcc84911b8 Hack out silly mac command line when Clementine is opened via "open" or GUI. 2010-07-11 19:20:21 +00:00
David Sansome b12db6357e Make the commandline interface work even without a running X server. Fixes issue #489 2010-07-10 16:20:09 +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 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 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
John Maguire 15b8b90556 Implement native dock menu on Mac.
Fixes issue #349
2010-06-22 14:09:13 +00:00
David Sansome 1895582eb9 Basic support for ProjectM visualisations 2010-06-06 14:06:23 +00:00
David Sansome 4d57ccb41c Use icons from the desktop theme where possible, fall back on oxygen. 2010-05-19 15:45:29 +00:00
John Maguire 5dd0a9c35f Autodetect weird encodings in ID3v1 tags.
Fixes issue #254
2010-05-11 12:03:55 +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 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 58da0a2f64 Use the same QNetworkAccessManager for everything, and make it use a disk cache 2010-05-10 11:12:44 +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 f8d68d3956 Always show icons in the menus, even on gnome in lucid 2010-05-01 13:40:21 +00:00
David Sansome b319bdfe8e Set the glib application name so Clementine shows up in the gnome-volume-control 2010-04-30 19:45:43 +00:00
David Sansome bd0b0ae0aa Change the application version to 0.3 rc1 2010-04-29 20:25:44 +00:00
David Sansome 449de3f34a Fix a couple of warnings 2010-04-21 20:57:54 +00:00
David Sansome 7263983e0c More debug output in CanDecode, and set the gst path in GstEngine rather than main() 2010-04-21 17:11:50 +00:00
John Maguire 9d0541a53b Disable automatic loading of gstreamer plugins from non bundle locations on mac. 2010-04-19 15:00:33 +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 44ffc5be75 Get metadata from shoutcast streams (like somafm) 2010-04-14 23:59:11 +00:00
David Sansome 72cbf90689 Save the playlists in the background, and use shared_ptrs for all playlist items so they stay in scope after they've been deleted but while they're still being saved. 2010-04-14 22:05:41 +00:00
John Maguire aeaebdb8d6 Fix a few mac UI bugs.
* Cmd+W closes the main window
* Clicking the dock icon shows the main window
2010-04-14 21:27:27 +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 c59c7ee0ec More commandline options. Fixes issue #95 2010-04-12 23:35:47 +00:00
David Sansome 2ec6ca45c8 Commandline options support. Fixes issue #189 2010-04-12 22:44:29 +00:00
John Maguire 821baa2211 Mac deployment fixes for gstreamer. 2010-04-12 12:36:30 +00:00
David Sansome a4e14afdbb Load translations from an empty context too. 2010-04-08 14:29:08 +00:00
David Sansome 333ac7d90d Equaliser presets 2010-04-07 17:39:07 +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 993a4f0e43 Experimental VLC audio engine 2010-04-04 20:45:03 +00:00
David Sansome 2443ce6585 Reworked the library watcher to be much more efficient - the backend now holds a list of subdirectories within each library directory, and only the mtimes of these are checked on startup. 2010-04-01 16:59:32 +00:00
John Maguire 7250587c03 Remove dependency on libnotify and use dbus directly. 2010-03-25 17:52:28 +00:00
David Sansome c1e2cbe800 This Qt bug was fixed in 4.7 2010-03-25 12:57:11 +00:00
John Maguire 2e35831b0b Mac build fixes 2010-03-24 21:34:32 +00:00
John Maguire f9972183c5 ifdef dbus stuff for X11 only. 2010-03-24 21:07:16 +00:00
John Maguire a8a37264f7 Add MPRIS support (thanks Amarok ;-)
Fixes issue #29

Example command lines:
dbus-send --print-reply --dest=org.mpris.clementine /Player org.freedesktop.MediaPlayer.Play
dbus-send --print-reply --dest=org.mpris.clementine / org.freedesktop.MediaPlayer.Identity
dbus-send --print-reply --dest=org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetCurrentTrack
dbus-send --print-reply --dest=org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetMetadata int32:0
2010-03-24 20:58:17 +00:00
David Sansome fa00ee971d Add license headers to all our source files 2010-03-23 23:11:46 +00:00
David Sansome 4ab755c831 Don't try to load translations from a directory that contains another directory called "clementine". Fixes issue #88 2010-03-23 18:00:55 +00:00
David Sansome b1e1de709c Bring the QSQLITE plugin into the source tree and statically link it on Windows.
Also remove the unused xine windows patches, and move all the windows resources into dist/windows
2010-03-22 18:35:31 +00:00
David Sansome 41ab127d1a Set version to 0.2 2010-03-22 13:20:30 +00:00
John Maguire 7b520ab361 Fix code review comments for r313. 2010-03-03 20:35:19 +00:00
David Sansome 5e503cbe64 Try the application's directory as well 2010-03-02 17:48:56 +00:00
David Sansome 111c019edd Load translations from the current directory so translators don't have to recompile to test their translations 2010-03-02 17:29:43 +00:00
David Sansome dae28e10ab Remember to actually load the translation resources 2010-03-01 17:36:50 +00:00
John Maguire e7c064809c Link resources into library & init in main(). 2010-03-01 12:15:15 +00:00
John Maguire 992ce7ed0d Add album cover fetcher (not used yet). 2010-02-23 19:26:21 +00:00
David Sansome e117b7eb15 i18n support 2010-02-23 18:33:09 +00:00
David Sansome 65ce08ae85 First go at a phonon engine 2010-02-21 20:49:38 +00:00