David Sansome
1719b1599c
Get audio device names on Windows too.
2014-03-29 23:48:26 +11:00
David Sansome
2d7be1502f
Get audio device names on OS X too.
2014-03-29 22:44:08 +11:00
David Sansome
6d1dc56a7c
Get a list of available audio devices from pulseaudio, and let the user choose
...
from those in the settings dialog instead of just giving him a text box.
2014-03-29 19:31:38 +11: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
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
Arnaud Bienner
7084697aa3
Prevent Clementine to loop forever when trying to play a song with repeat enabled in a playlist which contains only unavailable songs
2014-02-04 22:08:32 +01:00
John Maguire
56c949815b
First pass at Gstreamer 1.0 porting.
...
This at least compiles against gstreamer 1.2.
Things that work:
* Playing audio
* Automatically completing tags
Things that don't work
* Spotify
* Moodbar
Things I haven't tested
* Transcoding
2013-09-26 17:49:24 +02:00
John Maguire
07e7950f7e
Remove obsolete ClearScopeBuffers() reference.
2013-06-03 18:14:20 +02:00
David Sansome
1a4e4ba86f
Fix a compilation error on an old GCC
2013-06-01 18:50:25 +10:00
David Sansome
619261f5e1
Remove the precise analyzer timing code from Amarok and instead just use the
...
latest buffer from GStreamer. This works just as well and fixes the occasional
freezing analyzer. Fixes issue 2464
2013-06-01 18:03:59 +10:00
David Sansome
90898bd255
Take the buffer duration into account when deciding when to preload the next
...
song for gapless playback.
2013-06-01 17:25:56 +10:00
John Maguire
3d434f1c88
Remove iDevice support as it doesn't work well for modern devices and libgpod shows no signs of updating to support them.
...
Fixes issue #3683
2013-05-17 15:30:56 +02:00
John Maguire
36975c41d2
Add stereo balance slider as part of equalizer.
2013-04-26 20:28:57 -07:00
Andreas
cccfe814d0
- Fix label texts in settings page.
...
- Remove logging.
2013-04-23 00:17:04 +02:00
Andreas
ec481d5874
Fixed issue 578: fade-in fade-out on (un)pause.
2013-04-22 21:42:04 +02:00
John Maguire
ba95cc7788
Move the setting of the gstreamer environment variables into main() to avoid a race condition where the spotify blob would start up before the gstreamer initialisation happened in the main process and thus would try and load the system gstreamer plugins.
2012-06-20 11:19:34 +02:00
John Maguire
5280038f9a
Remove unused debug #define.
2012-06-18 13:56:56 +02:00
David Sansome
638a4b9739
Bundle the gstreamer moodbar plugin, with a patch that protects calls to fftwf_plan from multiple threads.
2012-05-27 17:30:58 +01:00
Arnaud Bienner
26639503d0
Update issue 2137
...
Mono playback implemented; available in preferences
2012-05-20 20:50:25 +02: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
John Maguire
dfdb71b164
Make it so!
...
Fixes issue #2527
2012-01-10 17:00:17 +01: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
David Sansome
c05a2ee182
Add a spotify gstreamer source element instead of hacking about with gsttcpserversrc. Implement seeking on spotify tracks.
2011-09-25 19:24:44 +01:00
David Sansome
797dfe9841
Fix some connect() warnings when starting a background stream
2011-05-21 19:27:23 +00:00
John Maguire
51e031df2b
Add class for transcoding a Song into an OGG Vorbis stream.
2011-05-19 16:34:33 +00:00
Arnaud Bienner
d20f689ab4
Revert r3234 because, as discussed, this could lead to blocking behavior
2011-05-03 22:38:24 +00:00
Arnaud Bienner
709d339866
Avoid to create a new thread when changing state. Make the UI more reactive, especially when Qt threadpool is already full (for example when fingerprinting several files in parallel for MusicBrainz autotagging)
2011-05-03 00:02:35 +00:00
David Sansome
3eedc916ad
Add a new logging system
2011-04-22 16:50:29 +00:00
David Sansome
23c744f41a
Add a queue element to the pipeline to buffer even local sources, and increase the default buffer size to 4 seconds.
2011-04-16 14:04:12 +00:00
David Sansome
7d6eee590a
Don't force the track to stop at the end of a section unless it's part of a cue sheet. Fixes issue 1610. Fixes issue 1636.
2011-03-28 22:11:07 +00:00
David Sansome
008d396077
Use a monotonically increasing ID to identify pipelines, instead of their pointer value.
2011-03-20 21:40:53 +00:00
David Sansome
b3db5d699e
Remove CanDecode from GstEngine - it was only used by a test, and the test was disabled on buildbot because it was unreliable.
2011-03-20 19:36:50 +00:00
David Sansome
116bfc4594
Remove a comment and a TODO
2011-03-20 19:36:44 +00:00
David Sansome
e761f2bdc8
Fix a bug where the engine would skip a song that didn't exist, but then not play the next song.
2011-03-20 19:18:54 +00:00
Paweł Bara
8ed6eca57e
fixing skipping songs for library songs
...
another "silent" GST error type
David's POT
2011-03-13 22:57:49 +00:00
David Sansome
cb275f318f
Add an option to disable automatic crossfading between tracks on the same album or from the same cuesheet. Fixes issue 1479
2011-03-13 18:37:46 +00:00
Paweł Bara
e25e9efffc
Clementine now skips broken streams (radios for example). At least I hope it always does. ;) Fixes issue #1562 .
2011-03-12 13:24:30 +00:00
Paweł Bara
8722e00103
Clementine now skips songs that don't exist anymore (updates issue #250 )
2011-03-10 18:01:35 +00:00
David Sansome
2cb8b8dba7
Stop cue sections at exactly the right place, and move seamlessly between consecutive sections of the same file. Fixes issue #1233 . Fixes issue #1419 .
2011-03-06 16:35:47 +00:00
David Sansome
cce41f1372
Fix the scope when playing cue files. Fixes issue #1291
2011-03-06 14:18:53 +00:00
Arnaud Bienner
375abfd04e
Don't exit application to fast, to allow fadeout
2011-02-16 22:43:05 +00:00
Paweł Bara
383138737c
the easy way is worse - reverting my last GstEngine's changes
2011-02-16 17:07:06 +00:00
Paweł Bara
2b0dcebaec
let's try simpler EndOfStreamReached version now that we have nanoseconds
2011-02-15 22:37:33 +00:00
David Sansome
8c691d2b3e
Use constants instead of "1eN" literals for converting between time units.
2011-02-14 19:34:37 +00:00
David Sansome
37618dae96
Use nanoseconds instead of seconds or milliseconds throughout the Player and Engine.
2011-02-13 18:29:27 +00:00
David Sansome
ee06d779f2
Fix a bug that would occasionally cause an extra track to be skipped when a track ended. Fixes issue #1233
2011-01-20 21:29:48 +00:00
Paweł Bara
34d496aadc
cleaner forced end-of-track when media stream is past it's 'end' marker
2011-01-03 18:03:15 +00:00
Paweł Bara
bbe97b00a2
make engine 'multiple-section songs' aware -> you should now be able to play your .cue related music
2011-01-02 18:53:45 +00:00
David Sansome
d531d01f60
Fix Windows \\ paths when preloading files as well as when playing them initially.
2010-12-20 19:00:48 +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
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
a916db4c13
Add buffer duration to initialisation list.
2010-10-11 16:46:06 +00:00
John Maguire
65c7e6007c
Maybe working gstreamer buffer setting.
2010-10-11 15:58:05 +00:00
David Sansome
61ea0cb24b
Don't block the GUI while a background stream is starting
2010-10-02 12:51:09 +00:00
David Sansome
0c95f7c234
Safeguard against a null pipeline in GstEngine::Play.
2010-09-26 20:59:41 +00:00
David Sansome
dedb9621e8
Fix the songloader test by making it wait for the gstreamer engine to finish initialisation
2010-08-28 19:22:58 +00:00
John Maguire
c801ce1a2d
Rollback analyzer changes.
2010-08-28 18:48:16 +00:00
David Sansome
cf6399df28
Initialise the GStreamer options in the settings dialog correctly, and ensure the GST engine can never try to create an empty sink. Fixes issue #661 .
2010-08-27 16:41:35 +00:00
David Sansome
75b70b4acb
Initialise gstreamer in the background instead of blocking the UI
2010-08-27 13:57:39 +00:00
John Maguire
59233f5192
Disable FFT when no analyzer in use.
2010-08-20 12:14:43 +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
0b85797e45
Fix a crash when the gst state change takes ages
2010-08-04 20:32:53 +00:00
David Sansome
6f63dcc37f
Remove some debug output
2010-08-04 18:31:18 +00:00
John Maguire
35e87b2a77
Start gstreamer playing from a separate thread.
2010-08-04 12:13:43 +00:00
David Sansome
aad6093b63
Give each gstreamer element a unique name
2010-08-02 18:13:40 +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
John Maguire
31a726789a
Code review comments for r1476.
2010-07-14 11:43:23 +00:00
John Maguire
41ab99e62e
Generate Hypnotoad rather than streaming it.
2010-07-14 11:16:56 +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
b62263540f
Use the segment start time when calculating the timestamp of data buffers in the scope. Fixes a memory leak and makes the scope work again when playing ogg streams. Fixes issue #495 .
2010-07-11 13:31:03 +00:00
David Sansome
d3e3d04fe1
Prune the gstreamer scope at a much lower interval
2010-07-02 19:23:08 +00:00
David Sansome
b35392d60d
Don't query the track position and length quite so often. Might reduce CPU usage for issue #246
2010-06-30 20:36:16 +00:00
David Sansome
2b17a8ee1f
Revert r1344 (the timer tracing), it didn't help
2010-06-25 22:04:24 +00:00
David Sansome
a0f9c81891
Don't prune the scope while playback is paused
2010-06-25 08:48:19 +00:00
David Sansome
cc6413ab0e
Add tracing to every timer event, might help track down CPU usage...
2010-06-25 08:46:03 +00:00
David Sansome
9106abb1a0
Handle redirect messages from mmssrc properly. Fixes issue #385 .
2010-06-23 11:47:54 +00:00
David Sansome
4a741e51a8
Lower the default rain volume.
...
Update issue #418
Status: Fixed
I can't think of a good place to put the GUI for this, so instead I've lowered the default rain volume so you can adjust the volume of whatever else you're listening to to match.
2010-06-18 13:24:56 +00:00
John Maguire
92e95ecf80
Support for background streams.
2010-06-14 19:15:10 +00:00
David Sansome
0a19a275a2
On Windows and Mac use a different gstreamer registry file
2010-06-11 12:22:21 +00:00
David Sansome
1895582eb9
Basic support for ProjectM visualisations
2010-06-06 14:06:23 +00:00
David Sansome
fe39d99923
Support playing \\host\share\file style URLs on Windows
2010-06-03 18:39:42 +00:00
David Sansome
3365c7c217
Fix a few memory leaks
2010-05-28 19:51:51 +00:00
David Sansome
9a06fa0bfc
Don't start a new timer for *every* track we play.
2010-05-28 17:14:00 +00:00
David Sansome
4c13e78893
Fix a mingw warning
2010-05-27 20:30:15 +00:00
David Sansome
3927d91cf1
We use decodebin2 on windows now
2010-05-25 22:25:04 +00:00
David Sansome
9292bd3cb5
toFloat() was Qt 4.6
2010-05-25 21:33:16 +00:00
David Sansome
eb78ace541
Replay Gain support
2010-05-23 13:07:15 +00:00
David Sansome
d054e06444
Don't do the preloaded check on manual track changes.
...
Update issue #332
Status: fixed
Thanks for the patch! Calling Stop() in there meant that the OSD got shown
briefly with a "Stopped" message though, so I've changed GstEngine::Load
instead - the problem was with the code that checked whether the pipeline had
already started to load that URL as a result of GstEngine::StartPreloading.
It'll now only do that on an automatic track change.
2010-05-22 17:19:27 +00:00
David Sansome
980d61a583
If we're not crossfading, keep the same pipeline when changing tracks and just swap out the gstreamer source - this should allow for completely gapless playback.
2010-05-08 17:39:12 +00:00
David Sansome
19b08540ef
Force the directsound sink on windows
2010-05-04 15:51:23 +00:00
John Maguire
7b420b6845
Some defensive programming for r819.
2010-05-03 14:55:00 +00:00
John Maguire
3adc74dfab
Disable gstengine's timer when it's stopped.
2010-05-03 14:15:42 +00:00
David Sansome
6f7dbf3286
Make local file playback work on Windows again
2010-05-01 14:01:01 +00:00
David Sansome
9d72d85f09
Don't crash when asked to load a file that doesn't exist on Windows
2010-04-27 17:53:52 +00:00
David Sansome
906f3526cf
Fix a crash bug when you seek all the way to the end of the last track
2010-04-22 17:02:06 +00:00
David Sansome
99743d49aa
Nasty hack to hopefully prevent "seek failed" errors - just don't allow two seeks to happen within 100ms of each other.
2010-04-22 16:54:09 +00:00
David Sansome
82602f8d96
Fix setenv/putenv madness on mac
2010-04-22 13:49:16 +00:00