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
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
John Maguire
cc43e339c1
Use boost function for compatibility
2013-11-22 11:53:47 +00:00
John Maguire
b17b075361
Compile fixes for 10.9
2013-11-21 17:59:31 +00:00
David Sansome
f0b9120c43
Create a Fatal logging level, and use it when sqlite symbols can't be resolved.
2013-09-18 00:15:46 +10:00
John Maguire
dd59aaada0
Delete closures if the receiver is deleted.
2013-02-26 16:27:44 +01:00
John Maguire
195e1cb2ad
Support arbitrary return type in closure for member function pointer.
2012-12-13 16:55:23 +01:00
John Maguire
020f08438f
Support member function pointers in Closure.
...
Bonus: type-safe slots
2012-12-13 16:27:55 +01:00
John Maguire
94f76a9d08
Support function pointers and std functions with arguments in Closure.
2012-12-13 16:13:38 +01:00
John Maguire
6c5e831a7d
Remove tag encoding detection as we don't really use it anymore.
2012-11-29 13:41:20 +01:00
John Maguire
db586ca00e
Read tags from Ubuntu One files and add to local database.
2012-11-28 14:43:03 +01:00
John Maguire
c294098aef
Use tr1 for mac compatibility
2012-11-26 10:10:20 +01:00
John Maguire
11f664083a
Add support for standard function callbacks in NewClosure (including C++11 lambdas).
2012-11-26 09:41:26 +01:00
John Maguire
4e9231976e
Unpack variadic arguments into QGenericArguments without boost::tuple.
2012-11-22 17:57:26 +01:00
John Maguire
8171192df5
Port Closure to variadic templates.
2012-11-22 17:19:04 +01:00
Arnaud Bienner
c848d311b8
Remove useless comment now we have variadic templates for ConcurrentRun
2012-11-22 02:08:59 +01:00
John Maguire
fddce90624
Use boost::bind & boost::function instead of std equivalents for better compatibility.
2012-11-21 17:17:37 +01:00
John Maguire
1fd0515168
Make variadic version of ConcurrentRun::Run()
2012-11-21 16:39:10 +01:00
David Sansome
95df1a4c25
Remove a useless message copy
2012-11-07 09:18:49 +11:00
Arnaud Bienner
09596e3732
Don't get stuck when exiting Clementine while library is being created/updated
2012-08-30 00:01:28 +02:00
Arnaud Bienner
eded1daca1
Correct typo in comments
2012-07-16 00:39:00 +02:00
Arnaud Bienner
0e3dc5a8be
Add new ConcurrentRun templates for void functions, and functions with 3 arguments + corresponding test cases.
...
+ SongLoader now has its own QThreadPool to load folders/playlist in background.
Update issue 2598
This should fix slowliness problems reported.
2012-07-16 00:06:55 +02:00
John Maguire
58a3a6831a
Move loading of devices from the database onto a different thread.
2012-06-29 16:56:17 +02:00
David Sansome
1c338455c3
Add missing copyright headers
2012-06-23 11:31:48 +01:00
John Maguire
b9d2d3326d
Only support override in Clang.
2012-06-21 16:13:41 +02:00
John Maguire
09d37aaa01
Add OVERRIDE macro like Java's @Override.
2012-06-20 16:49:41 +02:00
Arnaud Bienner
dcc26b01ff
Correct define guard's name
2012-04-25 01:22:30 +02:00
Arnaud Bienner
01daea7090
Commit missing modifications/change ConcurrentRun description a bit
2012-04-25 00:29:19 +02:00
Arnaud Bienner
76b98000fe
Add ConcurrentRun functions, and us one of them in gstenginepipeline with gstenginepipeline's own threadpool.
...
So now we can (finally!) play/pause/stop music while fingerprinting lot of songs or whatever else
2012-04-25 00:21:01 +02:00
John Maguire
66c8d6d360
Tidy up a bit.
2012-04-13 15:53:17 +02:00
John Maguire
133c2e1640
Postpone the database check & backup to a little while after startup.
2012-04-13 15:49:56 +02:00
John Maguire
a09165c392
Make it more obviously wrong to use the Closure internals.
2012-03-20 15:14:44 +01:00
John Maguire
e4ae4b6df5
Remove poor man's static asserts.
2012-03-19 21:19:24 +01:00
John Maguire
c4d3062459
Make the SharedClosure implementation a bit less horrible.
2012-03-19 21:17:57 +01:00
David Sansome
d7a5af07fb
Copy+paste the shared pointer closure constructor a couple of times for different numbers of arguments.
2012-03-19 19:38:36 +00:00
John Maguire
e1d77e0124
Add support for QSharedPointer in Closure.
2012-03-19 19:37:57 +01:00
David Sansome
b9e08bbfe6
Update podcasts on a schedule and on demand. Update them immediately after subscribing, and make episodes appear in the tree.
2012-03-09 15:26:15 +00:00
John Maguire
5280ddf3d7
Add support for demangling symbols on Linux.
2012-02-02 15:50:42 +01:00
David Sansome
34a24971c5
Don't try to restart a worker while killing it.
2012-01-22 18:53:17 +00:00
David Sansome
694ffe42df
Don't send messages to a handler in the time between its socket closing and its process ending. Fixes a race condition that would result in a tag loading operation never completing. Fixes issue 2616
2012-01-22 18:53:17 +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
John Maguire
0212a1fa91
D'oh
2012-01-17 21:29:20 -08:00
John Maguire
4f6ee57297
Apparently <execinfo.h> doesn't exist for mingw.
2012-01-17 20:57:56 -08:00
John Maguire
ab58c72c66
ifdef DumpStackTrace() for non-Unix.
2012-01-17 20:45:33 -08:00
John Maguire
5fe7d1ad20
Add stack trace dumper (might need some tweaks for win & Linux still).
2012-01-17 20:35:10 -08: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
bbf99fdd0b
Change Spotify to use the new MessageHandler, remove SpotifyMessageHandler
2012-01-08 15:10:11 +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