Commit Graph

846 Commits

Author SHA1 Message Date
casey langen
a797d4db9d Added an initial WASAPI output plugin implementation. Down with waveout!
(maybe).
2016-12-04 18:43:26 -08:00
Casey Langen
25506a009d Version bump to 0.5. 2016-12-04 12:35:40 -08:00
casey langen
a3b7a541cc Removed some unused #includes from LocalFileStream. This should also clean
up some compile warnings on non Windows platforms.
2016-12-04 12:16:58 -08:00
casey langen
d8685e314c Fixed #pragma once compile warning. 2016-12-04 11:47:38 -08:00
casey langen
a26fc53353 Ramped the default Stream buffer size from 1024 -> 2048 samples per
channel. This further reduces CPU usage.
2016-12-03 21:30:15 -08:00
casey langen
0e6fbb8e3d - Improved Stream class by preallocating all required buffers using a
single contiguous float array for all samples.
- Fixed WaveOut to reuse WaveOutBuffer instances so we aren't constantly
  reallocating them.
- Removed boost dependency from WaveOut plugin
- Modified Buffer to allow creation with a managed float array
- Removed DynamicStream.h/.cpp
2016-12-03 21:16:48 -08:00
casey langen
0276b0f594 A couple more small ALSA bug fixes. 2016-12-03 17:23:51 -08:00
casey langen
e381a842f8 Tweaked AlsaOut's behavior when adding buffers in the paused state. 2016-12-03 17:10:09 -08:00
casey langen
4600b801b6 Small fix to Player's stream resolution logic -- we should also return a
DynamicStream when the visualizer is hidden.
2016-12-03 15:19:10 -08:00
Casey Langen
896f8459df Fixed a compile warning in PlaybackService.cpp. 2016-12-03 15:12:08 -08:00
casey langen
4c86164f80 Added DynamicStream back to Windows build, and fixed CddaDataStream
plugin. Also cleaned up a memory leak in GdiVis.
2016-12-03 15:08:34 -08:00
casey langen
3bb07daba4 Remember volume and repeat mode across app launches. Been meaning to do
this for a while.
2016-12-03 14:54:16 -08:00
Casey Langen
53429bdf92 Moved some stream decoder and dsp loading logic out of the actual Stream implementation, and into a helper namespace so it can be re-used. Added back DynamicStream to test on Windows. 2016-12-03 14:52:37 -08:00
Casey Langen
6be3a5030a Updated README.md to remove fftw3 dependency. 2016-12-03 12:35:31 -08:00
casey langen
f1ffce5662 Re-enabled time smoothing. 2016-12-02 23:34:45 -08:00
casey langen
4febabe234 Removed debug info from release builds in many of the plugins to reduce
filesize.
2016-12-02 16:30:13 -08:00
casey langen
3657a995a1 Moved Player/Transport interaction to using a simple callback/listener
interface instead of events. Events were causing complications with
multi-threading, and introducing unnecessary runtime complexity.
2016-12-02 15:49:36 -08:00
casey langen
c58607f014 Just kidding about fixing the clang compile -- remove static qualifier to
hopefully fix it for real.
2016-12-02 09:42:18 -08:00
casey langen
94f0fb1653 Declare the playerThreadProc prototype -- this should fix the clang
compile.
2016-12-02 09:40:33 -08:00
casey langen
b2e90b8d72 Cleaned up some unused stuff in GdiVis and removed time smoothing for now. 2016-12-02 09:35:55 -08:00
casey langen
f672446ebf Added a Win32 GDI visualizer. 2016-12-02 01:12:49 -08:00
casey langen
02282e4991 boost -> std for threading. 2016-12-01 22:52:57 -08:00
casey langen
5e48e7cf33 Clean up Player and GaplessTransport interaction. No more goofy defers. 2016-12-01 22:14:58 -08:00
casey langen
32618f533b - The audio deinterleaving process works now
- Apply a Hamming Window to FFT input to reduce spectral leakage
- Reduced memory usage by doing FFT with real inputs
2016-11-30 00:44:02 -08:00
casey langen
793bb9102b Removed win32 debugging code. 2016-11-28 23:32:10 -08:00
casey langen
232d2c4b0d Oops, moved kiss_fft.c to the correct directory. 2016-11-28 23:30:56 -08:00
casey langen
803323678e After some testing, decided to replace the existing FFT implementation
with kiss_fft.
2016-11-28 23:28:50 -08:00
casey langen
d14fc89721 Replaced VLC/xmms FFT with the one used by Milkdrop. 2016-11-28 00:20:15 -08:00
casey langen
ed1fd578e5 Fixed an off-by-1 bug in fft.cpp where we could try to write past the end
of an array.
2016-11-27 23:45:46 -08:00
casey langen
e6d86517c9 - Adjusted default Stream buffer sizes to be more CPU friendly
- Fixed FFT buffer handling in Player
2016-11-27 23:09:31 -08:00
Casey Langen
d698ea98ac Fixed clang compile. 2016-11-27 22:46:49 -08:00
casey langen
84d5190e7c Removed bifrucated stream types, only use the new one. Also, ensure in
Windows the decoder cannot change the buffer size.
2016-11-27 22:35:31 -08:00
casey langen
debe9b491f Revert "Upgraded to VS2017 RC."
This reverts commit 5bcb794ad8.
2016-11-27 21:40:30 -08:00
casey langen
72eb1cb74d A few small bug fixes related to bad pointer arithmetic 2016-11-27 21:38:27 -08:00
casey langen
d28cfcfd52 Cleaned up FixedSizeStream to ensure the buffer size is ALWAYS the
requested buffer size, except for maybe the last buffer in the stream.
2016-11-27 15:46:54 -08:00
Casey Langen
d41f44deaf Fixed mac/nix build to exclude fftw and use VLC's fft instead. 2016-11-27 09:29:42 -08:00
casey langen
30aba00e23 Bifrucated stream functionality into DynamicStream (with buffers of
potentially dynamic/changing size), and FixedSizeStream where we try
really hard to ensure the buffers are a consistent size.
2016-11-27 09:23:11 -08:00
casey langen
08a876edb2 Use VLC's lighter weight FFT. 2016-11-27 08:32:29 -08:00
casey langen
410bdbc014 Version bump (plus a bit more dead code removal). 2016-11-26 15:25:43 -08:00
casey langen
0b059c8aee Minor cleanup to the core/db/ sources -- they were largely untouched from
the initial set of cleanups.
2016-11-26 15:21:33 -08:00
casey langen
64a187d1b8 Fixed bounds checking in PlaybackService::GetTrack. 2016-11-25 16:09:23 -08:00
casey langen
5ac6f416db Added IRetainedTrack type that can be queried by plugins via the
IPlaybackService. Callers are required to Release() the reference manually
when they are done with it.

Also added a couple useful callbacks to IPlaybackRemote so plugins can be
notified when the volume, playback state, and playback modes have changed.
2016-11-25 16:05:35 -08:00
casey langen
dc63564157 Updated the way repeat draws to be less obscure to the end-user. 2016-11-25 14:32:53 -08:00
casey langen
5bcb794ad8 Upgraded to VS2017 RC. 2016-11-25 13:11:31 -08:00
casey langen
89b4c06fb0 Fixed a crash in NowPlayingLayout's tracklist formatter when the window
gets very small.
2016-11-22 09:43:27 -08:00
Casey Langen
8ec23765fd Version bump. 2016-11-20 11:55:24 -08:00
casey langen
ea8de4acc0 Tweaked a couple global hotkeys after using them for a bit. 2016-11-19 23:22:13 -08:00
casey langen
db0483809a More global hotkeys to better support keyboards without multimedia keys. 2016-11-19 23:19:48 -08:00
casey langen
c46965081a Update README.md 2016-11-19 21:41:43 -08:00
casey langen
26c53669ee Added the ability to get the playback state from the IPlaybackService. 2016-11-19 21:28:12 -08:00