casey langen
3ba692d20a
Added back some old files I deleted a long time ago, just so we can do
...
some platform-specific testing easily.
2017-01-06 12:37:08 -08:00
casey langen
40fe1512de
Ninja fix for non-win32 platforms.
2017-01-05 23:29:01 -08:00
casey langen
158ba27528
Some win32-specific optimizations -- don't worry about redrawing the
...
window nearly as frequently when minimized. Further reduces CPU usage in
the common case (music playing in the background).
2017-01-05 23:28:12 -08:00
casey langen
8e94592f55
Updated message queue next time check to not require a mutex -- just use
...
an atomic int instead.
2017-01-05 20:45:46 -08:00
casey langen
1475abbbac
- Fixed nomad float sample scaling to use fewer instructions.
...
- Fixed PlaybackService to read duration from transport first.
2017-01-05 01:44:53 -08:00
casey langen
fd39258578
Fixed Outputs.cpp to load correct default plugins.
2017-01-05 00:13:01 -08:00
casey langen
a6e78c0941
Updated optimization flags.
2017-01-04 19:22:05 -08:00
casey langen
be51dcd0f5
More small Stream tweaks to prevent bursts of CPU usage.
2017-01-04 17:22:58 -08:00
casey langen
9af25a1541
Playing with some buffering improvements -- try to buffer samples in
...
chunks, instead of one at a time. Increased the default stream buffer
size.
2017-01-04 01:32:49 -08:00
casey langen
165b5aeb32
Some more profiling revealed we were doing more work than we needed to in
...
TransportWindow every tick -- locks, map look ups, utf8 -> utf16
conversions, and column width calculations. We can cache most of these
operations easily and transparently.
2017-01-03 22:23:51 -08:00
casey langen
602f61eab6
- Tweaked Player to no longer keep a list of pending buffers -- a count is
...
good enough.
- Use raw buffers between Player and Stream. A bit less safe, but improves
performance a bit.
- More old Player logic clean up -- removed some things here and there.
- Updated MessageQueue to cache the next dispatch time so it can short
circuit an explicit Dispatch() without messing around with iterators.
- Fixed TransportWindow to sync time immediately wheen a seek is detected.
- Updated logic in Player to be more seek friendly -- the user shouldn't
observe time jumping around while seeking anymore!
2017-01-03 21:03:40 -08:00
casey langen
f3564378f4
Don't try to be smart about buffer fill rate -- just keep it full. Also,
...
use std::deque instead of std::list to maintain the buffer collection in
Player -- it has better performance characteristics for what we're doing.
2017-01-02 23:07:40 -08:00
casey langen
5849a7a8f9
Fixed the win32 global hotkey hook.
2017-01-02 15:45:46 -08:00
casey langen
790fed8943
Fixed dropdown arrow character to something that is implemented by more
...
fonts.
2017-01-02 15:19:38 -08:00
casey langen
a22d83c911
Added audio stream routing to the WASAPI output plugin. If the default
...
playback device changes, we'll switch over to it automatically without
interruption.
2017-01-02 15:01:31 -08:00
casey langen
43b4260713
Version bump for all bundled plugins.
2017-01-02 10:50:39 -08:00
casey langen
93a82f1e21
Added an "sdk" command to the console layout.
2017-01-02 10:47:56 -08:00
casey langen
b917953286
Version bump.
2017-01-02 00:22:44 -08:00
casey langen
d594bee4ca
Fixed Linux compile.
2017-01-02 00:20:28 -08:00
Casey Langen
e1bcd3b0f2
Fixed macOS (and probably Linux) compile.
2017-01-02 00:15:00 -08:00
casey langen
cb4156dbac
Added plugin versioning.
2017-01-02 00:06:30 -08:00
casey langen
6ec4418cfd
Removed prebuffer code from Player -- let the Stream worry about that.
2017-01-01 16:43:51 -08:00
Casey Langen
99f3c25a13
Fixed Linux/macOS compile after boost removals.
2017-01-01 15:12:54 -08:00
casey langen
0d8c86be4f
Found one more usage of boost::recursive_mutex in PlaybackService. Removed
...
it.
2017-01-01 15:06:55 -08:00
casey langen
c5d8a3c608
Fixed most of the remaining boost thread/mutex/recursive_mutex/condition
...
usage to use the std:: variants. Only thing remaining is the Indexer,
which is currently using boost::asio and boost::thread_group.
2017-01-01 14:59:33 -08:00
casey langen
f34b2c87c2
Ugh. Fixed FlacDecoder I broke recently.
2017-01-01 14:59:33 -08:00
casey langen
f57abafb42
Removed some unnecessary dependencies from CMakeLists and fixed compile on older versions of clang.
2017-01-01 13:59:22 -08:00
casey langen
83fc208daf
- Fixed focus issues when pressing enter in track and category filter
...
modes.
- Removed boost::chrono dependency -- just use std::chrono in all cases.
2017-01-01 12:09:28 -08:00
Casey Langen
6a6b842883
Upped CoreAudioOut's buffer count from 16 to 24.
2016-12-31 20:43:40 -08:00
casey langen
8c4a4ab248
Similar to some other micro-optimizations, don't keep recreating a new
...
list of messages to dispatch in MessageQueue -- create it once as a member
variable and reuse.
Also tweaked stream and output buffer sizes.
2016-12-31 20:35:45 -08:00
casey langen
8f51b6c191
Added a little more state to Player to cut down on CPU thrash when dealing
...
with mixpoints. We now cache the next mixpoint time when the set of
mixpoints changes (or we seek), so we don't always have to iterate over
all of them.
Also, don't re-create the temp MixPointList in Player::OnBufferProcessed
-- there's a bit of overhead involved there. Instead, use a temp member
variable.
2016-12-31 15:19:25 -08:00
casey langen
60e120e1e9
- When asked to play a track in the CrossfadeTransport, first check to see
...
if it's already available as the next track. It very well may be!
- Small code cleanups.
2016-12-31 11:41:44 -08:00
Casey Langen
d865931fab
Fixed *nix compile.
2016-12-30 21:57:48 -08:00
casey langen
7efcf60e1d
General repo/build/project cleanup:
...
- Removed unused md5 and fftw-3 remnants
- Renamed 3rdparty/lib -> 3rdparty/win32_lib to match win32_include
- Removed core/sdk/config.h
- Fixed various compiler warnings
2016-12-30 21:49:50 -08:00
casey langen
f0505363c5
Tweaked the way the CPU load easling logic works in Player.
2016-12-29 18:11:21 -08:00
casey langen
6ac1926611
Version bump -- we're getting close to release.
2016-12-29 16:06:18 -08:00
casey langen
1c68635e4d
Moved common CPU easing calculations from DirectSoundOut and WasapiOut and
...
into Player. This also fixes Visualizer sluggishness.
2016-12-29 16:05:42 -08:00
casey langen
887fd77516
- Ease CPU load in both DirectSoundOut and WasapiOut by being less
...
aggressive about keeping the internal buffer 100% full. For now, 75%
full should be sufficient
- Fixed ALL OutputPlay values to be negative -- in some cases output
plugins were returning a "0" delay which was causing buffers to not get
properly cleaned up, causing bad memory leaks.
2016-12-28 20:38:49 -08:00
casey langen
15d2ea2c17
A more generic strategy for avoid sleeping in output plugins that may have
...
lock contention: IOutput::Play() returns an int with a negative number as
an error code, or a positive value as the number of milliseconds to wait
until trying to play the buffer again.
2016-12-28 01:10:03 -08:00
casey langen
ef3fd3c7cc
Don't block the UI when switching from Crossfade -> Gapless transport.
2016-12-27 21:02:54 -08:00
casey langen
1be4e3fd70
Added more error handling to PlaybackOverlays -- also, ensure we set the
...
selected index on the transport and output device overlays.
2016-12-27 19:07:08 -08:00
casey langen
76fbc5e6bd
Added ListOverlay::SetSelectedIndex
2016-12-27 19:06:57 -08:00
Casey Langen
a2d95a6698
Improved the transport selection logic to use a ListOverlay and also display an error for invalid outputs.
2016-12-27 17:37:33 -08:00
casey langen
c3653ffa19
Yikes! Fixed a really, really bad first run bug I never noticed because I
...
never go through the first run process.
2016-12-27 17:33:51 -08:00
casey langen
3641acd7bf
Fixed a crash that could happen if the decoder reports the wrong stream length and the crossfade mixpoint doesn't fire.
2016-12-27 16:57:56 -08:00
casey langen
b4b534a87b
Fixed a couple state management bugs in Player and CrossfadeTransport.
2016-12-27 10:14:11 -08:00
casey langen
c803d2b671
A small bugfix to restore volume after switching transports.
2016-12-27 01:15:40 -08:00
casey langen
1dbdf73c5c
Fixed *nix and macOS compile.
2016-12-27 01:12:01 -08:00
casey langen
153f12326c
Added UI to switch between transport types at runtime! Needs to be
...
converted to a ListOverlay, but it works!
2016-12-27 01:07:29 -08:00
casey langen
9c9b003dab
Fixed DirectSoundOut to not stop after draining -- no longer necessary
...
because Drain() is fixed, and it's actually causing issues with gapless
playback.
2016-12-27 01:07:03 -08:00